pacman 管理已安裝的套件記錄和已設定的 Arch 軟體庫。
本機資料庫記錄已安裝的版本、安裝原因、檔案及擁有權;
同步資料庫則描述軟體庫中的套件。為保持這些檢視一致,應在同一個交易中完成重新整理和升級。
檢查本機資料庫 #
使用 -Q 查詢已安裝的套件:
pacman -Qs '^bash$'
pacman -Qi bash
pacman -Ql bash
pacman -Qo /usr/bin/pacman
pacman -Qk-Ql 列出已安裝套件提供的檔案,-Qo 尋找現有路徑的擁有者,-Qk 檢查受追蹤的檔案。pacman -F 則搜尋軟體庫檔案資料庫;先使用 sudo pacman -Fy 填入該資料庫。
套件的安裝原因會影響孤立套件的偵測。應有意檢查或變更單一套件的安裝原因:
pacman -Qi package-name
sudo pacman -D --asexplicit package-name
sudo pacman -D --asdeps package-name安全地同步和升級 #
使用 -Ss 和 -Si 搜尋並檢查已設定的軟體庫。一般系統更新如下:
sudo pacman -Syu-y 會重新整理同步資料庫,-u 會根據同一個軟體庫狀態升級已安裝的系統。不要執行 pacman -Sy package-name 這類部分升級:重新整理後的中繼資料可能要求比目前已安裝系統更新的相依套件。在確認大型交易前,請閱讀 Arch 新聞,並處理設定檔相關指示。
使用 sudo pacman -S package-name 安裝軟體庫中的套件。使用 sudo pacman -U file.pkg.tar.zst 安裝本機建置或已快取的封存檔;pacman 仍會從已設定的軟體庫解析所需的相依套件。
有意地移除套件和孤立套件 #
pacman -R package-name 會移除目標套件。-Rs 也會移除因該目標而變得不再需要的相依套件;-Rns 還會移除保留的備份檔案。接受移除操作前,請檢查建議的移除清單,因為即使 pacman 的相依關係圖已不再需要某些相依套件,遞迴移除仍可能移除另一個本機工作流程仍需要的相依套件。
移除前先列出可能的孤立套件:
pacman -Qdt
pacman -Qtdq只有在檢查清單後才移除其中的名稱。pacman -Qtdq 回傳空結果並不是需要透過未加保護的命令替換來規避的錯誤。
保留復原選項 #
預設快取目錄是 /var/cache/pacman/pkg。保留近期版本;pacman-contrib 中的 paccache 可以在保留指定數量項目的同時清理較舊的項目。使用相容的快取封存檔可以執行受控降級:
sudo pacman -U /var/cache/pacman/pkg/package-old.pkg.tar.zst降級函式庫可能需要使相依於它的套件保持相符。檢查相依性約束並規劃一致的交易,不要直接替換 /usr 下的檔案,因為這會繞過 pacman 的資料庫、掛鉤和擁有權模型。對於中斷或損壞的安裝,請查閱 /var/log/pacman.log,使用 pacman 重新安裝受影響的套件,並在必要時從經過驗證的備份還原檔案。
保持啟用簽章驗證 #
軟體庫和套件簽章可以保護供應鏈。透過 archlinux-keyring、pacman-key、系統時間及有文件記錄的鏡像設定,修復已過期、缺少或已撤銷的信任資訊;不要為了完成更新而停用簽章檢查。簽章錯誤表示存在必須在安裝套件前釐清的問題。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)