ubuntu(debian)下使用 apt-get 或 synaptic(新立得) 安裝軟體是件很輕鬆的事情. 除了簡單的安裝軟體, apt工具集還有許多特別情況下的用法.
任何時候請記住 man 手冊是良師.
1. 使用 aptitude 代替 apt-get .
aptitude 雖然沒有 apt-get 的"超級牛力", 但功能卻比 apt-get 更強大
首先, 像 apt-get 一樣, 可以安裝軟體
aptitude install pack-foo
aptitude 解決依賴關係比 apt-get 更智慧. 有時用 apt-get 安裝軟體時會出現 "XXX 需要 XXXX, 但 XXX 已安裝" 這類的錯誤. 這通常是因為某些套裝軟體過新造成的. 此時使用 aptitude, aptitude 會發現問題並給出幾個解決方案, 我們只需接受符合心意的方案就可以了.
aptitude 的另外一個優點是會自動記錄那些包是"自動安裝"(即因依賴關係而安裝的), 如果依賴"自動安裝"包的包都沒被安裝, 該"自動安裝"包(此時已無用)就會自動刪除.
使用這兩個命令可以控制包的"自動安裝"屬性
aptitude markauto pack-foo #標記成"自動安裝"
aptitude unmarkauto pack-foo #標記成"手動安裝"
刪除軟體時使用 markauto 代替 remove, 就可以避免誤刪重要的包了.
當然, 新版的新立得和 apt-get 也有相似功能, 但貌似不與 aptitude 使用同一個資料庫, 所以建議只使用 aptitude 管理套裝軟體.
aptitude 還提供了更靈活的控制套裝軟體版本的方式
hold&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp; - 將套裝軟體置於保持狀態
unhold - 取消對一個套裝軟體的保持命令
forbid-version - 禁止 aptitude 升級到某一特定版本的套裝軟體。
以前幾周的 libcairo 事件作例子:
sudo aptitude install libcairo2=1.4.10-1ubuntu4 # 強制降級
sudo aptitude forbid-version libcairo2=1.4.10-1ubuntu4.1 # 封掉出錯的版本
sudo aptitude markauto libcairo2 #恢復auto屬性
參看 man 手冊裡對 install 操作的描述, 有更多控制方法.
aptitude reinstall 重新安裝套裝軟體, 相當於 apt-get --reinstall install
aptitude purge 徹底刪除套裝軟體, 相當於 apt-get --purge remove
一個小技巧
aptitude purge `dpkg -l|grep '^rc'|awk '{print $2}'`
aptitude 還集合了多個 apt 工具的功能
search - 按名稱 和/或 運算式搜索套裝軟體
show - 顯示一個套裝軟體的詳細資訊
download - 下載套裝軟體的 .deb 檔