Ubuntu : apt 命令
<p><span style="font-family: Microsoft YaHei; font-size: 15px">apt 命令是一个功能强大的命令行工具,它不仅可以更新软件包列表索引、执行安装新软件包、升级现有软件包,还能够升级整个 Ubuntu 系统(apt 是 Debian 系操作系统的包管理工具)。</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">与更专业的 APT(Advanced Packaging Tool) 工具 apt-get 和 apt-cache 相比,apt 具有一些更适合交互式场景的选项,它更倾向于成为面向最终用户的工具(而不仅仅是系统管理员)。换句话说,apt 比 apt-get 用起来更简单,用户体验更好。</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">本文介绍 apt 命令的基本用法,演示环境为 Ubuntu 18.04。</span></p><h1><span style="font-family: Microsoft YaHei; font-size: 18pt">基本语法</span></h1>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">语法格式:</span><br><strong><span style="font-family: Microsoft YaHei; font-size: 15px">apt command</span></strong></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">配置文件:</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">早期 apt 默认的配置文件为 /etc/apt/apt.conf,但是当前的 Ubuntu 系统中默认没有这个文件。</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">如果 /etc/apt/apt.conf 文件存在,apt 仍然会读取它。但现在的设计思路是把配置文件分隔后放置在 /etc/apt/apt.conf.d 目录下,这样更容易管理。</span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">常用子命令:</span><br><strong><span style="font-family: Microsoft YaHei; font-size: 15px">update</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">update 命令用于从配置的源下载包信息。update 命令应该总是在安装或升级包之前执行。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">upgrade</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">upgrade 命令用于从配置的源安装当前系统中的所有包的可用升级。如果需要满足依赖关系,就安装新的包,但是不会删除现有的包。如果包的升级需要删除已安装的包,则不执行此包的升级。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">full-upgrade</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">full-upgrade 命令执行升级功能,如果需要将系统升级到新的版本,则会删除当前已安装的包。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">install,remove,purge</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">install 命令用来安装一个或多个指定的包。remove 命令用来删除包,但是会保留包的配置文件。purge 命令会在删除包的同时删除其配置文件。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">autoremove</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">autoremove 命令用于删除自动安装的包,这些包是为了满足其他包的依赖关系而自动安装的,随着依赖关系的更改或需要它们的包已被删除,这些包现在不再需要了。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">search</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">search 命令用于在可用包列表中搜索给定的项并显示匹配到的内容。例如,如果您正在寻找具有特定功能的包,这将非常有用。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">show</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">show 命令显示关于给定包的信息,包括它的依赖关系、安装和下载大小、包的来源、包内容的描述等等。比如,在删除一个包或搜索要安装的新包之前查看这些信息是很有帮助的。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">list</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">list 命令可以显示满足特定条件的包列表,默认列出所有的包。可以通过 --installed 选项列出已安装的包,--upgrade 选项列出可以升级的包。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">edit-sources</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">edit-sources 命令用来编辑 /etc/apt/source.list 文件:</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">$ sudo apt edit-sources</span></p>
<h1><span style="font-family: Microsoft YaHei; font-size: 18pt">常见用法</span></h1>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">更新包索引文件</span></strong></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt update</pre>
</div>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">安装包</span></strong></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> nginx</pre>
</div>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">安装指定版本的包</span></strong></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> vim=<span style="color: rgba(128, 0, 128, 1)">2</span>:<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">1453</span>-1ubuntu1</pre>
</div>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">安装本地的 deb 包文件</span></strong></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span> apt <span style="color: rgba(0, 0, 255, 1)">install</span> name.deb</pre>
</div>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">这种方法会自动下载并安装依赖的包。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">安装系统中有更新的包</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">upgrade 命令会升级已安装的包,同但不移除任何包。它的目标是确保可能的侵入式升级最小化:</span></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span><span style="color: rgba(0, 0, 0, 1)"> apt update
$ </span><span style="color: rgba(0, 0, 255, 1)">sudo</span> apt upgrade</pre>
</div>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">删除包</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">通过下面两个命令可以删除使用 apt install 安装的包:</span></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span><span style="color: rgba(0, 0, 0, 1)"> apt remove nmap
$ </span><span style="color: rgba(0, 0, 255, 1)">sudo</span> apt purge nmap</pre>
</div>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">其中 remove 命令会保留配置文件,而 purge 命令会把配置文件一起删除。</span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">查看包的信息</span></strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">$ apt show vim
Package: vim
Version: </span><span style="color: rgba(128, 0, 128, 1)">2</span>:<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">1453</span>-1ubuntu1.<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">
Priority: optional
Section: editors
Origin: Ubuntu
Maintainer: Ubuntu Developers </span><ubuntu-devel-discuss@lists.ubuntu.com><span style="color: rgba(0, 0, 0, 1)">
Original</span>-Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org><span style="color: rgba(0, 0, 0, 1)">
Bugs: https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">bugs.launchpad.net/ubuntu/+filebug</span>
Installed-Size: <span style="color: rgba(128, 0, 128, 1)">2</span>,<span style="color: rgba(128, 0, 128, 1)">852</span><span style="color: rgba(0, 0, 0, 1)"> kB
Provides: editor
Depends: vim</span>-common (= <span style="color: rgba(128, 0, 128, 1)">2</span>:<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">1453</span>-1ubuntu1.<span style="color: rgba(128, 0, 128, 1)">1</span>), vim-runtime (= <span style="color: rgba(128, 0, 128, 1)">2</span>:<span style="color: rgba(128, 0, 128, 1)">8.0</span>.<span style="color: rgba(128, 0, 128, 1)">1453</span>-1ubuntu1.<span style="color: rgba(128, 0, 128, 1)">1</span>), libacl1 (>= <span style="color: rgba(128, 0, 128, 1)">2.2</span>.<span style="color: rgba(128, 0, 128, 1)">51</span>-<span style="color: rgba(128, 0, 128, 1)">8</span>), libc6 (>= <span style="color: rgba(128, 0, 128, 1)">2.15</span>), libgpm2 (>= <span style="color: rgba(128, 0, 128, 1)">1.20</span>.<span style="color: rgba(128, 0, 128, 1)">7</span>), libpython3.<span style="color: rgba(128, 0, 128, 1)">6</span> (>= <span style="color: rgba(128, 0, 128, 1)">3.6</span>.<span style="color: rgba(128, 0, 128, 1)">5</span>), libselinux1 (>= <span style="color: rgba(128, 0, 128, 1)">1.32</span>), libtinfo5 (>= <span style="color: rgba(128, 0, 128, 1)">6</span><span style="color: rgba(0, 0, 0, 1)">)
Suggests: ctags, vim</span>-doc, vim-<span style="color: rgba(0, 0, 0, 1)">scripts
Homepage: https:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">vim.sourceforge.io/</span>
Task: cloud-<span style="color: rgba(0, 0, 0, 1)">image, server
Supported: 5y
Download</span>-Size: <span style="color: rgba(128, 0, 128, 1)">1</span>,<span style="color: rgba(128, 0, 128, 1)">152</span><span style="color: rgba(0, 0, 0, 1)"> kB
APT</span>-Manual-<span style="color: rgba(0, 0, 0, 1)">Installed: yes
APT</span>-Sources: http:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">cn.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages</span>
Description: Vi IMproved - enhanced <span style="color: rgba(0, 0, 255, 1)">vi</span><span style="color: rgba(0, 0, 0, 1)"> editor
Vim is an almost compatible version of the UNIX editor Vi.
...</span></pre>
</div>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">输出指定条件的包列表</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">可以指定某个包的名称,否则会输出大量的信息 :</span></p>
<div class="cnblogs_code">
<pre>$ apt list vim</pre>
</div>
<p><span style="font-family: Microsoft YaHei; font-size: 15px"><img src="https://img2018.cnblogs.com/blog/952033/201908/952033-20190815130137255-2020317695.png"></span></p>
<div class="cnblogs_code">
<pre>$ apt list docker</pre>
</div>
<p><span style="font-family: Microsoft YaHei; font-size: 15px"><img src="https://img2018.cnblogs.com/blog/952033/201908/952033-20190815130207891-1621157473.png"></span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">还可以使用统配符:</span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px"><img src="https://img2018.cnblogs.com/blog/952033/201908/952033-20190815130238475-981706994.png"></span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">可以通过 --installed 选项列出所有已安装的包,而 --upgradable 选项则列出所有可以升级的包:</span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px"><img src="https://img2018.cnblogs.com/blog/952033/201908/952033-20190815130309559-643948639.png"></span></p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">搜索包</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">search 命令用于在可用包列表中搜索给定的项并显示匹配到的内容。比如下面的命令,我们搜索 docker,与之相关的 cadvisor 也被搜索出来了:</span></p>
<div class="cnblogs_code">
<pre>$ apt search docker</pre>
</div>
<p><span style="font-family: Microsoft YaHei; font-size: 15px"><img src="https://img2018.cnblogs.com/blog/952033/201908/952033-20190815130348012-122765848.png"></span></p>
<p><span style="font-size: 18pt"><strong><span style="font-family: Microsoft YaHei">apt 与 apt-get 的区别</span></strong></span><br><span style="font-family: Microsoft YaHei; font-size: 15px">简单来说 apt 命令就是 apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。下面是几个常见命令的对照关系:</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">list:与 dpkg --list 相似</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">search:与 apt-cache search 相似</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">show:与 apt-cache show 相似</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">update:与 apt-get update 相同</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">install/remove:与 apt-get install/remove 相似,但是多了进度条提示</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">upgrade:与 apt-get upgrade --with-new-pkgs 相同</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">full-upgrade:与 apt-get dist-upgrade 相似</span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">在我们使用的过程中,比较明显的区别是可以看到 apt 命令的进度条,个人感觉并不是太有用。</span></p>
<p><span style="font-family: Microsoft YaHei; font-size: 15px">执行 apt update 命令,会提示可以升级的包的个数,而 apt-get update 命令则没有这样的提升:</span></p>
<div class="cnblogs_code">
<pre>$ <span style="color: rgba(0, 0, 255, 1)">sudo</span><span style="color: rgba(0, 0, 0, 1)"> apt update
...
Fetched </span><span style="color: rgba(128, 0, 128, 1)">8</span>,<span style="color: rgba(128, 0, 128, 1)">932</span> kB <span style="color: rgba(0, 0, 255, 1)">in</span> 31s (<span style="color: rgba(128, 0, 128, 1)">288</span> kB/<span style="color: rgba(0, 0, 0, 1)">s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
</span><span style="color: rgba(255, 0, 0, 1)"><strong>28 packages can be upgraded.</strong></span> Run <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">apt list --upgradable</span><span style="color: rgba(128, 0, 0, 1)">'</span> to see them.</pre>
</div>
<p> </p>
<p><strong><span style="font-family: Microsoft YaHei; font-size: 15px">参考:</span></strong><br><span style="font-family: Microsoft YaHei; font-size: 15px">apt man page</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">维护和更新:APT 工具</span><br><span style="font-family: Microsoft YaHei; font-size: 15px">What is the difference between apt and apt-get?</span></p>
</div>
<div id="MySignature" role="contentinfo">
<div>作者:sparkdev</div>
<div>出处:http://www.cnblogs.com/sparkdev/</div>
<div>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。</div><br><br>
来源:https://www.cnblogs.com/sparkdev/p/11357343.html
頁:
[1]