Skip to content

Instantly share code, notes, and snippets.

@chusiang
Last active May 15, 2018 08:37
Show Gist options
  • Save chusiang/517cb635c37002bffef6 to your computer and use it in GitHub Desktop.
Save chusiang/517cb635c37002bffef6 to your computer and use it in GitHub Desktop.
以 Debian 的方式(IN THE DEBIAN WAY): aptitude 參考手冊 v 0.2.0
aptitude 參考手冊
eTony etony@tom.com debian.linuxsir.org
dec 15, 2005
Abstract:
本文是對初學者的一個簡短的指南, aptitude 是用於 Debian GNU/Linux 套件操作的一個控制台前端. 希望本文對進入 Debian GNU/Linux 殿堂的初學者有所裨益.
版權聲明
在遵守 GNU 公共許可證, Version 21 或自由軟體基金會發佈的更新版本的條款下, 授權複製, 發佈以及/或者修改本文檔. 本文檔的發布寄予有用的期望, 但不做任何保證.
在遵守并包含本文檔版權聲明的前提下,允許製作和發佈本文檔的完整拷貝.
目錄
概述
定義與介紹
快速開始
過濾與查詢
套件的選擇
受損的套件
清潔您的系統
虛擬包
任務的概念
強大的命令行
操作日誌
有關這篇 HOWTO 的一些資料
Bibliography
概述
aptitude 是 Debian GNU/Linux 系統中, 非常神奇的的套件管理器, 基於大名鼎鼎的 APT 機制, 整合了 dselect 和 apt-ge2 的所有功能, 並提供的更多特性, 特別是在依賴關係處理上.本文檔並不是一個全面的參考手冊, 只是向新用戶展示 Debian 系統下的 aptitude 是如何的強大, 並希望能使用戶快速的掌握一些有關 aptitude 的實用技巧. 更多信息請參閱作者提供的用戶手冊3.
定義與介紹
要使用 aptitude, 只要打開您喜愛的終端, 鍵入如下命令即可4:
# aptitude5
aptitude 的主視圖組織的非常有條理,而且界面佈局清爽.上部窗口列出的是套件根據類別和它們在本地系統的狀態排序.這裡是 aptitude 的操作界面.底部窗口給出主窗口的狀態描述信息.
Actions Undo Package Search Options Views Help
f10: Menu ?: Help q: Quit u: Update g: Download/Install/Remove Pkgs
aptitude 0.2.15.9 Will use 25.9MB of disk space DL Size: 27.7MB
-- Installed Packages
-- Not Installed Packages
-- Obsolete and Locally Created Packages
-- Virtual Packages
-- Tasks
在aptitude主菜單提供了七個選項,這依賴於您系統中選用的套件的狀態.
Updated Packages (升級的套件)
此選項列出在歸檔庫中出先新版本的套件.通常,當用戶完成選擇處理,aptitude下載安裝了請求的套件後,這裡的套件都將被升級.
New Packages (新套件)
更新 (aptitude update,或在 aptitude 中鍵入[u]) 套件列表後所增加的套件,讓用戶瞭解 Debian 歸檔庫增加了哪些內容.每次更新,新的套件就會累加到這裡,直至您鍵入[f]將累加清除,並將它們集合到主包庫中.
Installed Packages (已安裝套件)
這些套件已經安裝在您的機器上,但資源庫套件列表顯示不需要對它們進行升級.
Not Installed Packages (尚未安裝的套件)
就像名稱標識的,這些套件當前沒有安裝在您的機器上.當您清除未安裝的新套件時,將會進入這部分.
Obsolete or Locally Created Packages (廢棄或本地創建的套件)
這些套件目前已安裝在您的機器上,但是它們並未出現在 /etc/apt/sources.list 為 APT 配置的資源庫中.
Virtual Packages (虛擬套件)
虛擬套件是由一些套件提供的邏輯概念.例如,mail-transport-agent 就是由 postfix 和 sendmail, 以及其它等等套件提供的.
Tasks (任務)
任務是一組套件,它們提供了一種簡單的方法來選擇一組預定義的完成特定任務的套件.在後面將對此做更進一步的講解.aptitude 允許對任務進行瀏覽和安裝.
aptitude 是以樹狀結構組織的,相關節點以細線相連.可以使用方向鍵, [PageUp] 和 [PageDown] 進行定位.[Return] 或 [Enter] 用於展開或收起某個節點.aptitude 的開視圖分為四列: 套件狀態和請求動作, 套件名稱, 當前安裝版本(或<none>), 最新版本.
aptitude 套件列表中的套件狀態:
v 虛擬
B 損壞
u 解包
C 預配置
H 預安裝
c 卸載未清除
p 清除套件
i 已經安裝
E 內部錯誤
在 aptitude 套件列表中的請求操作:
h 保持
p 清除
d 刪除(卸載)
B 損壞
i 安裝
r 重裝
u 升級
底部窗口給出主窗口當前顯示的上下文信息.可以用[a]和[z]實現滾屏,[i]在不同信息視圖間切換.最後,[D]則用於顯示和隱藏信息區.
下邊是默認安裝時6相關背景顏色說明7:
顏色 意義 紅
綠 安裝新套件
青 將套件升級的最新
品紅 刪除(或清除)套件
白 保存版本(禁止升級)
快速開始
對於任何程序來說, 您首先知道的就是如何退出 -- 在 aptitude 的主視圖中鍵入[q](quit), 即可退出 aptitude. 任何時候您鍵入[?](help), 都可以喚出幫助信息.
aptitude 是基於 apt 機制的, 因此在進一步操作前你需要正確的配置 sources.list8 文件.並確保 套件列表得到了及時的更新. [u](update) 命令就是為此設計的, 這類似於 apt-get update 操作.
如果出現了新的套件 (也就是說, 至上次套件列表更新時, 仍為出現的套件), 將會在 New Packages 選項下顯示. 您可以鍵入 [f](forget that packages are new) 命令, 將它們清除到可用套件選項中去.
移動光標到您感興趣的行, 然後鍵入回車, 將選項展開. 選定一個套件後, 有關套件的信息將會出現在屏幕底部. 如果要查看更詳細的信息, 則需要鍵入 [i](information). 鍵入 [q] (quit) 則會退出信息顯示屏幕.
對於沒有安裝的套件 (位於 New Packages 或 Not Installed Packages 區域), 可以選定後, 鍵入[+](add package), 以標示安裝.
對於已經安裝的套件, 則可以進行保持, 刪除, 或清除等操作. 保持 [=](hold) 是指保持套件的現有版本, 而禁止對其升級. 刪除 [-](remove package) 標記已安裝套件為刪除狀態. [_](purge package) 命令則將套件標記為清除狀態.
一旦您標記完感興趣的套件, 就可以鍵入 [g](go) 以保存修改, 使其生效.
過濾與查詢
鍵入 [/], 並提供一些判斷語句, 來查詢套件的名稱. [\] 用於查詢下一個匹配. 就像正則表達式一樣, 可以用 ^ 和 $ 匹配名稱的起始字符和結束字符. 使用 [l],用戶可以以某種標準限制套件的顯示,這同樣適用於查詢9.下邊是一些重要的判斷謂詞:
aptitude 的搜索謂詞
謂詞 用途
~ahold 保持現有版本的套件
~b 損壞的套件
~d<text> 描述中含有<text>內容的套件
~g 無用的套件
~m<maint> 由<maint>維護的套件
~n<text> 名稱中含有<text>的套件
~V<version> 版本號中含有<version>的套件
這些謂詞是可以聯合起來使用的.例如,~ahold~dmail 選擇在描述字中含有 mail 的被保持現有版本的套件.在兩個謂詞間使用管道符號 (|),可以對兩個表達式進行邏輯 或 (OR) 操作: ~v|~b 選擇所有受損套件或虛擬套件. 查詢不會忽略兩個謂詞間的空格! 因此,~V.0 和 ~V .0 是不一樣的, 後邊的一個不會有匹配結果.感嘆號對表達式取反: !~b 查詢所有未受損的套件.可以使用括號來表達複雜的布爾邏輯:~g (~dmanual|~sdoc) 將查詢所有包含manual或在 doc 部分的受損套件.
需要注意的是, 當搜尋正則表達式中含有某些特殊字符, 象 '()',代字號(~),和感嘆號時, 則必須使用代字號進行轉義.
套件的選擇
套件的選擇可以通過瀏覽,然後按下對應鍵進行操作:
[+] 選定要安裝的套件.
[-] 選定要刪除的套件.
[_] 選定要清除的套件.
[=] 保持套件的當前版本,阻止其被升級.
[:] 僅在aptitude會話期間鎖定套件.
[L] 請求重裝套件.
[M] 將套件標記為自動安裝.自動安裝的套件
在手動安裝的包對其沒有依賴需求時會自動刪除.
[m] 將套件標記為手動.
[R] 請求重新配置套件.
[I] 請求立即安裝套件(以其依賴包)並暫時鎖定其它升級和
安裝的套件.作用與apt-get install <package>相同.
[F] 禁止安裝某個版本的套件.但是,對更高版本正常使用.
[B] 調用reportbug,申報一個套件的錯誤.
[C] 下載並顯示一個套件的變更日誌.
[g] 進入所有請求變更的預覽窗口.如果在預覽屏鍵入此鍵,
將執行變更操作.
[d] 查詢相關套件: suggest/recommanded/depends
[r] 查詢依賴包
[/] 搜索
[\] 繼續搜索
注: Control-u組合鍵可用於取消上一步的動作.
展開一個套件的節點,將會在屏幕上輸出套件的詳細信息.除了有關套件的有用信息外,在發現aptitude給出的解決方案不能滿足您的需求時, 可以在屏幕中方便的瀏覽相關聲明並交互的解決依賴問題. 還可以使用[Return]展開節點,在主窗口用於操作套件選擇的按鍵也可在遵循相關聲明的情況下,應用於這裡列出的套件.鍵入[q]令您回退一級,關閉套件詳述窗口,返回套件列表.
受損的套件
當aptitude遇到不能解決依賴問題時,會以紅色背景高亮顯示有問題的套件,並顯示標題窗口中錯誤數量.
並會在標題窗口中顯示受損包的數量, 例如: #Broken: 2
mygray Actions Undo Package Search Options Views Help
mygrayf10: Menu ?: Help q: Quit u: Update g: Download/I
mygrayaptitude 0.2.15.9 #Broken: 2 Will use 1118kB of
mygray--- Packages being automatically installed to satisfy
mygray--\ Packages being deleted due to unsatisfied depende
mygrayid postfix -1974kB 2.1.5-9
mygrayiB postfix-mysql 2.1.5-9
mygrayiB postfix-tls 2.1.5-9
mygrayi webmin-postfix 1.180-4
mygray--\ Packages to be installed
mygraypi exim4 +32.8kB <none>
mygray--- Packages which are suggested by other packages
mygray
受損的套件是指那些不能滿足依賴關係的,或相互衝突的套件(這種情況下兩個套件都是 broken 的). aptitude 顯然不會允許用戶選擇安裝 broken 的套件. 因此,需要首先修正這種問題:
當 broken 套件的個數非零,並且 aptitude 被告知動作未定時(用戶鍵入了 [g] 鍵),在顯示這些未決問題摘要之前aptitude將試圖解決所有的問題.通常,使用保守的方法進行自動修正,所以前面的所做的選擇有可能被丟棄.在鍵入 [g] 前將一直檢查 broken 套件的數量,或者詳細顯示 broken 套件的信息,這將丟棄前邊所做的修改.幸運的是,aptitude 允許通過 [C_] 或 [C_u] 來取消最後的操作,然後進行手動解決.
當在aptitude中修復broken套件時,它的過濾(或限制)功能非常的有用.鍵入 [I] 進入 ~b,aptitude 將會只顯示 broken 的套件.使用套件細節列表,通過選擇缺少的依賴包,手動解決衝突,稍做努力就可修正出現的問題.另外,您也可以簡單的鍵入 [b],找到第二個 broken 套件.
當 broken 的套件數量增加時,可能需要過濾顯示套件列表.鍵入 [I] 應用前面的過濾設置,以縮小仍處於 broken 狀態的套件列表(希望少了很多). 重複操作,在短時間內就會修復所有 broken的 套件.
清潔您的系統
當 aptitude 選擇了套件以解決其它的依賴問題時,它將這個套件標記為自動安裝.因此,當依賴套件卸載時,這些套件也會自動卸載,這有助於您的系統保持清潔.也可以使用 [M] 和 [m] 手動修改 安裝 標示: 首先添加這一標示,隨後就會卸載它. ~g 謂詞可以用於根據這一標示進行搜索和限制.
雖然 aptitude 的這一功能非常的不錯,但是 deborphan 也提供近似的功能,並且操作起來更加靈活.
虛擬包
有時候,套件可能需要其它必需選擇的套件提供一個概念.這種需求的一個典型例子可以在套件的關聯信息中找到 .at 被設計為依賴能發送電子郵件的程序.在 Debian 中,有不下十種郵件傳輸代理軟體,並不是寫死到 at 的依賴信息中,套件只是簡單的通過依賴於概念包 mail-transport-agent 來實現.提供了所需功能的套件都聲明提供了這種概念,在 Debian 中,是通過所謂的「虛擬套件」來實現的.在系統中安裝了任意一個提供了 mail-transport-agent 虛擬包的套件,Debian 套件工具都認為滿足了依賴關係.
mygrayv --\ mail-transport-agent <none> <none>
mygray --- Packages which depend on mail-transport-agent
mygray --\ Versions
mygrayp xmail 1.21-3sarge1
mygrayp masqmail 0.2.20-1sarge1
mygrayp courier-mta 0.47-4sarge4
mygrayp xmail 1.21-3
mygrayp ssmtp 2.61-2
mygrayp sendmail-bin 8.13.4-3
mygrayi postfix 2.1.5-9
mygrayp nullmailer 1.00RC7-22
mygrayp masqmail 0.2.20-1
mygrayp exim4-daemon-light 4.50-8
mygrayp exim4-daemon-heavy 4.50-8
mygrayp exim 3.36-16
mygrayp esmtp-run 0.5.0-4
mygrayp courier-mta 0.47-4
aptitude 的 Virtual Packages (虛擬套件) 選項可以用於快速定位提供同一功能的套件列表. 這樣當默認設置不能滿足您的需求時, 可以使用這一功能快速的完成調整.
任務的概念
一個 Debian 系統通常用於完成某些任務.比如,您可能把它作為您的桌面系統, 或數據庫服務器, 或 web 服務器, 郵件服務器, 等等. Debian 提出的任務的概念是指滿足某種需求的一系列典型的套件;上邊的任務, 您可以通過安裝一系列的套件,來分別構建一個相應的服務器,或一個桌面環境.
mygray--\ Tasks
mygray --\ End-user
mygray --\ Desktop environment
mygrayp fortune-mod <none> 1:1.99.1-2
mygrayp gdm <none> 2.6.0.8-1
mygrayp gimp <none> 2.2.6-1
mygrayp gnome <none> 64
mygrayp gnome-desktop-environment <none> 64
mygrayp kde <none> 5:44
mygrayp kde-core <none> 5:44
mygrayTasks are groups of packages which provide an easy way to select a
mygraypredefinedset of packages for a particular purpose.
mygrayIf you select a package, an explanation of its current state will appear
mygrayin this space.
傳統的程序 tasksel 提供了一個選擇這些軟體集合的界面,不過它的功能被集成到了 aptitude 中,並進行了擴展,因此 aptitude 更受歡迎.
任務就是選擇一個抽象的概念,然後安裝一系列的所必需的軟包件,讓本地系統可以運行為典型的環境.本質上來講,任務與關聯包(或偽套件)相似,依賴於扮演著不同角色的所需套件,它只是一個虛擬套件,並沒有相關的真實 deb 文件.另外,任務僅僅是個建議,用戶可以不選擇任務建議中的一些套件.您可能會覺得更喜歡 aptitude 主選擇屏幕最下邊的任務界面.與處理套件相似,任務可以視作單個的實體,或展開展示的建議的套件.另外,用戶也可將任務展開,檢查一下建議安裝的套件列表.可以只簡單的安裝任務所包含套件的一部分,而不是全部安裝.您會發現 aptitude 中的任務有點象套件的規則匹配.
也可以通過將任務描述文件放置到 /usr/share/tasksel 目錄下 10,來自定義任務.在 tasksel 套件安裝的 README 文件中提供了有關如何構建任務的文檔11.
強大的命令行
aptitude 提供了一個有趣的命令行模式,可以作為一個基本的嵌入模式來取代 apt-get 並具有 apt-cache 的查詢能力,並在 aptitude 的交互接口增加了搜索判斷12.
通常, aptitude的命令行請求形如:
# aptitude action [arguments...]
常用的一些操作:
# aptitude update * 更新套件列表, 同圖形界面的[u]鍵 *
# aptitude upgrade * 升級套件, 等同與 apt-get upgrade *
# aptitude dist-upgrade *升級系統, 等同與 apt-get dist-upgrade *
# aptitude [ install | remove | purge ] pkg1 [pkg2...] * ...*
# aptitude search pattern1 [pattern2...] * ...*
就像 apt-get,可以在交互界面使用拼接字符將多個不同的查詢動作置於同一命令行中.下面的情況中,安裝A,刪除B,清除C,保持D.'+'是冗餘的,因為默認為安裝.
# aptitude install A+ B- C_ D=
aptitude 的命令行界面的優越之處在於在統一界面下集成了很多程序以及它們的功能.另外,響應安裝請求時,aptitude 可以解決依賴問題,並且在不再需要這些軟級包時,將其自動卸載.
操作日誌
aptitude 將您所有的請求動作寫入/var/log/aptitude.這個文件可以方便的用於安裝和刪除軟體的跟蹤.如果您使用 apt-get 安裝軟體,用 dpkg 卸載軟體,aptitude 的日誌很快就會同步.另外,aptitude 只記錄請求.如果某一動作失敗了,它是不會記錄的.
有關這篇 HOWTO 的一些資料
Bibliography
1
http://www.debian.org;
1
aptitude manpage;
1
aptitude user's manual;
1
APT HOWTO;
1
http://www.linuxsir.org;
1
http://aptitude.sourceforge.net/;
1
aptitude mini howto;
1
dselect 初學者指南.
About this document ...
aptitude 參考手冊
This document was generated using the LaTeX2HTML translator Version 2002-2-1 (1.71)
Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html aptitude.tex -local_icons -split 1
The translation was initiated by tony on 2005-12-18
next_inactive up previous
tony 2005-12-18
@chusiang
Copy link
Author

資料來源: http://man.ddvip.com/linux/debian/aptitude/

%s/簡明/參考/
%s/軟件包/套件/
%s/虛擬包/虛擬套件/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment