blob: 7f29f76a87c38efb91b3e90a48dba5c820f4c5c0 [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" selected="selected" >
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" >
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/native_install_intro/">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="../newt_windows/">Install Newt on Windows</a>
</li>
<li >
<a href="../../../os/get_started/native_tools/">Install Native Toolchain</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/docker/">Docker Container Option</a>
</li>
<li >
<a href="../../../os/get_started/project_create/">Create Your First Project</a>
</li>
<li >
<a href="../../../os/get_started/serial_access/">Serial Port Setup</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="
../prev_releases/
">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_install_intro/">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>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/apache/mynewt-site/blob/master/docs/newt/install/newt_linux.md"
class="icon icon-github"> Edit on GitHub</a>
</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 1.3.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="installing-newt-on-linux">Installing Newt on Linux</h2>
<p>You can install the latest release (1.4.0) of the newt tool from a Debian binary package (amd64). You can also download and build the latest release version of newt from source.</p>
<p>This page shows you how to:</p>
<ol>
<li>
<p>Set up your computer to download Debian binary packages from the runtimeco APT repository.</p>
<p><strong>Note:</strong> The key for signing the repository has changed. If you set up your computer before release 1.1.0, you will need to download and import the public key again.</p>
</li>
<li>
<p>Install the latest release version of newt from a Debian binary package. You can use apt-get to install the package or manually download and install the Debian binary package.</p>
</li>
<li>
<p>Download, build, and install the latest release version of newt from source.</p>
</li>
</ol>
<p>If you are installing on an amd64 platform, we recommend that you install from the binary package.</p>
<p>See <a href="/newt/install/prev_releases.md">Installing Previous Releases of Newt</a> to install an earlier version of newt.</p>
<p><strong>Note:</strong> We have tested the newt tool binary and apt-get install from the runtimeco APT repository for Ubuntu version 1704. Earlier Ubuntu versions (for example: Ubuntu 14) may have incompatibility with the repository. You can manually download and install the Debian binary package.</p>
<p><strong>Note:</strong> See <a href="/faq/go_env">Setting Up a Go Environment to Contribute to Newt and Newtmgr Tools</a> if you want to:</p>
<ul>
<li>Use the newt tool with the latest updates from the master branch. The master branch may be unstable and we recommend that you use the latest stable release version.</li>
<li>Contribute to the newt tool.</li>
</ul>
<p><br></p>
<h3 id="setting-up-your-computer-to-use-apt-get-to-install-the-package">Setting Up Your Computer to use apt-get to Install the Package</h3>
<p>The newt Debian packages are stored in a private APT repository on <strong>https://github/runtimeco/debian-mynewt</strong>. To use apt-get, you must set up the following on your computer to retrieve packages from the repository:</p>
<p><strong>Note</strong>: You only need to perform this setup once on your computer. However, if you previously downloaded and imported the public key for the runtimeco APT repository, you will need to perform step 2 again as the key has changed.</p>
<ol>
<li>Download the public key for the runtimeco APT repository and import the key into the apt keychain.</li>
<li>Add the repository for the binary and source packages to the apt source list.</li>
</ol>
<p><br></p>
<p>Download the public key for the runtimeco apt repo (<strong>Note:</strong> There is a <code>-</code> after <code>apt-key add</code>):</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ wget -qO - https://raw.githubusercontent.com/runtimeco/debian-mynewt/master/mynewt.gpg.key | sudo apt-key add -
</code></pre></div>
<p><br></p>
<p>Add the repository for the binary and source packages to the <code>mynewt.list</code> apt source list file:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ sudo tee /etc/apt/sources.list.d/mynewt.list &lt;&lt;EOF
deb [arch=amd64] https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest main
EOF
</code></pre></div>
<p><br>
Update the available packages: </p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ sudo apt-get update
</code></pre></div>
<p><br>
<strong>Note:</strong> If you are not using Ubuntu version 1704, you may see the following errors. We have provided instructions on how to manually download and install the binary package.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>W: Failed to fetch https://raw.githubusercontent.com/runtimeco/debian-mynewt/master/dists/latest/main/source/Sources HttpError404
</code></pre></div>
<p><br></p>
<h2 id="installing-the-latest-release-of-newt-from-a-binary-package">Installing the Latest Release of Newt from a Binary Package</h2>
<p>You can use either apt-get to install the package, or manually download and install the Debian binary package.</p>
<p><br></p>
<h4 id="method-1-using-apt-get-to-upgrade-or-to-install">Method 1: Using apt-get to Upgrade or to Install</h4>
<p>Run the following commands to upgrade or install the latest version of newt:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ sudo apt-get update
$ sudo apt-get install newt
</code></pre></div>
<p><strong>Note:</strong> If you encounter build errors (such as missing <code>sys/mman.h</code>), please make sure you have a 32-bit glibc:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ sudo apt-get install gcc-multilib
</code></pre></div>
<p><br></p>
<h4 id="method-2-downloading-and-installing-the-debian-package-manually">Method 2: Downloading and Installing the Debian Package Manually</h4>
<p>Download and install the package manually.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ wget https://raw.githubusercontent.com/runtimeco/binary-releases/master/mynewt-newt-tools_1.4.0/newt_1.4.0-1_amd64.deb
$ sudo dpkg -i newt_1.4.0-1_amd64.deb
</code></pre></div>
<p><br>
See <a href="#check">Checking the Installed Version of Newt</a> to verify that you are using the installed version of newt.</p>
<p><br></p>
<h3 id="installing-the-latest-release-of-newt-from-a-source-package">Installing the Latest Release of Newt from a Source Package</h3>
<p>If you are running Linux on a different architecture, you can build and install the latest release version of newt from source.</p>
<p><strong>Note</strong>: newt 1.4.0 requires go version 1.10.
<br></p>
<ol>
<li>Download and unpack the newt source:</li>
</ol>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ wget -P /tmp https://github.com/apache/mynewt-newt/archive/mynewt_1_4_0_tag.tar.gz
$ tar -xzf /tmp/mynewt_1_4_0_tag.tar.gz
</code></pre></div>
<p><br>
2. Run the build.sh to build the newt tool.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ cd mynewt-newt-mynewt_1_4_0_tag
$ ./build.sh
$ rm /tmp/mynewt_1_4_0_tag.tar.gz
</code></pre></div>
<p><br>
4. You should see the <code>newt/newt</code> executable. Move the executable to a bin directory in your PATH:</p>
<ul>
<li>
<p>If you previously built newt from the master branch, you can move the binary to your $GOPATH/bin directory.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ mv newt/newt $GOPATH/bin
</code></pre></div>
</li>
<li>
<p>If you are installing newt for the first time and do not have a Go workspace set up, you can move the binary to /usr/bin or a directory in your PATH:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ mv newt/newt /usr/bin
</code></pre></div>
</li>
</ul>
<p><br></p>
<h3 id="checking-the-installed-version-of-newt"><a name="check"></a> Checking the Installed Version of Newt</h3>
<p><br>
1. Check which newt you are using and that the version is the latest release version.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ which newt
/usr/bin/newt
$ newt version
Apache Newt version: 1.4.0
</code></pre></div>
<p><br>
2. Get information about newt:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt
Newt allows you to create your own embedded application based on the Mynewt
operating system. Newt provides both build and package management in a single
tool, which allows you to compose an embedded application, and set of
projects, and then build the necessary artifacts from those projects. For more
information on the Mynewt operating system, please visit
https://mynewt.apache.org/.
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:
build Build one or more targets
clean Delete build artifacts for one or more targets
create-image Add image header to target binary
debug Open debugger session to target
info Show project info
install Install project dependencies
load Load built target to board
mfg Manufacturing flash image commands
new Create a new project
pkg Create and manage packages in the current workspace
resign-image Re-sign an image.
run build/create-image/download/debug &lt;target&gt;
size Size of target components
sync Synchronize project dependencies
target Commands to create, delete, configure, and query targets
test Executes unit tests for one or more packages
upgrade Upgrade project dependencies
vals Display valid values for the specified element type(s)
version Display the Newt version number
Flags:
-h, --help Help for newt commands
-j, --jobs int Number of concurrent build jobs (default 8)
-l, --loglevel string Log level (default &quot;WARN&quot;)
-o, --outfile string Filename to tee output to
-q, --quiet Be quiet; only display error output
-s, --silent Be silent; don&#39;t output anything
-v, --verbose Enable verbose output when executing commands
Use &quot;newt [command] --help&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 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>