進階打包工具(英語:Advanced Packaging Tools,縮寫為APT)是Debian及其衍生的Linux軟體包管理器。APT可以自動下載,組態,安裝二進制或者原始碼格式的軟體套件,因此簡化了Unix系統上管理軟體的過程。APT最早被設計成dpkg的前端,用來處理deb格式的軟體包。現在經過APT-RPM組織修改,APT已經可以安裝在支援RPM的系統管理RPM套件。
此條目可參照英語維基百科相應條目來擴充。 (2020年6月16日) |
此條目需要補充更多來源。 (2020年6月16日) |
構成
APT由以下的幾個主要的命令構成:
apt-get
apt-cache
apt-file
在Debian系統中,APT建構於dpkg之上。
安裝源
APT的軟體安裝來源在Debian安裝的時候即可進行初始設定,除了Debian官方的網路安裝來源之外,也可以使用Debian的安裝光碟,甚至可以從非官方的安裝來源中下載非官方的軟體。APT同時也可以從一些安裝來源中下載原始碼軟體,並且自行編譯、安裝。
依賴關係處理
APT會從每一個安裝源下載一個軟體包的列表。這個列表中有這個安裝源所包含的可用軟體包的資訊。在可能的情況下,APT會安裝最新的軟體包,被安裝的軟體包所依賴的其他軟體包也會被安裝,建議安裝的軟體包則會在螢幕中顯示但是不會被安裝。不過在有一些情況下APT由於依賴關係不能安裝軟體包,例如:這個軟體包和系統中的其他軟體包衝突,或者這個軟體包依賴的軟體包在任何安裝源中均不存在或沒有要求的版本。在這種情況下,APT會返回錯誤資訊並且中止,使用者需要自行解決依賴問題。
軟體包更新方式
Debian系統的一大特色即為「永不停機」,事實上,APT達到了這一點。在軟體被升級的時候,它仍然可以繼續服務。APT可以智慧型地從安裝來源下載最新版本的軟體並且安裝,而無須在安裝後重新啟動電腦(除了更新Linux核心之外)。所有的組態都可以得到保留,升級軟體不再是一個棘手的問題。
發行版升級
APT最使人稱道的特點在於可以從一個Debian發行版升級到新的Debian發行版,例如從woody升級到sarge。APT可以升級絕大部分滿足依賴關係的軟體,但是也可能要刪除,或添加新的軟體以滿足依賴關係。
前端
APT擁有不少的前端程式:
範例
在終端機裡輸入:
apt-cache search <package>
這樣系統會列出與<package>名稱相匹配的套件。
在終端機裡輸入:
apt-get install <package>
這樣系統會自動下載<package>以及所有的依存套件,同時進行套件的安裝。
在終端機裡輸入:
apt-get remove [--purge] <package>
這樣系統會自動移除<package>以及任何依此存套件的其它套件。 --purge指明套件應被完全清除。
在終端機裡輸入:
apt-get update
這樣系統會自動由對映點更新套件列表,如果想安裝最新套件,必須先運行一次。每次修改了 /etc/apt/sources.list後,也必須執行一次。
在終端機裡輸入:
apt-get upgrade [-u]
這樣系統會自動將所有已經安裝在系統內的套件升級為最新版本。如果一個套件改變了依存關係,而需要安裝一個新的套件時,它將不會被升級,而是標識成hold。如果某個套件被設定hold標號,就不會被升級。
在終端機裡輸入:
apt-get dist-upgrade [-u]
和apt-get upgrade類似,dist-upgrade會安裝和移除套件來滿足依存關係,因此具有一定的危險性。
彩蛋
在終端輸入apt-get -h會在末尾出現「This APT has super cow power(該APT有著超級牛力)。
在終端輸入apt-get moo會在螢幕上顯示一頭牛,下方顯示「Have you mooed today?」(您今天哞哞叫了嗎?)。
(__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ..."Have you mooed today?"...
與apt-get相似的一個叫做aptitude的程式在aptitude -h的末尾加上了「This aptitude does not have Super Cow Powers.(這個aptitude沒有超級牛力)」。
在後面加上moo(即輸入aptitude moo),並且分別加上選項「-v」,「-vv」,「-vvv」,「-vvvv」,「-vvvvv」,「-vvvvvv」(即輸入aptitude -v moo;輸入aptitude -vv moo;等等),則會有如下輸出:
$ aptitude moo There are no Easter Eggs in this program.(此軟體沒有復活節彩蛋程式。) $ aptitude -v moo There really are no Easter Eggs in this program.(此軟體真的沒有復活節彩蛋程式。) $ aptitude -vv moo Didn't I already tell you that there are no Easter Eggs in this program?(我不是已經告訴你這個軟體真的沒有復活節彩蛋程式了嗎?) $ aptitude -vvv moo Stop it!(停啦!) $ aptitude -vvvv moo Okay, okay, if I give you an Easter Egg, will you go away?(好啦,好啦,如果我給你復活節彩蛋,你是不是就閃人?) $ aptitude -vvvvv moo All right, you win.(好啦,你赢了。) /----\ -------/ \ / \ / |-----------------/ --------\ ---------------------------------------------- $ aptitude -vvvvvv moo What is it? It's an elephant being eaten by a snake, of course.(這是什麼? 這當然是一隻大象被一隻蛇吞掉。)
而apt系列的另一個名為"apt-build"的軟體套件也具有相似的功能:
$ apt-build moo (__) ~ (oo) / _____\/___/ / /\ / / ~ / * / / ___/ *----/\ / \ / / ~ ~ ..."Have you danced today? Discow!"... (意为:今天你跳舞了吗?迪斯可!)
軟體編寫者特地將Disco(迪斯可)一詞改為"Discow",以體現"Cow"(奶牛)之意。
參見
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.