aptitude是Debian系統(tǒng)中一個非常實用的軟件包管理工具,它提供了一個交互式的文本界面來搜索、安裝、升級和刪除軟件包等操作。在本篇教程中,列出了一些其它的軟件包管理操作,這些操作對于 aptitude 過于高級或缺失所需的功能。
一、查找軟件包
可以根據(jù) aptitude 這個包管理工具中的軟件包描述或者是任務(wù)面板下的列表信息,來查找所需要的軟件包。
二、列出軟件包
下面的命令列出了通過正則表達(dá)式匹配軟件包名稱來列出軟件包。
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
這種方式查找精確的軟件包名稱很方便。
三、匹配瀏覽
在”新扁平軟件包列表” 中使用 “l” 提示查看,正則表達(dá)式 “~dipv6” 可以限制性地匹配軟件描述,并交互式地展示信息。
四、清理已刪除軟件包
能清除所有已移除軟件包的剩余配置文件。
檢查以下命令的結(jié)果。
# aptitude search '~c'
如果確認(rèn)所列出的軟件包應(yīng)當(dāng)被完整刪除,請運行以下命令。
# aptitude purge '~c'
可能想要在交互模式中做類似的操作進(jìn)行細(xì)粒度的控制。
在 “新軟件包視圖” 使用 “l” 提示并輸入正則匹配式 “~c” ,這將僅匹配軟件包,比如, “移除但不清空配置” 。所有符合匹配的軟件包可以在頂層標(biāo)題上使用 “[” 顯示。
當(dāng)在頂層標(biāo)題如 “未安裝的包” 中輸入 “_”,當(dāng)前標(biāo)題下的軟件包只有匹配正則式才會被清除。還可以使用“=” 來交互式地排除軟件包以避免刪除它們。這種技術(shù)方便易用且適用于許多其他的命令鍵。
五、調(diào)整自動/手動安裝狀態(tài)
下面是調(diào)整軟件包的自動/手動安裝狀態(tài)的方法(在使用非 aptitude 軟件包管理器之后)。
1、用 root 以交互模式運行 aptitude。
2、用 “u” 命令更新可用的軟件包列表,”U” 命令標(biāo)記所有可升級的軟件包以執(zhí)行升級,”f” 命令清除新軟件包列表,”g” 命令執(zhí)行所有可升級的軟件包以執(zhí)行升級。
3、按下 “l(fā)”,并輸入 “~i(~R~i|~Rrecommends:~i)” 來限制軟件包的顯示,按下 “M” 將 “已安裝軟件包” 的狀態(tài)改為自動安裝。
4、按下 “l(fā)”,并輸入 “~prequired|~pimportant|~pstandard|~E” 來限制軟件包的顯示,按下 “m” 將 “已安裝軟件包” 的狀態(tài)改為手動安裝。
5、按下 “l(fā)”,并輸入 “~i!~M” 來限制軟件包的顯示,在 “已安裝軟件包” 上按下 “[” 來陳列無用的軟件包,按下 “-” 將它們移除。
6、按下 “l(fā)”,并輸入 “~i” 來限制軟件包的顯示,之后在 “軟件集” 上按下 “m” 將那些軟件包標(biāo)記為手動安裝。
7、退出 aptitude。
8、用 root 用戶執(zhí)行 “apt-get -s autoremove|less” 命令,來查看有那些軟件包是不再需要的。
9、在交互模式下重啟 aptitude 程序,用 “m” 命令標(biāo)記所需要的軟件包。
10、用 root 用戶重新執(zhí)行 “apt-get -s autoremove|less” 這個命令來復(fù)查移除的包中是不是只含有自己所希望移除的軟件包。
11、用 root 用戶執(zhí)行 “apt-get autoremove|less” 命令來自動移除不再需要的軟件包。
在所需要執(zhí)行的 “Tasks” 上,運行 “m” 命令是一個可選的操作,目的就是為了防止大量軟件包被卸載的情況出現(xiàn)。
六、全面的系統(tǒng)升級
當(dāng)遷移到新的發(fā)行版的時候,雖然正如下面所描述的那樣,Debian 是可升級的,但是還是應(yīng)該考慮純凈的安裝新的系統(tǒng)。這給了機會去移除廢棄的軟件包同時還可以接觸到最新軟件包的完美集合體。當(dāng)然,在做遷移之前,也應(yīng)該對系統(tǒng)做完整的備份,并把它移到安全的地方去?!拔摇币步ㄗh用不同的分區(qū)做另外一個啟動項,來實現(xiàn)平穩(wěn)的升級。
可以通過改變 源列表 的內(nèi)容使之指向新的發(fā)行版所在地址的方法來進(jìn)行系統(tǒng)的全面升級,然后運行 “apt update; apt dist-upgrade” 命令。
在 bookworm-作為-stable 發(fā)布循環(huán)中, 從 stable 升級到 testing 或者 unstable,應(yīng)該用 “trixie” 或者 “sid” 替換源列表 文件里的 “bookworm”示例。
事實上,由于一些軟件包版本變遷的問題,可能會遇到一些困難,主要是由于軟件包的依賴問題。升級之后的差異越大,越有可能遇到麻煩。在新版本發(fā)行后,系統(tǒng)從舊的 stable 過渡到新的 stable,可以查看 Release Notes 然后按照里面的步驟去做,來盡可能的減少麻煩。
在它正式發(fā)布之前,決定要從先前的 stable 遷移到將要發(fā)布的 testing,這里沒有 Release Notes 可以幫到。 在前一個 stable 發(fā)布以后, stable 發(fā)行版跟將要發(fā)布的 testing 發(fā)行版之間的差異可能變得相當(dāng)大同時也使得升級系統(tǒng)變得更加的復(fù)雜。
在全面升級系統(tǒng)的時候,應(yīng)該謹(jǐn)慎的操作,同時也應(yīng)該從郵件列表中獲取最新的資料然后根據(jù)常識作出正確的判斷。
1、查看先前的“發(fā)行說明”。
2、備份整個系統(tǒng)(尤其是數(shù)據(jù)和配置信息)。
3、當(dāng) bootloader 壞了的時候,手邊應(yīng)該有可以引導(dǎo)電腦啟動的存儲介質(zhì)。
4、事先通知系統(tǒng)上的用戶。
5、用 script(1) 記錄升級的過程。
6、用 “unmarkauto” 命令來保留想要的軟件包,例如 “aptitude unmarkauto vim” 這個命令是用來防止移除 vim 這個軟件的。
7、為了減少軟件包之間可能會發(fā)生的沖突,應(yīng)該盡量減少要安裝的軟件包的數(shù)目,例如,移除桌面環(huán)境這個軟件包。
8、移除 “/etc/apt/preferences” 文件(禁用apt-pinning)。
9、試著一步步的升級: oldstable → stable → testing → unstable.
10、升級 源列表 文件,使其指向新的檔案庫然后運行 “aptitude update” 命令。
11、可選的安裝選項,首先是新的 core packages,例如 “aptitude install perl”。
12、運行 “apt-get -s dist-upgrade” 命令來評估升級造成的影響。
13、最后運行 “apt-get dist-upgrade” 命令。
注意:
- 在 stable 版本升級的時候,跳過主要的 Debian 發(fā)行版是不明智的。
- GCC、 Linux 內(nèi)核、 initrd-tools、 Glibc、 Perl、 APT 工具鏈等等,有一些關(guān)于系統(tǒng)全面升級的重要注意事項。