1. 程式人生 > >ubuntu 未能滿足的依賴關係?或許你可以用 aptitude 管理你的軟體包

ubuntu 未能滿足的依賴關係?或許你可以用 aptitude 管理你的軟體包

aptitude 與 apt-get 一樣,是 Debian 及其衍生系統中功能極其強大的包管理工具基於大名鼎鼎的APT機制, 整合了 dselect 和 apt-get 的所有功能, 並提供的更多特性,特別是在依賴關係處理上。與 apt-get 不同的是,aptitude在處理依賴問題上更佳一些。舉例來說,aptitude在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為乾淨。

安裝

安裝直接 apt-get 就可以了。

sudo apt-get install aptitude

使用

aptitude 的使用與 apt 類似。

aptitude update                    更新可用的包列表
aptitude upgrade                   升級可用的包
aptitude dist-upgrade              將系統升級到新的發行版
aptitude install pkgname           安裝包
aptitude remove pkgname            刪除包
aptitude purge pkgname             刪除包及其配置檔案
aptitude search string             搜尋包
aptitude show pkgname              顯示包的詳細資訊
aptitude clean                     刪除下載的包檔案
aptitude autoclean                 僅刪除過期的包檔案

另外可直接在終端輸入 aptitude 進入 aptitude 的圖形介面
aptitude

以下為轉載

相信大家也有用aptitude這個方便的工具,最近我發現原來aptitude是可以用來做 dpkg-reconfigure的。首先開啟 aptitude,然後把光棒移到你想重新設定的套件,然後按 “shift+r”,就可以看到跟安裝時設定一樣的畫面啦
介紹一下 aptitude 的用法:
按 ? 可以看有那些功能可用,
—————————————————————————————————————————————————
在進入 aptitude 的第一件事, 先按 u, 將 packages list 給更新,再做其他的步驟。但如果一天之內開 aptitude 好幾次, 也不用每次按 u, 約每天按一次就夠了, 因為 packages list 不會隨時更動, 有些 mirror, 有可能一天才去國外更新一次, 所以我們如果從那裡更新檔案列表, 自然也就一天後才會有更新。 如有出現 Upgradable Packages, 則表示目前系統上已安裝好的 package 中, 有新的版本可以更新, 那當然要給他更新了, 我們假設系統裝的版本是穩定版本stable(woody),由於在 woody 中, 並不會有新的 package 或功能新增,大部份都是安全性的更新。
—————————————————————————————————————————————————
將遊標移到 Upgradable Packages 上, 按 g 即可開始更新。 在更新前可以先看看有那些東東是這次要更新的。 Enter 鍵可切換樹狀結構展開與否。
iu libgnomevfs2-0 2.2.5-2 2.2.5-3 如上這行, 表示這個 package 叫 libgnomevfs2-0, 而下方的視窗則為此 package 的說明, 第一個字母 i(install) 表示這個 package 本來就安裝在系統中了, 第二個字母 u(upgrade) 為現在要做 Upgrade 的動作, 從 2.2.5-2 昇級到 2.2.5-3。
接著按 g 即會切換到另一個視窗, 這個視窗顯示的是所有要更新的 packages, 再按一次 g 即可開始更新。
— New Packages — Upgradable Packages — Installed Packages — Not Installed Packages — Obsolete and Locally Created Packages — Virtual Packages — Tasks * New Packages –> o 此次更新列表後, 有那些 package 是新出現的, 前提是用 testing or unstable 才會有 New Packages。
記得在這一次要結束前, 按 f 或選 menu Actions(按 F10) 選 Forget new packages, 這樣下次進來 aptitude 時才不會又出現同樣的 new packages。
* Upgradable Packages –> o 可昇級旳 packages, 表示目前已安裝在系統中的 package 有新的版本可更新。
* Installed Packages –> o 已經安裝在系統中的 packages, 可對 packages 做刪除等等。
* Not Installed Packages –> o 可以安裝但是未安裝的 packages。
* Obsolete and Locally Created Packages –> o 陳舊的或是自己抓回來安裝的 packages。
* Virtual Packages –> o 虛擬的 packages, 這些是不存在的 packages, 用途很多, 其中一個是為了相容於某些舊的 package, 譬如 A 的版本昇級了, 但是 B 卻要有舊版的 A 才能安裝, 在 B 還沒修正 dependencies 之前, 確保 B 能夠正確的安裝。
* Tasks –> o 大專案的安裝, 通常是 packages 的集合, 選一個 package 就等於選了一串的 packages, 如 chinese-t(Chinese Tradictional), 只要裝了這個 chinese-t, 就等於要打造繁體中文的環境的 packages 都已安裝了, 只要將設定修改後, 即可使用中文環境。
—————————————————————————————————————————————————
熱鍵:
+ : 安裝
- : 移除
_ : 移除 package, 並且將設定檔也移掉(用 - 的話會移除 package 但保留設定檔)
= : 保留 -> 如是 testing or unstable,有可能新的 package 有 bug 或是某個功能拿掉 所以我們不想昇級,只要設成 hold 之後,Debian 就不會去更新此 package 了。
f : 清除 New Packages 的狀態。
[ : 將某一樹狀結構全部展開。
] : 將展開的樹狀結構關掉。
/ : 搜尋某 package
d : 顯示 package 有那些 dependencies(也就是安裝這個 package 之前要先裝那些 packages)
r : 有那些 packages 是 depends on 這個 package
q : 結束 aptitude enter : 顯示 package 的資訊
範例: 3dchess - 3D chess for X11 3 dimensional Chess for X11R6. Three boards, 96 pieces and 26 directions. Priority: optional Section: games Maintainer: Stephen Stafford

