blob: 7ea3261027adec6d7684b3f51dcb57c2197b87df [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 Newtmgr 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 Newtmgr 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" selected="selected" >
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>
</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/newt_intro/">Newt Tool Guide</a>
</li>
<li ><a href="../overview/">Newt Manager Guide</a>
<ul>
<li><a href="
../command_list/newtmgr_config/
">Command Guide</a>
</li>
<li><a href="
../install_mac/
">Install</a>
<ul>
<li >
<a href="../install_mac/">Install Newtmgr On Mac OS</a>
</li>
<li class="active">
<a href="./">Install Newtmgr On Linux</a>
</li>
<li >
<a href="../install_windows/">Install Newtmgr On Windows</a>
</li>
</ul>
</li>
</ul>
</li>
<li >
<a href="../../known_issues/">Known Issues</a>
</li>
</ul>
</li>
<li><a href="
../../faq/go_env/
">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="newtmgr/install_mac/">Install</a></li>
<li>&raquo; <a href="newtmgr/overview/">Newt Manager Guide</a></li>
<li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
<li>&raquo; Install Newtmgr On Linux</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 1.0.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-newtmgr-on-linux">Installing Newtmgr on Linux</h2>
<p>You can install the latest stable release (1.0.0) of the newtmgr tool from a Debian binary package (amd64) or from a Debian source package. This page shows you how to:</p>
<ol>
<li>
<p>Set up your computer to retrieve Debian packages from the runtimeco debian package repository. </p>
<p><strong>Note:</strong> You can skip this step if you already set up your computer to access the runtimeco debian repository when you installed the newt tool. </p>
</li>
<li>
<p>Install the latest stable release version of newtmgr from a Debian binary package. </p>
</li>
<li>Install the latest stable release version of newtmgr from a Debian source package.</li>
</ol>
<p>If you are installing on an amd64 platform, we recommend that you install from the binary package.</p>
<p><strong>Note:</strong> We have tested the newtmgr tool binary and apt-get install from the runtimeco Debian package repository for Ubuntu version 16. Earlier Ubuntu versions (for example: Ubuntu 14) may have incompatibility with the repository. We recommend that you upgrade Ubuntu on your computer.</p>
<p><strong>Note:</strong> See <a href="/faq/go_env">Setting Up an Go Environment to Contribute to Newt and Newtmgr Tools</a> if you want to: </p>
<ul>
<li>Use the newtmgr 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 newtmgr tool. </li>
</ul>
<p><br></p>
<h3 id="setting-up-your-computer-to-get-packages-from-runtimeco">Setting Up Your Computer to Get Packages from runtimeco</h3>
<p>The newtmgr Debian packages are stored in a private repository on <strong>https://github/runtimeco/debian-mynewt</strong>. You must set up the following on your computer to retreive packages from the repository:</p>
<p><strong>Note</strong>: You only need to perform this setup once on your computer and you may have already done so when you installed the newt tool. </p>
<ol>
<li>Install the <code>apt-transport-https</code> package to use HTTPS to retrieve packages. </li>
<li>Download the public key for the runtimeco debian 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>
Install the apt-transport-https package:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$sudo apt-get update
$sudo apt-get install apt-transport-https
</code></pre></div>
<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 -s
[sudo] password for &lt;user&gt;:
root$ cat &gt; /etc/apt/sources.list.d/mynewt.list &lt;&lt;EOF
deb https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest main
deb-src https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest main
EOF
root$exit
</code></pre></div>
<p><strong>Note:</strong> Do not forget to exit the root shell.</p>
<p><br>
Verify the content of the source list file:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$more /etc/apt/sources.list.d/mynewt.list
deb https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest main
deb-src https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest main
</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 16, you may see the following errors. We recommend that you upgrade Ubuntu. We have provided instructions on how to manually download and install the binary package if you choose not to upgrade, but you will want to upgrade Ubuntu if you are installing from source. </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 Ht
tpError404
W: Failed to fetch https://raw.githubusercontent.com/runtimeco/debian-mynewt/master/dists/latest/main/binary-amd64/Packa
ges Bad header line
W: Failed to fetch https://raw.githubusercontent.com/runtimeco/debian-mynewt/master/dists/latest/main/binary-i386/Packag
es HttpError404
E: Some index files failed to download. They have been ignored, or old ones used instead.
</code></pre></div>
<p><br> </p>
<h3 id="installing-the-latest-release-of-newtmgr-from-a-binary-package">Installing the Latest Release of Newtmgr from a Binary Package</h3>
<p>For Linux amd64 platforms, you can install the latest stable version (1.0.0) of newtmgr from the newtmgr Debian binary package:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$sudo apt-get install newtmgr
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
newtmgr
0 upgraded, 1 newly installed, 0 to remove and 204 not upgraded.
Need to get 0 B/2,312 kB of archives.
After this operation, 11.5 MB of additional disk space will be used.
Selecting previously unselected package newtmgr.
(Reading database ... 211647 files and directories currently installed.)
Preparing to unpack .../newtmgr_1.0.0-1_amd64.deb ...
Unpacking newtmgr (1.0.0-1) ...
Setting up newtmgr (1.0.0-1)
</code></pre></div>
<p><br>
<strong>Note:</strong> If you are not using Ubuntu version 16 and are not able to update the runtimeco Debian package repo on your computer successfully, you can manually download and install the newtmgr_1.0.0-1_amd64.deb binary package as follows:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$wget https://raw.githubusercontent.com/runtimeco/debian-mynewt/master/pool/main/n/newtmgr/newtmgr_1.0.0-1_amd64.deb
$sudo dpkg -i newtmgr_1.0.0-1_amd64.deb
</code></pre></div>
<p><br>
See <a href="#check">Checking the Installed Version of Newtmgr</a> to verify that you are using the installed version of newtmgr.</p>
<p><br></p>
<h3 id="installing-the-latest-stable-release-of-newtmgr-from-a-source-package">Installing the Latest Stable Release of Newtmgr from a Source Package</h3>
<p>If you are running Linux on a different architecture, you can install the Debian source package for the latest stable release (1.0.0) of newtmgr. The installation of the source package builds the newtmgr binary and creates a Debian binary package that you then install.</p>
<p><strong>Note</strong>: Newtmgr version 1.0.0 has been tested on Linux amd64 platforms. </p>
<p><br></p>
<h4 id="installing-go-17">Installing Go 1.7</h4>
<p>You need Go version 1.7 or higher to build Newtmgr version 1.0.0. Currently, the latest Go version that Ubuntu installs is 1.6. Run <code>go version</code> to check if you have Go 1.7 installed. </p>
<p><br></p>
<p>Install Go version 1.7:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$sudo apt-get install golang-1.7-go
Reading package lists... Done
...
Unpacking golang-1.7-go (1.7.1-2ubuntu1) ...
Setting up golang-1.7-go (1.7.1-2ubuntu1) ...
$
$sudo ln -sf ../lib/go-1.7/bin/go /usr/bin/go
$go version
go version go1.7.1 linux/amd64
</code></pre></div>
<p>You can also download version 1.7 from <a href="https://golang.org/dl/">https://golang.org/dl/</a>. </p>
<p><br></p>
<h4 id="installing-from-the-source-package">Installing from the Source Package</h4>
<p>Create a directory and change into the directory, download the source package, and build a binary package from the source package:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>mkdir newtmgr_source
$cd newtmgr_source
$sudo apt-get --build source newtmgr
[sudo] password for &lt;user&gt;:
sudo apt-get --build source newtmgr
Reading package lists... Done
Need to get 1,867 kB of source archives.
Get:1 https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest/main newtmgr 1.0.0-1 (dsc) [822 B]
Get:2 https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest/main newtmgr 1.0.0-1 (tar) [1,864 kB]
Get:3 https://raw.githubusercontent.com/runtimeco/debian-mynewt/master latest/main newtmgr 1.0.0-1 (diff) [2,372 B]
Fetched 1,867 kB in 1s (1,767 kB/s)
...
dpkg-deb: building package &#39;newtmgr&#39; in &#39;../newtmgr_1.0.0-1_amd64.deb&#39;.
dpkg-genchanges --build=any,all &gt;../newtmgr_1.0.0-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build newtmgr-1.0.0
dpkg-buildpackage: info: binary-only upload (no source included)
W: Can&#39;t drop privileges for downloading as file &#39;newtmgr_1.0.0-1.dsc&#39; couldn&#39;t be accessed by user &#39;_apt&#39;. - pkgAcquire::Run (13: Permission denied)
</code></pre></div>
<p><strong>Note:</strong> You can ignore the "Permission denied" warning message at the end of the command.</p>
<p><br>
Install the newtmgr binary package that is created from the source package:</p>
<p><strong>Note:</strong> The file name for the binary package has the format: newtmgr_1.0.0-1_<strong>arch</strong>.deb, where <strong>arch</strong> is a value that identifies your host architecture.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$sudo dpkg -i newtmgr_1.0.0-1_amd64.deb
Selecting previously unselected package newtmgr.
(Reading database ... 215099 files and directories currently installed.)
Preparing to unpack newtmgr_1.0.0-1_amd64.deb ...
Unpacking newtmgr (1.0.0-1) ...
Setting up newtmgr (1.0.0-1) ...
</code></pre></div>
<p><br></p>
<h3 id="checking-the-installed-version-of-newtmgr"><a name="check"></a> Checking the Installed Version of Newtmgr</h3>
<p>After you have installed newtmgr from either a Debian binary or source package, check that you are using the installed version of newtmgr from <strong>/usr/bin</strong>. </p>
<p>Check the modification time of the binary and the newtmgr tool that you are using:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ls -l /usr/bin/newtmgr
-rwxr-xr-x 1 root root 11473328 Apr 25 10:10 /usr/bin/newtmgr
$which newtmgr
/usr/bin/newtmgr
</code></pre></div>
<p><strong>Note:</strong> If you previously built newtmgr from source and the output of <code>which newtmgr</code> shows "$GOPATH/bin/newtmgr", you will need to move "$GOPATH/bin" after "/usr/bin" for your PATH environment variable and export it.</p>
<p><br>
Get information about newtmgr:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$newtmgr
Newtmgr helps you manage remote devices running the Mynewt OS
Usage:
newtmgr [flags]
newtmgr [command]
Available Commands:
config Read or write a config value on a device
conn Manage newtmgr connection profiles
crash Send a crash command to a device
datetime Manage datetime on a device
echo Send data to a device and display the echoed back data
fs Access files on a device
image Manage images on a device
log Manage logs on a device
mpstats Read memory pool statistics from a device
reset Send reset request to a device
run Run test procedures on a device
stat Read statistics from a device
taskstats Read task statistics from a device
Flags:
-c, --conn string connection profile to use
-h, --help Help for newtmgr commands
-l, --loglevel string log level to use (default &quot;info&quot;)
-t, --trace print all bytes transmitted and received
Use &quot;newtmgr [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 (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>