<!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" selected="selected" >
    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>
  
  
    </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="
  ../../newt/install/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="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.2.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.2.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>
</ol>
<p>See <a href="/newtmgr/prev_releases">Installing Previous Releases of Newtgmr</a> to install an earlier version of newtmgr.</p>
<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  HttpError404
</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/binary-releases/master/mynewt-newt-tools_1.2.0/newtmgr_1.2.0-1_amd64.deb
$sudo dpkg -i newtmgr_1.2.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_2_0_tag
Note: checking out &#39;mynewt_1_2_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>
                        
                        <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>