降級軟體包
在決定降級之前,請小心考慮。如果是因為現有包有Bug,請在Bug追蹤系統搜索現有的Bug報告。如果沒有,請花上幾分鐘幫忙把它報告給Arch的Bug追蹤系統或軟體包的項目地址,或者在論壇中警告其他可能遇到類似問題的用戶。
- 降級某個軟體包可能需要降級相應的依賴包.如果依賴包數量巨大,參見Arch Linux Archive#How to restore all packages to a specific date.
- 在修改配置文件和腳本時請小心.只要我們不繞過pacman的安全措施,它將為我們處理這些問題.
- 如果軟體包降級會引進 soname 變更,所有依賴包可能都需要降級或重新編譯.
如何降級軟體包[編輯 | 編輯原始碼]
使用pacman的臨時文件[編輯 | 編輯原始碼]
如果一個新包剛剛被安裝並且沒有刪除pacman cache,你可以在/var/cache/pacman/pkg/
中找到較早版本.
安裝替換現有的版本.pacman會處理依賴包但不會處理依賴庫的版本衝突。如果一個其依賴庫因該包降級需要降級,你需要手動降級這些包。
# pacman -U /var/cache/pacman/pkg/package-old_version.pkg.tar.type
對老的軟體包,type
應該是 xz
,遵循 2020 變更的新軟體包,type
應該是 zst
。
當成功降級該包以後,請暫時將其加入pacman.conf
的IgnorePkg section,直到您的問題被解決。
降級內核[編輯 | 編輯原始碼]
新內核出問題時,可以通過使用 pacman 緩存降級內核。在/var/cache/pacman/pkg
尋找舊版安裝包。必須降級的有linux包, linux-headers包和任何內核模塊。舉例來說:
# pacman -U linux-4.15.8-1-x86_64.pkg.tar.xz linux-headers-4.15.8-1-x86_64.pkg.tar.xz virtualbox-host-modules-arch-5.2.8-4-x86_64.pkg.tar.xz
退出並重啟。
如果您在升級內核後無法啟動,您可以通過使用 live CD 來降級內核。方法類似Arch Linux的安裝進程。啟動後在/mnt
掛載你的根目錄文件系統,別忘了掛載其他分區如/boot
或/var
等等。(例子 mount /dev/sdc3 /mnt/boot
)。然後chroot進入系統。
Arch Linux Archive[編輯 | 編輯原始碼]
Arch Linux Archive是official repositories的日更快照。
ALA能被用來降級包或者還原整個系統到過去版本。
手動編譯[編輯 | 編輯原始碼]
如果找不到編譯好的軟體包,就需要自己找到 PKGBUILD 並通過 makepkg 編譯。
官方軟體倉庫中的 PKGBUILD 可以通過 ABS 獲取並修改軟體版本。或者訪問 軟體包頁面搜索你需要的降級的軟體包,然後點 "查看修改" 連結,選擇「查看日誌「。找到需要的版本並通過 Tree 視圖下載 .tar.gz
快照。
參閱 Arch Build System#Checkout an older version of a package.
老的 AUR 軟體包可以從 AUR 軟體包 git 倉庫提出舊版本。如果是 2015 AUR3 之前的 PKGBUILD,請參閱 Arch User Repository#Git repositories for AUR3 packages.
自動化[編輯 | 編輯原始碼]
downgrade — 基於Bash使用本地緩存和Arch Rollback Machine。詳見downgrade(8)。