「パッケージのダウングレード」の版間の差分
(→FAQ: 削除) |
(→[testing] から戻す: 追加) |
||
81行目: | 81行目: | ||
* {{App|downgrader|libalpm を使って動作するツールで、pacman のログをサポートし、[[Arch Linux Archive]] やローカルのキャッシュ、[http://repo-arm.archlinuxcn.org ARM] を使用してパッケージをダウングレードします。|https://github.com/DimaSmirnov/Archlinux-downgrader|{{AUR|downgrader-git}}}} |
* {{App|downgrader|libalpm を使って動作するツールで、pacman のログをサポートし、[[Arch Linux Archive]] やローカルのキャッシュ、[http://repo-arm.archlinuxcn.org ARM] を使用してパッケージをダウングレードします。|https://github.com/DimaSmirnov/Archlinux-downgrader|{{AUR|downgrader-git}}}} |
||
* {{App|downgrade|一つ(あるいは複数)のパッケージをダウングレードする Bash スクリプトです。pacman のキャッシュや [[Arch Rollback Machine]] を使用します。詳細は {{man|8|downgrade|url=}} を見てください。|https://github.com/pbrisbin/downgrade|{{AUR|downgrade}}}} |
* {{App|downgrade|一つ(あるいは複数)のパッケージをダウングレードする Bash スクリプトです。pacman のキャッシュや [[Arch Rollback Machine]] を使用します。詳細は {{man|8|downgrade|url=}} を見てください。|https://github.com/pbrisbin/downgrade|{{AUR|downgrade}}}} |
||
+ | |||
+ | == [testing] から戻る == |
||
+ | |||
+ | [[公式リポジトリ#testing リポジトリの無効化]] を見てください。 |
2022年5月8日 (日) 20:45時点における版
ここではパッケージを前のバージョンにダウングレードする方法を記述します。パッケージのダウングレードは普段は推奨されていませんが、最新パッケージにバグがあるときに必要になります。
ダウングレードする前に、なぜそうするのか考えて下さい。バグが理由ならば、Arch やそのプログラムの開発者にバグトラッカーでバグを報告するのに少し時間をさくことを考えていただけるでしょうか。Arch はローリングリリースなので、新しいパッケージにひそんだバグに出くわす可能性がいつでもあります。
私達やアップストリームの開発者は利用者からの報告にいつも感謝しています。ほんのすこしの情報でも、テストやデバッグに必要な時間を少なくし、ソフトウェアを安定させるのに役だっているのです。
目次
理由
ダウングレードするということは現在のパッケージをアンインストールして前のバージョンをインストールすることです。その前のバージョンというのが一つ前のバージョン(パッケージのバージョンは一つ前です)なのか、かなり前のバージョンなのかは分かりません。
ダウングレードする理由で(数ある中でも)挙げられるのは: 現在のバージョンにバグがある・期待どおりに働かない・実験的な理由で、などです。ほとんどの場合、新しいバージョンのリリースを待つより前のバージョンに戻したほうが問題が少ないと判断されます。
あるパッケージのダウングレードをすると、他のパッケージのダウングレードの必要が生じることもあります。実験的なパッケージを大量にインストールしたり、設定をいじくりまわした人にとっては、ダウングレードを試みるよりもシステムの再インストールをしたほうが好ましいかもしれません。
パッケージを以前のバージョンに戻す
pacman のキャッシュを使う
以前にパッケージをインストールしていて、該当する pacman のキャッシュを削除していない場合、/var/cache/pacman/pkg/
から以前のバージョンをインストールしてください。
この方法では、現在のパッケージを削除して古いバージョンをインストールします。依存関係の変更は処理されますが、pacman はバージョンの衝突を処理しません。ダウングレードしたいパッケージと一緒にライブラリや他のパッケージもダウングレードする必要がある場合、そのパッケージも手動でダウングレードしなければならないことに気をつけてください。
# pacman -U file:///var/cache/pacman/pkg/package-old_version.pkg.tar.type
type
の部分は、古いパッケージビルドに対しては xz
、2020 に行われた変更に従っているパッケージに対しては zst
となることに注意してください。
一度パッケージを古いバージョンに戻したら、アップデートされたパッケージの問題が解決されるまで、そのパッケージを pacman.conf
の IgnorePkg セクションに一時的に追加してください。
カーネルのダウングレード
新しいカーネルで問題が発生した場合、pacman のキャッシュを使って Linux のパッケージを最後に動作したバージョンにダウングレードできます。/var/cache/pacman/pkg
まで移動して、パッケージをダウングレードします。少なくとも linux と linux-headers とカーネルモジュールをダウングレードしてください。例:
# pacman -U file://linux-4.15.8-1-x86_64.pkg.tar.xz file://linux-headers-4.15.8-1-x86_64.pkg.tar.xz file://virtualbox-host-modules-arch-5.2.8-4-x86_64.pkg.tar.xz
Arch Linux Archive
Arch Linux Archive は公式リポジトリの毎日のスナップショットです。以前のバージョンのパッケージをインストールしたり、特定の日時までシステムを復元したりするのに使用できます。
パッケージの再ビルド
ダウングレードしたいパッケージが利用できない場合、正しい PKGBUILD を見つけて makepkg を使って再ビルドしてください。
公式リポジトリにあるパッケージは、ABS を使って PKGBUILD を取得し、ソフトウェアのバージョンを編集してください。もしくは https://www.archlinux.jp/packages/ にアクセスしてダウングレードしたいパッケージをさがしてください。見つけたら、「変更履歴」をクリックして、必要なバージョンの場所をつきとめて、ディレクトリにあるファイルをダウンロードして makepkg でビルドしてください。
Arch Build System#旧リビジョンのパッケージをチェックアウトも参照。
古い AUR パッケージは、AUR パッケージの Git リポジトリにある古いコミットをチェックアウトすることでビルドできます。2015 年以前の AUR3 PKGBUILD に関しては Arch User Repository#AUR3 パッケージの Git リポジトリを見てください。
自動化する
- downgrader — libalpm を使って動作するツールで、pacman のログをサポートし、Arch Linux Archive やローカルのキャッシュ、ARM を使用してパッケージをダウングレードします。
- downgrade — 一つ(あるいは複数)のパッケージをダウングレードする Bash スクリプトです。pacman のキャッシュや Arch Rollback Machine を使用します。詳細は downgrade(8) を見てください。
[testing] から戻る
公式リポジトリ#testing リポジトリの無効化 を見てください。