複製鏈接
請複製以下鏈接發送給好友

apt

(Linux軟件包管理工具)

鎖定
apt是一個命令行實用程序,用於在UbuntuDebian和相關Linux發行版上安裝、更新、刪除和管理deb軟件包 [1] 
apt是為交互使用而設計的。最好在shell腳本中使用apt-get和apt-cache,因為它們在不同版本之間向後兼容,並且有更多選項和功能。 [1] 
大多數apt命令必須以具有sudo權限的用户身份運行。 [1] 
軟件名稱
apt
軟件平台
Linux
軟件語言
中文、英文
全    名
Advanced Packaging Tool

apt產生背景

最初只有.tar.gz的打包文件,用户必須編譯每個他想在GNU/Linux上運行的軟件。用户們普遍認為系統很有必要提供一種方法來管理這些安裝在機器上的軟件包,當Debian誕生時,這樣一個管理工具也就應運而生,它被命名為dpkg。從而著名的“package”概念第一次出現於GNU/Linux系統中. [4] 
很快一個新的問題難倒了GNU/Linux製作者,他們需要一個快速、實用、高效的方法來安裝軟件包,當軟件包更新時,這個工具應該能自動管理關聯文件和維護已有配置文件。Debian再次率先解決了這個問題,APT(Advanced Packaging Tool)作為dpkg的前端誕生了。APT後來還被Conectiva改造用來管理rpm,並被其它Linux發行版本採用為它們的軟件包管理工具 [4] 

apt簡介

apt是Debian及其衍生產品的主要命令行包管理器,它提供了用於搜索、管理和查詢的命令行工具、有關軟件包的信息以及對所有功能的低級訪問 [2] 
作為操作的一部分,APT使用一個文件列出可獲得軟件包的鏡像站點地址,這個文件就是/etc/apt/sources.list。 [5] 

apt工作原理

APT是一個客户/服務器系統。在服務器上先複製所有DEB包(DEB是Debian軟件包格式文件擴展名),然後用APT的分析工具(genbasedir)根據每個DEB 包的包頭(Header)信息對所有的DEB包進行分析,並將該分析結果記錄在一個文件中,這個文件稱為DEB 索引清單,APT服務器的DEB索引清單置於base文件夾內。一旦APT 服務器內的DEB有所變動,一定要使用genbasedir產生新的DEB索引清單。客户端在進行安裝或升級時先要查詢DEB索引清單,從而可以獲知所有具有依賴關係的軟件包,並一同下載到客户端以便安裝。
當客户端需要安裝、升級或刪除某個軟件包時,客户端計算機取得DEB索引清單壓縮文件後,會將其解壓置放於/var/state/apt/lists/,而客户端使用apt-get install或apt-get upgrade命令的時候,就會將這個文件夾內的數據和客户端計算機內的DEB數據庫比對,知道哪些DEB已安裝、未安裝或是可以升級的。

apt常用命令

使用apt更新軟件包數據庫
apt實際上在可用軟件包的數據庫上工作。如果數據庫沒有更新,系統將不知道是否有更新的軟件包可用。這就是為什麼在安裝任何Linux系統之後,第一件事應該是更新apt數據庫。 [3] 
sudo apt-get update
運行此命令時,您將看到從各種服務器檢索到的軟件包信息。 [3] 
使用apt升級已安裝的軟件包
更新軟件包數據庫後,可以升級已安裝的軟件包。最方便的方法是升級所有有可用更新的軟件包。您只需使用以下命令即可: [3] 
sudo apt-get upgrade
這將顯示要升級的軟件包數量和所有要升級的軟件包。 [3] 
使用apt完全升級已安裝的軟件包
升級和完全升級的區別在於,如果需要升級整個系統,後者將刪除已安裝的軟件包。 [1] 
sudo apt-get full-upgrade
使用apt安裝軟件包
安裝軟件包非常簡單,只需運行以下命令: [1] 
sudo apt install package_name
使用apt移除軟件包
要刪除已安裝的軟件包,請鍵入以下命令: [1] 
sudo apt remove package_name
還可以指定多個包,以空格分隔: [1] 
sudo apt remove package1 package2
remove命令將卸載給定的軟件包,但可能會留下一些配置文件。如果要刪除包含所有配置文件的軟件包,請使用purge而不是remove [1] 
使用apt刪除未使用的軟件包
每當在系統上安裝依賴於其他軟件包的新軟件包時,也會安裝軟件包依賴項。刪除包後,依賴項將保留在系統上。這些剩餘的軟件包不再被其他任何東西使用,可以移除。 [1] 
要刪除不需要的依賴項,請使用以下命令: [1] 
sudo apt autoremove
使用apt生成軟件包列表
list命令允許您列出可用、已安裝和可升級的軟件包。 [1] 
要列出所有可用的軟件包,請使用以下命令:
sudo apt list
該命令將輸出所有包的列表,包括有關包的版本和體系結構的信息。要了解是否安裝了特定的軟件包,可以使用grep命令過濾輸出。 [1] 
sudo apt list | grep package_name
要僅列出已安裝的軟件包,請鍵入: [1] 
sudo apt list --installed
在實際升級軟件包之前,獲取可升級軟件包的列表可能很有用: [1] 
sudo apt list --upgradeable
使用apt搜索軟件包
此命令允許您在可用軟件包列表中搜索給定軟件包: [1] 
sudo apt search package_name
如果找到,該命令將返回名稱與搜索詞匹配的包。 [1] 
使用apt顯示軟件包信息
在刪除或安裝新軟件包之前,有關軟件包依賴項、安裝大小、軟件包源等的信息可能很有用。
要檢索有關給定包的信息,請使用show命令: [1] 
sudo apt show package_name
使用apt在不升級的情況下安裝軟件包
如果出於某種原因,你想安裝一個軟件包,但不想升級,那麼如果已經安裝了,就可以升級。在這種情況下,您可以通過以下方式使用選項–不升級: [3] 
sudo apt install <package_name> --no-upgrade
使用apt只升級軟件包
如果只想升級軟件包,但不想安裝(如果尚未安裝),可以使用以下命令進行升級: [3] 
sudo apt install <package_name> --only-upgrade
使用apt安裝軟件的特定版本
默認情況下,將為應用程序安裝存儲庫中可用的最新版本。但如果不想安裝最新版本,可以指定版本號。您需要知道要安裝的確切版本號。 [3] 
只需使用包的名稱添加=version。 [3] 
sudo apt install <package_name>=<version_number>
使用apt清理下載文件的存檔
sudo apt-get clean
使用apt下載軟件源代碼
sudo apt-get source <packages> [6] 
使用apt瞭解軟件依賴關係
sudo apt-cache depends <packages>
使用apt檢查軟件依賴關係
sudo apt-get check
使用apt安裝相關的編譯環境
sudo apt-get build-dep <packages>
參考資料