Advanced Packaging Tool(apt)是一個命令行實用程序,用于在Ubuntu、Debian和相關Linux發行版上安裝、更新、刪除和管理deb軟件包。apt是為交互使用而設計的,最好在shell腳本中使用apt-get和apt-cache,因為它們在不同版本之間向后兼容,并且有更多選項和功能。大多數apt命令必須以具有sudo權限的用戶身份運行。
簡介
Advanced Packaging Tool(apt)是Debian及其衍生產品的主要命令行包管理器,它提供了用于搜索、管理和查詢的命令行工具、有關軟件包的信息以及對所有功能的低級訪問。
最初只有.tar.gz的打包文件,用戶必須編譯每個他想在GNU/Linux上運行的軟件。用戶們普遍認為系統很有必要提供一種方法來管理這些安裝在機器上的軟件包,當Debian誕生時,這樣一個管理工具也就應運而生,它被命名為dpkg。從而著名的“package”概念第一次出現在GNU/Linux系統中,稍后Red Hat才決定開發自己的“rpm”包管理系統。
很快一個新的問題難倒了GNU/Linux制作者,他們需要一個快速、實用、高效的方法來安裝軟件包,當軟件包更新時,這個工具應該能自動管理關聯文件和維護已有配置文件。Debian再次率先解決了這個問題,APT(Advanced Packaging Tool)作為dpkg的前端誕生了。APT后來還被Conectiva改造用來管理rpm,并被其它Linux發行版本采用為它們的軟件包管理工具。
APT由幾個名字以“apt-”打頭的程序組成。apt-get、apt-cache 和apt-cdrom是處理軟件包的命令行工具。
Linux命令—apt,也是其它用戶前臺程序的后端,如dselect 和aptitude。
作為操作的一部分,APT使用一個文件列出可獲得軟件包的鏡像站點地址,這個文件就是/etc/apt/sources.list。
工作原理
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-cache search # ——(package 搜索包)
使用apt顯示軟件包信息,運行以下命令:sudo apt show package_name
使用apt安裝軟件包,運行以下命令:sudo apt install package_name。
sudo apt-get reinstall # —–(package - - reinstall 重新安裝包)
sudo apt-get -f install # —–(強制安裝?#”-f = –fix-missing”當是修復安裝吧…)
sudo apt-get remove #—–(package 刪除包)
sudo apt-get remove --purge # ——(package 刪除包,包括刪除配置文件等)
使用apt刪除未使用的軟件包,運行以下命令:sudo apt autoremove。此命令將移除系統上不再被其他任何東西使用的依賴項。
sudo apt-get update #——更新軟件包數據庫
sudo apt-get upgrade #——更新已安裝的包,這將顯示要升級的軟件包數量和所有要升級的軟件包。
sudo apt-get dist-upgrade # ———升級系統
sudo apt-get dselect-upgrade #——使用 dselect 升級
apt-cache depends #——-(package 了解使用依賴)
apt-cache rdepends # ——(package 了解某個具體的依賴?#當是查看該包被哪些包依賴吧…)
sudo apt-get build-dep # ——(package 安裝相關的編譯環境)
apt-get source #——(package 下載該包的源代碼)
sudo apt-get Clean && sudo apt-get autoclean # ——–清理下載文件的存檔 && 只清理過時的包
sudo apt-get check #——-檢查是否有損壞的依賴
apt-get install# ——(下載 以及所有依賴的包裹,同時進行包裹的安裝或升級。如果某個包裹被設置了 hold (停止標志,就會被擱在一邊(即不會被升級)。更多 hold 細節請看下面。)
apt-get remove [--purge]# ——(移除 以及任何倚賴這個包裹的其它包裹。)
--purge 指明這個包裹應該被完全清除 (purged),更多信息請看 dpkg -P。
apt-get update# ——(升級來自 Debian 鏡像的包裹列表,如果你想安裝當天的任何軟件,至少每天運行一次,而且每次修改了/etc/apt/sources.list 后,必須執行。)
apt-get upgrade [-u]# ——(升級所有已經安裝的包裹為最新可用版本。不會安裝新的或移除老的包裹。形前端(其中一些在使用前得先安裝)。這里 dselect 無疑是最強大的,也是最古老,最難駕馭。)
參考資料 >