降級軟體包 - Arch Linux 中文维基

跳至內容

# 降級軟體包

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Downgrading packages，最近一次同步於 2020-09-12，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Arch Build System
- pacman
- Arch Linux Archive

在決定降級之前，請小心考慮。如果是因為現有包有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)。

  https://github.com/pbrisbin/downgrade || downgradeAUR

## 從[testing]中返回

參見 Official repositories#Disabling testing repositories。

分類：​

- 包管理

降級軟體包
新增話題