星期一, 7月 09, 2007

aptitude 介紹

介面

先來看一下 aptitude 的畫面。
http://chuany.net/gallery/album26/C8_3_aptitude_main?full=1

解釋一下這六個項目:

1. New Packages:update list 後所增加的套件
2. Installed Package:系統已安裝的
3. Not Installed Package:尚未安裝的
4. Obsolete and Locally Created Package:非 apt port 所安裝的package,通常為自己建立的deb居多
5. Virtual Packages:這邊的package本身不存在,通常是為了套件相依性而產生,也可以下拉看看該package的版本,比如kernel-image-2.4,往下拉就會看到更多不同版本,比如686/k6/k7等。
6. Tasks:類似tasksel,以不同需求分類package,比如一般桌面使用,我們可以在 End-User 這個區域找到方便使用的軟體

套件狀態

1. h:Hold,保留
2. d:Remove,移除
3. p:Purge,同移除,但會將設定檔也刪除
4. B:Broken,表示該套件與其他套件的相依性出錯
5. i:Install,安裝
6. r:Reinstall,重新安裝
7. u:Upgrade,該套件有新的版本可供升級

功能鍵說明

在使用 aptitude 之前,一些操作的指令與模式需要先熟悉,以下列出的是常用的按鍵組合:

1. +:安裝
2. -:移除
3. _:同移除,但會將設定檔也刪掉
4. =:保留套件不被升級
5. L:重新安裝
6. u:同 apt-get update
7. g:執行 apt-get install
8. d:找出packages與此套件的相依性:suggest/recommanded/depends
9. r:找出套件 depends on 的package
10. enter:顯示套件資訊
11. /:收尋套件
12. \:收尋結果的上一步
13. ?:help視窗

上面最有爭議的大概就是 r / d 這兩個用法了,舉個例子來說明會比較清楚一點,我們就拿xserver-xfree86吧。

這是按下 "r" 的結果:
http://chuany.net/gallery/album26/C8_3_aptitude_1
游標停在 x-window-system-core這一個package上,在此套件上一行寫著 Depends,這代表什麼呢?這表示 x-window-system-core 是 depends on xserver-xfree86,要安裝 x-window-system-core 的話,就會安裝 xserver-xfree86以符合相依性,但對 xserver-xfree86 這個套件來說,有無安裝 x-window-system-core 並不影響。

如果事先已經安裝了 x-window-system-core,且在這個視窗我們進行移除 xserver-xfree86的話,就會發現 x-window-system-core 會有 "B"(broken)的狀態,見下圖:
http://chuany.net/gallery/album26/C8_3_aptitude_1_B
這是按下 "d" 的結果:
http://chuany.net/gallery/album26/C8_3_aptitude_2
游 標停在 xserver-common 的地方,上兩行寫著 Depends,這又是代表什麼呢?表示說 xserver-xfree86 depends on xserver-common的意思,如果將 xserver-common移除,那 xserver-xfree86就會出現 "B"(Broken),見下圖:
http://chuany.net/gallery/album26/C8_3_aptitude_2_B
以上這些指令與狀態表皆可在aptitude的help中看到。

心得

通常安裝package最怕的就是出現 broken 訊息時,往往只是看到一個 apt-get 的訊息,移除了一個之後,發現又出現下一個,這時,我建議是透過 aptitude,然後利用 r/d 來找出是那個 package 出了問題,會是比較方便且快速的辦法。

別小看 aptitude 這些功能,其實aptitude還可以"downgrade",只要將source.list中加入舊版的資訊,在aptitude中就可以安裝特定的版本,如果遇到 dependency 的麻煩,就善用上面所說的技巧,找出最穩當的方式來操作,相信會比貿然"降級",而發現系統掛掉來的有保障多了。

沒有留言: