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?