apt 命令是一个功能强大的命令行工具,它不只能够更新软件包列表索引、执行安装新软件包、升级现有软件包,还可以升级整个 Ubuntu 系统(apt 是 Debian 系操做系统的包管理工具)。
与更专业的 APT(Advanced Packaging Tool) 工具 apt-get 和 apt-cache 相比,apt 具备一些更适合交互式场景的选项,它更倾向于成为面向最终用户的工具(而不单单是系统管理员)。换句话说,apt 比 apt-get 用起来更简单,用户体验更好。
本文介绍 apt 命令的基本用法,演示环境为 Ubuntu 18.04。html
语法格式:
apt [options] commandpython
配置文件:
早期 apt 默认的配置文件为 /etc/apt/apt.conf,可是当前的 Ubuntu 系统中默认没有这个文件。
若是 /etc/apt/apt.conf 文件存在,apt 仍然会读取它。但如今的设计思路是把配置文件分隔后放置在 /etc/apt/apt.conf.d 目录下,这样更容易管理。linux
经常使用子命令:
update
update 命令用于从配置的源下载包信息。update 命令应该老是在安装或升级包以前执行。nginx
upgrade
upgrade 命令用于从配置的源安装当前系统中的全部包的可用升级。若是须要知足依赖关系,就安装新的包,可是不会删除现有的包。若是包的升级须要删除已安装的包,则不执行此包的升级。docker
full-upgrade
full-upgrade 命令执行升级功能,若是须要将系统升级到新的版本,则会删除当前已安装的包。ubuntu
install,remove,purge
install 命令用来安装一个或多个指定的包。remove 命令用来删除包,可是会保留包的配置文件。purge 命令会在删除包的同时删除其配置文件。vim
autoremove
autoremove 命令用于删除自动安装的包,这些包是为了知足其余包的依赖关系而自动安装的,随着依赖关系的更改或须要它们的包已被删除,这些包如今再也不须要了。ionic
search
search 命令用于在可用包列表中搜索给定的项并显示匹配到的内容。例如,若是您正在寻找具备特定功能的包,这将很是有用。ide
show
show 命令显示关于给定包的信息,包括它的依赖关系、安装和下载大小、包的来源、包内容的描述等等。好比,在删除一个包或搜索要安装的新包以前查看这些信息是颇有帮助的。工具
list
list 命令能够显示知足特定条件的包列表,默认列出全部的包。能够经过 --installed 选项列出已安装的包,--upgrade 选项列出能够升级的包。
edit-sources
edit-sources 命令用来编辑 /etc/apt/source.list 文件:
$ sudo apt edit-sources
更新包索引文件
$ sudo apt update
安装包
$ sudo apt install nginx
安装指定版本的包
$ sudo apt install vim=2:8.0.1453-1ubuntu1
安装本地的 deb 包文件
$ sudo apt install name.deb
这种方法会自动下载并安装依赖的包。
安装系统中有更新的包
upgrade 命令会升级已安装的包,同但不移除任何包。它的目标是确保可能的侵入式升级最小化:
$ sudo apt update $ sudo apt upgrade
删除包
经过下面两个命令能够删除使用 apt install 安装的包:
$ sudo apt remove nmap $ sudo apt purge nmap
其中 remove 命令会保留配置文件,而 purge 命令会把配置文件一块儿删除。
查看包的信息
$ apt show vim Package: vim Version: 2:8.0.1453-1ubuntu1.1 Priority: optional Section: editors Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 2,852 kB Provides: editor Depends: vim-common (= 2:8.0.1453-1ubuntu1.1), vim-runtime (= 2:8.0.1453-1ubuntu1.1), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.7), libpython3.6 (>= 3.6.5), libselinux1 (>= 1.32), libtinfo5 (>= 6) Suggests: ctags, vim-doc, vim-scripts Homepage: https://vim.sourceforge.io/ Task: cloud-image, server Supported: 5y Download-Size: 1,152 kB APT-Manual-Installed: yes APT-Sources: http://cn.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages Description: Vi IMproved - enhanced vi editor Vim is an almost compatible version of the UNIX editor Vi. ...
输出指定条件的包列表
能够指定某个包的名称,不然会输出大量的信息 :
$ apt list vim
$ apt list docker
还能够使用统配符:
能够经过 --installed 选项列出全部已安装的包,而 --upgradable 选项则列出全部能够升级的包:
搜索包
search 命令用于在可用包列表中搜索给定的项并显示匹配到的内容。好比下面的命令,咱们搜索 docker,与之相关的 cadvisor 也被搜索出来了:
$ apt search docker
apt 与 apt-get 的区别
简单来讲 apt 命令就是 apt-get、apt-cache 和 apt-config 中最经常使用命令选项的集合。下面是几个常见命令的对照关系:
list:与 dpkg --list 类似
search:与 apt-cache search 类似
show:与 apt-cache show 类似
update:与 apt-get update 相同
install/remove:与 apt-get install/remove 类似,可是多了进度条提示
upgrade:与 apt-get upgrade --with-new-pkgs 相同
full-upgrade:与 apt-get dist-upgrade 类似
在咱们使用的过程当中,比较明显的区别是能够看到 apt 命令的进度条,我的感受并非太有用。
执行 apt update 命令,会提示能够升级的包的个数,而 apt-get update 命令则没有这样的提高:
$ sudo apt update ... Fetched 8,932 kB in 31s (288 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done 28 packages can be upgraded. Run 'apt list --upgradable' to see them.
参考:
apt man page
维护和更新:APT 工具
What is the difference between apt and apt-get?