「パッケージのダウングレード」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎FAQ: 削除)
(同期 & TranslationStatus)
 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
 
[[Category:パッケージ管理]]
 
[[Category:パッケージ管理]]
[[cs:Downgrading packages]]
 
 
[[de:Ältere Paketversion installieren (Downgrade)]]
 
[[de:Ältere Paketversion installieren (Downgrade)]]
[[es:Downgrading packages]]
 
 
[[en:Downgrading packages]]
 
[[en:Downgrading packages]]
  +
[[es:Downgrading packages]]
 
[[fa:دانگرید]]
 
[[fa:دانگرید]]
[[fr:Downgrade]]
+
[[fr:Downgrading packages]]
[[it:Downgrading packages]]
 
 
[[pt:Downgrading packages]]
 
[[pt:Downgrading packages]]
[[ru:Downgrading packages]]
 
[[sk:Downgrading packages]]
 
 
[[zh-hans:Downgrading packages]]
 
[[zh-hans:Downgrading packages]]
 
{{Related articles start}}
 
{{Related articles start}}
17行目: 13行目:
 
{{Related|Arch Linux Archive}}
 
{{Related|Arch Linux Archive}}
 
{{Related articles end}}
 
{{Related articles end}}
  +
パッケージをダウングレードする前に、なぜそうするのか考えて下さい。バグが理由ならば、[https://bugs.archlinux.org/ バグトラッカー]で既存のタスクを探してください。そこに無いのであれば、新しいタスクを追加してください。バグを修正するか、少なくとも、起こりうる問題を他のユーザに警告すると良いでしょう。
 
ここではパッケージを前のバージョンにダウングレードする方法を記述します。パッケージのダウングレードは普段は推奨されていませんが、最新パッケージにバグがあるときに必要になります。
 
 
ダウングレードする前に、なぜそうするのか考えて下さい。バグが理由ならば、Arch やそのプログラムの開発者にバグトラッカーでバグを報告するのに少し時間をさくことを考えていただけるでしょうか。Arch はローリングリリースなので、新しいパッケージにひそんだバグに出くわす可能性がいつでもあります。
 
 
私達やアップストリームの開発者は利用者からの報告にいつも感謝しています。ほんのすこしの情報でも、テストやデバッグに必要な時間を少なくし、ソフトウェアを安定させるのに役だっているのです。
 
   
 
{{Warning|
 
{{Warning|
* 一つのパッケージをダウングレードするために、依存パッケージも一緒にダウングレードする必要がある場合があります。ダウングレードするべきパッケージの数が多い場合、スナップショットを使うことを検討してください。[[Arch Linux Archive#特定の日時まで全てのパッケージをリストアする方法]] を参照してください。
+
* 場合によっては、一つのパッケージをダウングレードするために、依存パッケージも一緒にダウングレードする必要があります。ダウングレードするべきパッケージの数が多い場合、スナップショットを使うことを検討してください。[[Arch Linux Archive#特定の日時まで全てのパッケージをリストアする方法]] を参照してください。
 
* 設定ファイルやスクリプトの変更には注意を払ってください。今の所、pacman は、セーフガードをバイパスしない限り、これらの変更を処理してくれます。
 
* 設定ファイルやスクリプトの変更には注意を払ってください。今の所、pacman は、セーフガードをバイパスしない限り、これらの変更を処理してくれます。
* ダウングレードが soname の変更を伴う場合、すべての依存パッケージもダウングレード、または[[FAQ#もし、システム全体のアップグレード(pacman -Syu)で共用ライブラリがアップデートされたのにそれに依存するアプリケーションがアップデートされなかったらどうなりますか?|再ビルド]]する必要がある場合があります。
+
* ダウングレードが soname の変更を伴う場合、場合によっては、すべての依存パッケージもダウングレード、または[[FAQ#もし、システム全体のアップグレード(pacman -Syu)で共用ライブラリがアップデートされたのにそれに依存するアプリケーションがアップデートされなかったらどうなりますか?|再ビルド]]する必要があります。
 
}}
 
}}
 
== 理由 ==
 
ダウングレードするということは現在のパッケージをアンインストールして前のバージョンをインストールすることです。その前のバージョンというのが一つ前のバージョン(パッケージのバージョンは一つ前です)なのか、かなり前のバージョンなのかは分かりません。
 
 
ダウングレードする理由で(数ある中でも)挙げられるのは: 現在のバージョンにバグがある・期待どおりに働かない・実験的な理由で、などです。ほとんどの場合、新しいバージョンのリリースを待つより前のバージョンに戻したほうが問題が少ないと判断されます。
 
 
あるパッケージのダウングレードをすると、他のパッケージのダウングレードの必要が生じることもあります。実験的なパッケージを大量にインストールしたり、設定をいじくりまわした人にとっては、ダウングレードを試みるよりもシステムの再インストールをしたほうが好ましいかもしれません。
 
   
 
== パッケージを以前のバージョンに戻す ==
 
== パッケージを以前のバージョンに戻す ==
57行目: 41行目:
 
# 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
 
# 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
   
{{Tip|カーネルのアップデート後に起動できなくなった場合、システムに [[chroot]] することでカーネルをダウングレードできます。Arch Linux の [[USB インストールメディア]]を使って起動し、システムがインストールされているパーティションを {{ic|/mnt}} にマウントしてください。{{ic|/boot}} や {{ic|/var}} が別のパーティションにある場合、それらも {{ic|/mnt}} へマウントしてください(例: {{ic|mount /dev/sdc3 /mnt/boot}})。そして、システムに ''chroot'' します:
+
{{Tip|カーネルのアップデート後に起動できなくなった場合、システムに [[chroot]] することでカーネルをダウングレードできます。Arch Linux の [[USB インストールメディア]]を使って起動し、システムがインストールされているパーティションを {{ic|/mnt}} にマウントしてください。{{ic|/boot}} や {{ic|/var}} が別のパーティションにある場合、それらも {{ic|/mnt}} へマウントしてください(例: {{ic|mount /dev/sdc3 /mnt/boot}})。そして、システムに ''chroot'' します: {{bc|# arch-chroot /mnt}}
 
{{bc|# arch-chroot /mnt}}
 
 
 
これで、''pacman'' のキャッシュディレクトリに移動して、上記のコマンドを使用して Linux のパッケージをダウングレードできます。それが済んだら、({{ic|exit}} を実行して) chroot を終了して、再起動してください。}}
 
これで、''pacman'' のキャッシュディレクトリに移動して、上記のコマンドを使用して Linux のパッケージをダウングレードできます。それが済んだら、({{ic|exit}} を実行して) chroot を終了して、再起動してください。}}
   
71行目: 52行目:
 
ダウングレードしたいパッケージが利用できない場合、正しい [[PKGBUILD]] を見つけて [[makepkg]] を使って再ビルドしてください。
 
ダウングレードしたいパッケージが利用できない場合、正しい [[PKGBUILD]] を見つけて [[makepkg]] を使って再ビルドしてください。
   
[[公式リポジトリ]]にあるパッケージは、[[ABS]] を使って PKGBUILD を取得し、ソフトウェアのバージョンを編集してください。もしくは https://www.archlinux.jp/packages/ にアクセスしてダウングレードしたいパッケージをさがしてください。見つけたら、「変更履歴」をクリックして、必要なバージョンの場所をつきとめて、ディレクトリにあるファイルをダウンロードして makepkg でビルドしてください。
+
[[公式リポジトリ]]にあるパッケージは、[[ABS]] を使って PKGBUILD を取得し、ソフトウェアのバージョンを編集してください。もしくは [https://archlinux.org/packages Packages] のウェブサイトにアクセスしてダウングレードしたいパッケージをさがしてください。見つけたら、「変更履歴」をクリックして、必要なバージョンの場所をつきとめて、ディレクトリにあるファイルをダウンロードして makepkg でビルドしてください。
   
 
[[Arch Build System#旧リビジョンのパッケージをチェックアウト]]も参照。
 
[[Arch Build System#旧リビジョンのパッケージをチェックアウト]]も参照。
79行目: 60行目:
 
=== 自動化する ===
 
=== 自動化する ===
   
* {{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 リポジトリの無効化]] を見てください。
  +
  +
{{TranslationStatus|Downgrading packages|2022-08-10|733702}}

2022年8月10日 (水) 20:00時点における最新版

関連記事

パッケージをダウングレードする前に、なぜそうするのか考えて下さい。バグが理由ならば、バグトラッカーで既存のタスクを探してください。そこに無いのであれば、新しいタスクを追加してください。バグを修正するか、少なくとも、起こりうる問題を他のユーザに警告すると良いでしょう。

警告:
  • 場合によっては、一つのパッケージをダウングレードするために、依存パッケージも一緒にダウングレードする必要があります。ダウングレードするべきパッケージの数が多い場合、スナップショットを使うことを検討してください。Arch Linux Archive#特定の日時まで全てのパッケージをリストアする方法 を参照してください。
  • 設定ファイルやスクリプトの変更には注意を払ってください。今の所、pacman は、セーフガードをバイパスしない限り、これらの変更を処理してくれます。
  • ダウングレードが soname の変更を伴う場合、場合によっては、すべての依存パッケージもダウングレード、または再ビルドする必要があります。

パッケージを以前のバージョンに戻す

pacman のキャッシュを使う

以前にパッケージをインストールしていて、該当する pacman のキャッシュを削除していない場合、/var/cache/pacman/pkg/ から以前のバージョンをインストールしてください。

この方法では、現在のパッケージを削除して古いバージョンをインストールします。依存関係の変更は処理されますが、pacman はバージョンの衝突を処理しません。ダウングレードしたいパッケージと一緒にライブラリや他のパッケージもダウングレードする必要がある場合、そのパッケージも手動でダウングレードしなければならないことに気をつけてください。

# pacman -U file:///var/cache/pacman/pkg/package-old_version.pkg.tar.type

type の部分は、古いパッケージビルドに対しては xz2020 に行われた変更に従っているパッケージに対しては zst となることに注意してください。

一度パッケージを古いバージョンに戻したら、アップデートされたパッケージの問題が解決されるまで、そのパッケージを pacman.confIgnorePkg セクションに一時的に追加してください。

カーネルのダウングレード

新しいカーネルで問題が発生した場合、pacman のキャッシュを使って Linux のパッケージを最後に動作したバージョンにダウングレードできます。/var/cache/pacman/pkg まで移動して、パッケージをダウングレードします。少なくとも linuxlinux-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
ヒント: カーネルのアップデート後に起動できなくなった場合、システムに chroot することでカーネルをダウングレードできます。Arch Linux の USB インストールメディアを使って起動し、システムがインストールされているパーティションを /mnt にマウントしてください。/boot/var が別のパーティションにある場合、それらも /mnt へマウントしてください(例: mount /dev/sdc3 /mnt/boot)。そして、システムに chroot します:
# arch-chroot /mnt
これで、pacman のキャッシュディレクトリに移動して、上記のコマンドを使用して Linux のパッケージをダウングレードできます。それが済んだら、(exit を実行して) chroot を終了して、再起動してください。

Arch Linux Archive

Arch Linux Archive公式リポジトリの毎日のスナップショットです。以前のバージョンのパッケージをインストールしたり、特定の日時までシステムを復元したりするのに使用できます。

パッケージの再ビルド

ダウングレードしたいパッケージが利用できない場合、正しい PKGBUILD を見つけて makepkg を使って再ビルドしてください。

公式リポジトリにあるパッケージは、ABS を使って PKGBUILD を取得し、ソフトウェアのバージョンを編集してください。もしくは Packages のウェブサイトにアクセスしてダウングレードしたいパッケージをさがしてください。見つけたら、「変更履歴」をクリックして、必要なバージョンの場所をつきとめて、ディレクトリにあるファイルをダウンロードして makepkg でビルドしてください。

Arch Build System#旧リビジョンのパッケージをチェックアウトも参照。

古い AUR パッケージは、AUR パッケージの Git リポジトリにある古いコミットをチェックアウトすることでビルドできます。2015 年以前の AUR3 PKGBUILD に関しては Arch User Repository#AUR3 パッケージの Git リポジトリを見てください。

自動化する

  • downgrade — 一つ(あるいは複数)のパッケージをダウングレードする Bash スクリプトです。pacman のキャッシュや Arch Rollback Machine を使用します。詳細は downgrade(8) を見てください。
https://github.com/pbrisbin/downgrade || downgradeAUR

[testing] から戻る

公式リポジトリ#testing リポジトリの無効化 を見てください。

翻訳ステータス: このページは en:Downgrading packages の翻訳バージョンです。最後の翻訳日は 2022-08-10 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。