blob: 94a822ef77cd67abfca83872cd5e634ba29d8185 [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" selected="selected" >
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>
</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>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/apache/mynewt-site/blob/master/docs/newtmgr/install_linux.md"
class="icon icon-github"> Edit on GitHub</a>
</li>
</ul>
</div>
</div>
<div class="alert alert-warning">
<p>
Version 1.1.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 release (1.1.0) of the newtmgr tool from a Debian binary package (amd64). You can also download and build the latest release version of newtmgr 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 newtmgr 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 newtmgr from source. </p>
</li>
<li>
<p>Install an earlier version of newtmgr. </p>
</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 APT repository for Ubuntu version 16. 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 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-use-apt-get-to-install-the-package">Setting Up Your Computer to use apt-get to Install the Package</h3>
<p>The newtmgr 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>Install the <code>apt-transport-https</code> package to use HTTPS to retrieve packages. </li>
<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>
1. 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>
2. 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>
3. Add the repository for the binary 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
EOF
root$exit
</code></pre></div>
<p><strong>Note:</strong> Do not forget to exit the root shell.</p>
<p><br>
4. 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
</code></pre></div>
<p><br>
5. 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 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 Ht
tpError404
</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>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 newtmgr:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ sudo apt-get update
$ sudo apt-get install newtmgr
</code></pre></div>
<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/debian-mynewt/master/pool/main/n/newtmgr/newtmgr_1.1.0-1_amd64.deb
$sudo dpkg -i newtmgr_1.1.0-1_amd64.deb
</code></pre></div>
<p>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-release-version-of-newtmgr-from-source">Installing the Latest Release Version of Newtmgr from Source</h3>
<p>If you are running Linux on a different architecture, you can build and install the latest release version of newtmgr from source.</p>
<p><br>
1. Download and install the latest version of <a href="https://golang.org/dl/">Go</a>. Newtmgr requires Go version 1.7.6 or higher.</p>
<p><br>
2. Create a Go workspace in the /tmp directory: </p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ cd /tmp
$ mkdir go
$ cd go
$ export GOPATH=/tmp/go
</code></pre></div>
<p><br>
3. Run <code>go get</code> to download the newtmgr source. Note that <code>go get</code> pulls down the HEAD from the master branch in git, builds, and installs newtmgr.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ go get mynewt.apache.org/newtmgr/newtmgr
$ ls -l /tmp/go/bin/newtmgr
-rwxr-xr-x 1 user staff 17884488 Jul 29 16:25 /tmp/go/bin/newtmgr
</code></pre></div>
<p><br>
4. Check out the source from the latest release version:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ cd src/mynewt.apache.org/newtmgr
$ git checkout mynewt_1_1_0_tag
Note: checking out &#39;mynewt_1_1_0_tag&#39;.
</code></pre></div>
<p><br> 5. Build newtmgr from the latest release version: </p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ cd newtmgr
$ go install
$ ls /tmp/go/bin/newtmgr
-rwxr-xr-x 1 user staff 17888680 Jul 29 16:28 /tmp/go/bin/newtmgr
</code></pre></div>
<p><br>
6. If you have a Go workspace, remember to reset your GOPATH to your Go workspace.</p>
<p><br>
7. Copy the newtmgr executable to a bin directory in your path. You can put it in the /usr/bin or the $GOPATH/bin directory.</p>
<p><br></p>
<h3 id="checking-the-latest-version-of-newtmgr-is-installed"><a name="check"></a> Checking the Latest Version of Newtmgr is Installed</h3>
<p><br>
1. Run <code>which newtmgr</code> to verify that you are using the installed version of newtmgr.</p>
<p><br>
2. Get information about the newtmgr tool:</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
help Help about any command
image Manage images on a device
log Manage logs on a device
mpstat Read mempool statistics from a device
reset Perform a soft reset of a device
run Run test procedures on a device
stat Read statistics from a device
taskstat Read task statistics from a device
Flags:
-c, --conn string connection profile to use
-h, --help help for newtmgr
-l, --loglevel string log level to use (default &quot;info&quot;)
--name string name of target BLE device; overrides profile setting
-t, --timeout float timeout in seconds (partial seconds allowed) (default 10)
-r, --tries int total number of tries in case of timeout (default 1)
Use &quot;newtmgr [command] --help&quot; for more information about a command.
</code></pre></div>
<p><br></p>
<h3 id="installing-earlier-release-versions-of-newtmgr">Installing Earlier Release Versions of Newtmgr</h3>
<p>You can download and install an earlier version of newtmgr.</p>
<p><br>
1. Run <code>sudo apt-get remove newtmgr</code> command the current installation.</p>
<p><br>
2. Download and install the package. For example, run the following commands to install the 1.0.0 version of newtmgr :</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.0.0/newtmgr_1.0.0-1_amd64.deb
$ sudo dpkg -i newtmgr_1.0.0-1_amd64.deb
</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>