[email protected] Compressed size: 31.4k Uncompressed size: 152k Source Package: 3dchess –\ Depends — libc6 (>= 2.3.1-1) — xaw3dg (>= 1.5-6) — xlibs (> 4.1.0) — Packages which depend on 3dchess –\ Versions i 0.8.1-10
1. 3dchess 為名稱
2. package 的說明
3. 優先權為 optional(選擇性), 就是可安裝, 可不安裝, 並不影響系統的正常運作。
4. 屬於那個區段(section)。
5. 維護人員的 e-mail
6. 下載回來的 package 為 .deb 檔的大小
7. 解開後的 package 大小
8. 從那個 source package 來的, 由於 debian 會將一個 source package 給拆成很多個 binary package, 譬如 gftp, 原作者那裡是一個完整的 source package, 但 debian 將之拆成 gftp-common, gftp, gftp-gtk, gftp-text。 gftp : 圖形介面的 ftp client, 用 glib 寫成的
gftp-gtk : 圖形介面的 ftp client, 用 gtk 寫成的
gftp-text : 文字介面的 ftp client gftp-common : 上面三個 package 共用的部份這樣的用意顯而易見, 就是我如果只想要 console 模式的 gftp, 但是如果全部包在一起的話, 全部安裝比較佔硬碟空間, 但是最重要的是, gftp 又要裝 glib 和 gtk, 假設你的機器為 firewall, 完全沒有裝 X, 現在為了要裝個 console 下的 gftp, 得先將 X Window 給裝起來, 還有 gtk等等, 這樣太不經濟了, 所以 debian 在這方面做的還不錯。回到正題, 所以上面四個 packages 的 Source Package 都是 gftp。
1. –\ Depends : 安裝本 package 必須先安裝那些 packages 2
. — Packages which depend on 3dchess : 要安裝那些 packages 之前必須先安裝本 package
3. 版本號碼 順便介紹一個踩地雷遊戲, 在下載 package 的過程中可用來打發時間 ^_^。 按 F10 到 menu 中選 Actions -> Play Minesweeper,按 q 可回到 aptitude 中。