blob: 16a589ac81d09cb13691738738c120f02ab5df31 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- This is broken by doc revisioning.
-->
<link rel="shortcut icon" href="../../../img/favicon.ico">
<title>Install Newt on Linux - Apache Mynewt</title>
<link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
<link rel="stylesheet" href="../../../css/highlight.css">
<link href="../../../css/base.css" rel="stylesheet">
<link href="../../../css/custom.css" rel="stylesheet">
<link href="../../../css/v2.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<script>
(function(i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
</head>
<body class="Install Newt on Linux">
<div class="container">
<div class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="/img/logo.png">
</a>
<div class="tagline-cell">
<h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
</div>
<div class="news-cell">
<div class="well">
<h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
</div>
</div>
</div>
</div>
<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav navbar-right">
<li
class=""
>
<a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
</li>
<li
class="important"
>
<a href="/quick-start/">Quick Start</a>
</li>
<li
class=""
>
<a href="/about/">About</a>
</li>
<li
class=""
>
<a href="/talks/">Talks</a>
</li>
<li
class="active"
>
<a href="/documentation/">Documentation</a>
</li>
<li
class=""
>
<a href="/download/">Download</a>
</li>
<li
class=""
>
<a href="/community/">Community</a>
</li>
<li
class=""
>
<a href="/events/">Events</a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
<div class="top">
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search documentation" />
</div>
</form>
</div>
</div>
<ul class="toc-nav">
<li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest">
Version: master
</option>
<option value="/v1_12_0/" >
Version: 1.12.0
</option>
<option value="/v1_11_0/" >
Version: 1.11.0
</option>
<option value="/v1_10_0/" >
Version: 1.10.0
</option>
<option value="/v1_9_0/" >
Version: 1.9.0
</option>
<option value="/v1_8_0/" >
Version: 1.8.0
</option>
<option value="/v1_7_0/" >
Version: 1.7.0
</option>
<option value="/v1_6_0/" >
Version: 1.6.0
</option>
<option value="/v1_5_0/" >
Version: 1.5.0
</option>
<option value="/v1_4_0/" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</option>
<option value="/v1_2_0/os/introduction" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" >
Version: 1.0.0
</option>
<option value="/v0_9_0/os/introduction" selected="selected" >
Version: 0.9.0
</option>
</select></li>
<li ><a href="../../../os/introduction/">Mynewt Documentation</a>
<ul>
<li ><a href="../../../os/get_started/get_started/">Basic Setup</a>
<ul>
<li >
<a href="../../../os/get_started/docker/">Docker Container Option</a>
</li>
<li ><a href="../../../os/get_started/native_tools/">Native install Option</a>
<ul>
<li >
<a href="../newt_mac/">Install Newt on Mac</a>
</li>
<li class="active">
<a href="./">Install Newt on Linux</a>
</li>
<li >
<a href="../../../os/get_started/cross_tools/">Install Cross Tools for ARM</a>
</li>
</ul>
</li>
<li >
<a href="../../../os/get_started/project_create/">Create Your First Project</a>
</li>
</ul>
</li>
<li >
<a href="../../../os/get_started/vocabulary/">Concepts</a>
</li>
<li ><a href="../../../os/tutorials/tutorials/">Tutorials</a>
</li>
<li ><a href="../../../os/os_user_guide/">OS User Guide</a>
</li>
<li><a href="
../../../network/ble/ble_intro/
">BLE User Guide</a>
</li>
<li ><a href="../../newt_intro/">Newt Tool Guide</a>
</li>
<li ><a href="../../../newtmgr/overview/">Newt Manager Guide</a>
</li>
<li >
<a href="../../../known_issues/">Known Issues</a>
</li>
</ul>
</li>
<li><a href="
../../../faq/how_to_edit_docs/
">Appendix</a>
</li>
</ul>
</div></div>
<div class="col-md-9" role="main">
<div class="doc-header">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="/documentation/">Docs</a></li>
<li>&raquo; <a href="os/get_started/native_tools/">Native install Option</a></li>
<li>&raquo; <a href="os/get_started/get_started/">Basic Setup</a></li>
<li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
<li>&raquo; Install Newt on Linux</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 0.9.0 is not the most recent version of the Apache Mynewt
documentation. Click <a href="/latest">here</a> to read the latest
version.
</p>
</div>
<h2 id="install-newt-tool-on-linux">Install newt tool on Linux</h2>
<p><br></p>
<h3 id="getting-your-linux-box-ready">Getting your Linux box Ready</h3>
<p>If you want to build the <em>newt</em> tool from its source code, follow the following steps:</p>
<h4 id="1-install-git-libcurl">1. Install git, libcurl</h4>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ sudo apt-get install git
$ sudo apt-get install libcurl4-gnutls-dev
</code></pre></div>
<p><br></p>
<h4 id="2-install-go-the-programming-language">2. Install Go, the programming language</h4>
<ul>
<li>
<p>Go language environment dictates a directory structure. Known in Go parlanace as workspace, it must contain three sibling directories with the directory names src, pkg and bin, as explained below. </p>
<ul>
<li>
<p>src contains Go source files organized into packages (one package per directory),</p>
</li>
<li>
<p>pkg contains package objects, and</p>
</li>
<li>
<p>bin contains executable commands.</p>
</li>
</ul>
<p>The GOPATH environment variable specifies the location of your workspace. To setup this workspace environment, create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory where you will soon clone the <em>newt</em> tool repository.</p>
</li>
</ul>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ cd $HOME
$ mkdir -p dev/go
$ cd dev/go
$ export GOPATH=`pwd`
</code></pre></div>
<p>(Note that you need to add export statements to ~/.bash_profile to export variables permanently. Don't forget to source the file for the change to go into effect.)</p>
<p><br></p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ vi ~/.bash_profile
$ source ~/.bash_profile
</code></pre></div>
<p><br></p>
<ul>
<li>
<p>Next, install Go. When installed, Go offers you as a developer a language environment (to compile Go code), construct Go packages (to assemble Go packages) and import Go code (from github). In the next step, you will use the Go commands to import <em>newt</em> repo into your local Go environment.</p>
<p><strong>Note</strong>: The Newt tool requires Go version 1.5 or later. It uses the support for "vendoring" that was added in Go 1.5. Depending on the Ubuntu version you have, the following may install an earlier version. In that case, download the latest package of Go 1.5 or 1.6 from <a href="https://golang.org/dl/">https://golang.org/dl/</a>. You can search for more detailed instructions such as installing Go 1.6 on Ubuntu 14.04 which can be found at <a href="https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04">https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04</a>.</p>
</li>
</ul>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ sudo apt-get install golang
</code></pre></div>
<p><br> </p>
<h4 id="3-create-local-repository">3. Create local repository</h4>
<ul>
<li>Use Go commands to copy the directory (currently the ASF incubator directory). Be patient as it may take a minute or two. Check the directories installed.</li>
</ul>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ go get mynewt.apache.org/newt/...
</code></pre></div>
<p><br></p>
<ul>
<li>Check that newt.go is in place.</li>
</ul>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ ls $GOPATH/src/mynewt.apache.org/newt
DISCLAIMER NOTICE newt newtvm viper
LICENSE README.md newtmgr util yaml
</code></pre></div>
<p><br></p>
<h4 id="4-build-the-newt-tool">4. Build the Newt tool</h4>
<ul>
<li>Use Go to run the newt.go program to build the <em>newt</em> tool. The command <code>go install</code> compiles and writes the resulting executable to an output file named <code>newt</code>, which is then installed, along with its dependencies, in $GOPATH/bin. If you get errors it is likely because of path resolution issues. Try <code>go build</code> followed by <code>go install</code> in that case.</li>
</ul>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ cd $GOPATH/src/mynewt.apache.org/newt/newt
$ go install
$ ls &quot;$GOPATH&quot;/bin/
newt newtmgr newtvm
</code></pre></div>
<p><br></p>
<ul>
<li>At this point, you can try using <em>newt</em>. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.</li>
</ul>
<p>(Note: If you are going to be modifying the <em>newt</em> often and going to be compile the program every time you call it, you will want to store the command in a variable in your .bash_profile. So type in <code>export newt="go run $GOPATH/mynewt.apache.org/newt/newt/newt.go"</code> in your .bash_profile and execute it by calling <code>$newt</code> at the prompt instead of <code>newt</code>. Essentially, <code>$newt</code> calls <code>go run</code> which runs the compiled binary directly without producing an executable. Don't forget to reload the updated bash profile by typing <code>source ~/.bash_profile</code> at the prompt! )</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code> $ newt version
Newt version: 1.0
$ newt -h
Newt allows you to create your own embedded project based on the Mynewt
operating system. Newt provides both build and package management in a
single tool, which allows you to compose an embedded workspace, and set
of projects, and then build the necessary artifacts from those projects.
For more information on the Mynewt operating system, please visit
https://www.github.com/mynewt/documentation.
Please use the newt help command, and specify the name of the command
you want help for, for help on how to use a specific command
Usage:
newt [flags]
newt [command]
Examples:
newt
newt help [&lt;command-name&gt;]
For help on &lt;command-name&gt;. If not specified, print this message.
Available Commands:
version Display the Newt version number.
target Set and view target information
egg Commands to list and inspect eggs on a nest
nest Commands to manage nests &amp; clutches (remote egg repositories)
help Help about any command
Flags:
-h, --help=false: help for newt
-l, --loglevel=&quot;WARN&quot;: Log level, defaults to WARN.
-q, --quiet=false: Be quiet; only display error output.
-s, --silent=false: Be silent; don&#39;t output anything.
-v, --verbose=false: Enable verbose output when executing commands.
Use &quot;newt help [command]&quot; for more information about a command.
</code></pre></div>
<p><br></p>
<div class="row">
<ul class="nav nav-pills" style="margin-bottom: 10px">
<li>
</li>
<li class="pull-right">
</li>
</ul>
</div>
<footer class="row">
<div class="col-xs-12">
<p class="copyright">Apache Mynewt (incubating) is available under Apache License, version 2.0.</p>
</div>
<div class="col-xs-12">
<div class="logos">
<a href="https://www.apache.org/">
<img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
</a>
<p>
Copyright © 2015-2021 The Apache Software Foundation.<br>
<small class="footnote">
Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
project logo are either registered trademarks or trademarks of the Apache
Software Foundation in the United States and other countries.
</small>
</p>
<a href="">
<img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
<a href="https://www.apache.org/licenses/">
<button class="button-footer-asf">
License
</button>
</a>
<a href="https://www.apache.org/foundation/sponsorship.html">
<button class="button-footer-asf">
Sponsorship
</button>
</a>
<a href="https://www.apache.org/foundation/thanks.html">
<button class="button-footer-asf">
Thanks
</button>
</a>
<a href="https://www.apache.org/security/">
<button class="button-footer-asf">
Security
</button>
</a>
<a href="https://apache.org/events/current-event">
<button class="button-footer-asf">
ASF Events
</button>
</a>
</footer>
</div>
</div>
</div>
<script src="../../../js/jquery-1.10.2.min.js"></script>
<script src="../../../js/bootstrap-3.0.3.min.js"></script>
<script src="../../../js/highlight.pack.js"></script>
<script src="../../../js/base.js"></script>
<script src="../../../js/custom.js"></script>
<script src="search/main.js"></script>
</body>
</html>