blob: e89420a9139d06a22aa5d19984bcb5ca54f44e2d [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">
<title>Installing Newt on Linux &mdash; Apache Mynewt latest documentation</title>
<link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
<link rel="index" title="Index"
href="../../genindex.html"/>
<link rel="search" title="Search" href="../../search.html"/>
<link rel="top" title="Apache Mynewt latest documentation" href="../../index.html"/>
<link rel="up" title="Native Installation" href="../../get_started/native_install/index.html"/>
<link rel="next" title="Installing Newt on Windows" href="newt_windows.html"/>
<link rel="prev" title="Installing Newt on macOS" href="newt_mac.html"/>
<script src="../../_static/js/modernizr.min.js"></script>
<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="not-front page-documentation" role="document" >
<div id="wrapper">
<div class="container">
<div id="banner" class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="../../_static/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.11.0, Apache NimBLE 1.6.0 </a> released September 7, 2023)
</div>
</div>
</div>
</div>
<header>
<nav id="navbar" class="navbar navbar-inverse" 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>
<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>
<a href="/about/">About</a>
</li>
<li>
<a href="/talks/">Talks</a>
</li>
<li class="active">
<a href="/documentation/">Documentation</a>
</li>
<li>
<a href="/download/">Download</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/events/">Events</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
</ul>
</div>
</div>
</nav>
</header>
<!-- STARTS MAIN CONTENT -->
<div id="main-content">
<div id="breadcrumb">
<div class="container">
<a href="/documentation/">Docs</a> /
<a href="../../get_started/index.html">Setup &amp; Get Started</a> /
<a href="../../get_started/native_install/index.html">Native Installation</a> /
Installing Newt on Linux
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-newt/edit/master/docs/install/newt_linux.rst" class="icon icon-github"
rel="nofollow"> Edit on GitHub</a>
</div>
</div>
</div>
<!-- STARTS CONTAINER -->
<div class="container">
<!-- STARTS .content -->
<div id="content" class="row">
<!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
<div id="docSidebar" class="sticky-container">
<div role="search" class="sphinx-search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest" selected>
Version: latest
</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" selected="selected" >
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" >
Version: 0.9.0
</option>
</select>
<div class="region region-sidebar">
<div class="docs-menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../external_links.html">Third-party Resources</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../network/index.html">BLE User Guide</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Newt Tool Guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../newt_operation.html">Theory of Operations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../newt_ops.html">Command Structure</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Install</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="newt_mac.html">Installing Newt on macOS</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Installing Newt on Linux</a></li>
<li class="toctree-l3"><a class="reference internal" href="newt_windows.html">Installing Newt on Windows</a></li>
<li class="toctree-l3"><a class="reference internal" href="prev_releases.html">Installing Previous Releases of Newt</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mynewt_faq/index.html">Mynewt FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
</ul>
</div>
</div>
</div>
<!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->
<div class="col-xs-12 col-sm-9">
<div class="alert alert-warning">
<p>
Version 1.7.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>
<div class="">
<div class="rst-content">
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="installing-newt-on-linux">
<h1>Installing Newt on Linux<a class="headerlink" href="#installing-newt-on-linux" title="Permalink to this headline">ΒΆ</a></h1>
<p>You can install the latest release (1.5.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 class="arabic">
<li><p>Set up your computer to download Debian binary packages from the JuulLabs-OSS 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 class="reference internal" href="prev_releases.html"><span class="doc">Installing Previous Releases of Newt</span></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 JuulLabs-OSS 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 class="reference internal" href="../../misc/go_env.html"><span class="doc">Contributing to Newt or Newtmgr Tools</span></a> if you want to:</p>
<ul class="simple">
<li><p>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.</p></li>
<li><p>Contribute to the newt tool.</p></li>
</ul>
<div class="section" id="setting-up-your-computer-to-use-apt-get-to-install-the-package">
<h2>Setting Up Your Computer to use apt-get to Install the Package<a class="headerlink" href="#setting-up-your-computer-to-use-apt-get-to-install-the-package" title="Permalink to this headline">ΒΆ</a></h2>
<p>The newt Debian packages are stored in a private APT repository on <strong>https://github.com/JuulLabs-OSS/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 JuulLabs-OSS APT repository, you will need to perform step 2 again as the key has changed.</p>
<ol class="arabic simple">
<li><p>Download the public key for the JuulLabs-OSS APT repository and import the key into the apt keychain.</p></li>
<li><p>Add the repository for the binary and source packages to the apt source list.</p></li>
</ol>
<p>Download the public key for the JuulLabs-OSS apt repo (<strong>Note:</strong> There is a <code class="docutils literal notranslate"><span class="pre">-</span></code> after <code class="docutils literal notranslate"><span class="pre">apt-key</span> <span class="pre">add</span></code>):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>wget<span class="w"> </span>-qO<span class="w"> </span>-<span class="w"> </span>https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master/mynewt.gpg.key<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>apt-key<span class="w"> </span>add<span class="w"> </span>-
</pre></div>
</div>
<p>Add the repository for the binary and source packages to the <code class="docutils literal notranslate"><span class="pre">mynewt.list</span></code> apt source list file:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/mynewt.list<span class="w"> </span>&lt;&lt;EOF
<span class="go">deb https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master latest main</span>
<span class="go">EOF</span>
</pre></div>
</div>
<p><strong>Note:</strong> Previously the repository lived under <code class="docutils literal notranslate"><span class="pre">runtimeco/debian-mynewt</span></code>, and although
updating should remain working, if it stops pulling in the latest releases, please try updating
<code class="docutils literal notranslate"><span class="pre">/etc/apt/sources.list.d/mynewt.list</span></code> and substitute <code class="docutils literal notranslate"><span class="pre">runtimeco</span></code> by <code class="docutils literal notranslate"><span class="pre">JuulLabs-OSS</span></code>.</p>
<p>Update the available packages:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>update
</pre></div>
</div>
<p><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="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">W: Failed to fetch https://raw.githubusercontent.com/JuulLabs-OSS/debian-mynewt/master/dists/latest/main/source/Sources HttpError404</span>
</pre></div>
</div>
<div class="section" id="installing-the-latest-release-of-newt-from-a-binary-package">
<h3>Installing the Latest Release of Newt from a Binary Package<a class="headerlink" href="#installing-the-latest-release-of-newt-from-a-binary-package" title="Permalink to this headline">ΒΆ</a></h3>
<p>You can use either apt-get to install the package, or manually download and install the Debian binary package.</p>
<div class="section" id="method-1-using-apt-get-to-upgrade-or-to-install">
<h4>Method 1: Using apt-get to Upgrade or to Install<a class="headerlink" href="#method-1-using-apt-get-to-upgrade-or-to-install" title="Permalink to this headline">ΒΆ</a></h4>
<p>Run the following commands to upgrade or install the latest version of newt:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>update
<span class="gp">$ </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>newt
</pre></div>
</div>
<p><strong>Note:</strong> If you encounter build errors (such as missing <code class="docutils literal notranslate"><span class="pre">sys/mman.h</span></code>), please make sure you have a 32-bit glibc:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>gcc-multilib
</pre></div>
</div>
</div>
<div class="section" id="method-2-downloading-and-installing-the-debian-package-manually">
<h4>Method 2: Downloading and Installing the Debian Package Manually<a class="headerlink" href="#method-2-downloading-and-installing-the-debian-package-manually" title="Permalink to this headline">ΒΆ</a></h4>
<p>Download and install the package manually.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>wget<span class="w"> </span>https://raw.githubusercontent.com/JuulLabs-OSS/binary-releases/master/mynewt-newt-tools_1.5.0/newt_1.5.0-1_amd64.deb
<span class="gp">$ </span>sudo<span class="w"> </span>dpkg<span class="w"> </span>-i<span class="w"> </span>newt_1.5.0-1_amd64.deb
</pre></div>
</div>
<p>See <a class="reference internal" href="#checking-the-installed-version-of-newt">Checking the Installed Version of Newt</a> to verify that you are using the installed version of newt.</p>
</div>
</div>
</div>
<div class="section" id="installing-the-latest-release-of-newt-from-a-source-package">
<h2>Installing the Latest Release of Newt from a Source Package<a class="headerlink" href="#installing-the-latest-release-of-newt-from-a-source-package" title="Permalink to this headline">ΒΆ</a></h2>
<p>If you are running Linux on a different architecture, you can build and install the latest release version of newt from
source.</p>
<ol class="arabic">
<li><p>Download and unpack the newt source:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>wget<span class="w"> </span>-P<span class="w"> </span>/tmp<span class="w"> </span>https://github.com/apache/mynewt-newt/archive/mynewt_1_5_0_tag.tar.gz
<span class="gp">$ </span>tar<span class="w"> </span>-xzf<span class="w"> </span>/tmp/mynewt_1_5_0_tag.tar.gz
</pre></div>
</div>
</li>
<li><p>Run the build.sh to build the newt tool.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>mynewt-newt-mynewt_1_5_0_tag
<span class="gp">$ </span>./build.sh
<span class="gp">$ </span>rm<span class="w"> </span>/tmp/mynewt_1_5_0_tag.tar.gz
</pre></div>
</div>
</li>
<li><p>You should see the <code class="docutils literal notranslate"><span class="pre">newt/newt</span></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="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>mv<span class="w"> </span>newt/newt<span class="w"> </span><span class="nv">$GOPATH</span>/bin
</pre></div>
</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="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>mv<span class="w"> </span>newt/newt<span class="w"> </span>/usr/bin
</pre></div>
</div>
</li>
</ul>
</li>
</ol>
</div>
<div class="section" id="checking-the-installed-version-of-newt">
<h2>Checking the Installed Version of Newt<a class="headerlink" href="#checking-the-installed-version-of-newt" title="Permalink to this headline">ΒΆ</a></h2>
<ol class="arabic">
<li><p>Check which newt you are using and that the version is the latest release version.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>which<span class="w"> </span>newt
<span class="go">/usr/bin/newt</span>
<span class="gp">$ </span>newt<span class="w"> </span>version
<span class="go">Apache Newt version: 1.5.0</span>
</pre></div>
</div>
</li>
<li><p>Get information about newt:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt
<span class="go">Newt allows you to create your own embedded application based on the Mynewt</span>
<span class="go">operating system. Newt provides both build and package management in a single</span>
<span class="go">tool, which allows you to compose an embedded application, and set of</span>
<span class="go">projects, and then build the necessary artifacts from those projects. For more</span>
<span class="go">information on the Mynewt operating system, please visit</span>
<span class="go">https://mynewt.apache.org/.</span>
<span class="go">Please use the newt help command, and specify the name of the command you want</span>
<span class="go">help for, for help on how to use a specific command</span>
<span class="go">Usage:</span>
<span class="go"> newt [flags]</span>
<span class="go"> newt [command]</span>
<span class="go">Examples:</span>
<span class="go"> newt</span>
<span class="go"> newt help [&lt;command-name&gt;]</span>
<span class="go"> For help on &lt;command-name&gt;. If not specified, print this message.</span>
<span class="go">Available Commands:</span>
<span class="go"> build Build one or more targets</span>
<span class="go"> clean Delete build artifacts for one or more targets</span>
<span class="go"> create-image Add image header to target binary</span>
<span class="go"> debug Open debugger session to target</span>
<span class="go"> help Help about any command</span>
<span class="go"> info Show project info</span>
<span class="go"> install Install project dependencies</span>
<span class="go"> load Load built target to board</span>
<span class="go"> mfg Manufacturing flash image commands</span>
<span class="go"> new Create a new project</span>
<span class="go"> pkg Create and manage packages in the current workspace</span>
<span class="go"> resign-image Re-sign an image.</span>
<span class="go"> run build/create-image/download/debug &lt;target&gt;</span>
<span class="go"> size Size of target components</span>
<span class="go"> sync Synchronize project dependencies</span>
<span class="go"> target Commands to create, delete, configure, and query targets</span>
<span class="go"> test Executes unit tests for one or more packages</span>
<span class="go"> upgrade Upgrade project dependencies</span>
<span class="go"> vals Display valid values for the specified element type(s)</span>
<span class="go"> version Display the Newt version number</span>
<span class="go">Flags:</span>
<span class="go"> -h, --help Help for newt commands</span>
<span class="go"> -j, --jobs int Number of concurrent build jobs (default 4)</span>
<span class="go"> -l, --loglevel string Log level (default &quot;WARN&quot;)</span>
<span class="go"> -o, --outfile string Filename to tee output to</span>
<span class="go"> -q, --quiet Be quiet; only display error output</span>
<span class="go"> -s, --silent Be silent; don&#39;t output anything</span>
<span class="go"> -v, --verbose Enable verbose output when executing commands</span>
<span class="go">Use &quot;newt [command] --help&quot; for more information about a command.</span>
</pre></div>
</div>
</li>
</ol>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="newt_windows.html" class="btn btn-neutral float-right" title="Installing Newt on Windows" accesskey="n">Next: Installing Newt on Windows <span class="fa fa-arrow-circle-right"></span></a>
<a href="newt_mac.html" class="btn btn-neutral" title="Installing Newt on macOS" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Installing Newt on macOS</a>
</div>
</div>
</div>
</div>
<!-- ENDS CONTENT SECTION -->
</div>
<!-- ENDS .content -->
</div>
</div>
<footer>
<div class="container">
<div 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">
<img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
<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>
<a href="">
<img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- ENDS #wrapper -->
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../../',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
LINK_SUFFIX: '.html'
};
</script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
<script type="text/javascript" src="../../_static/js/affix.js"></script>
<script type="text/javascript" src="../../_static/js/main.js"></script>
</body>
</html>