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