ウェブサイト検索

Arch Linuxでパッケージの更新を防ぐ方法


最新の未テスト版にパッケージをアップグレードしたくない場合は、次回のArch Linuxシステムアップグレードでそれを無視することができます。方法は以下の通りです。

あなたのArchマシンのシステムアップデート後にパッケージに不具合が発生していますか?もしかしたら、最新のLinuxカーネルをインストールしたけれども、その後コンピュータが起動しないのかもしれません。理由は何であれ、安定したパッケージが最新の不安定版にアップグレードされるのを防ぐのは常に良い考えです。

ArchベースのディストリビューションのデフォルトのパッケージマネージャーであるPacmanは、pacman.confファイルを編集することでパッケージのアップグレードを無視できます。この記事では、Arch Linuxで特定のパッケージのアップグレードを恒久的および一時的に防ぐ方法について説明します。

なぜArch Linuxでパッケージのアップグレードを防ぐのか?

Arch Linuxはローリングリリースディストリビューションであり、これはパッケージ開発者が新しい更新をリリースするたびに、すぐに新しい更新がリリースされることを意味しています。これにより、開発者はパッケージをテストする時間が少なくなるため、コード内のバグやその他の問題の可能性が高まります。

特定のパッケージバージョンがテストされており、壊れる可能性が低いことを知っている場合、それがアップグレードされないようにすることができます。これにより、テスト済みのパッケージの安定性を望む期間だけ享受し、必要に応じていつでも更新する選択肢を持つことができます。

特定のパッケージをアップグレードした後に、システムに問題が発生することもあります。そのような場合は、以前の安定したバージョンにダウングレードし、Pacmanを使用してさらなるアップグレードを防ぐことが良いでしょう。

パッケージの更新を無視する方法

Arch Linuxでパッケージのアップグレードを防ぐためには、pacman.confというファイルを編集します。これは、Arch LinuxのパッケージマネージャーであるPacmanの主要な設定ファイルです。

お好きなLinuxテキストエディタを使ってpacman.confファイルを開きます。

sudo vim /etc/pacman.conf

下にスクロールして、「PacmanはIgnorePkgにリストされたパッケージとIgnoreGroupのメンバーをアップグレードしない。」というコメントを見つけてください。

その下の行のコメントを外し、=記号の後にアップグレードしたくないパッケージを追加してください。

IgnorePkg = nano

複数のパッケージを追加するには、それらをリストし、連続する2つのパッケージをスペースで区切ってください。

IgnorePkg = nano vim linux

前述のコマンドは、nano、vim、および現在のLinuxカーネルのさらなるアップグレードを防ぎます。ファイルの編集が完了したら、Vimを保存して終了してください。

無視されているパッケージを手動でアップグレードしようとすると(pacman -S パッケージ名を使用)、PacmanはそのパッケージがIgnorePkgの一部であることを通知し、アップグレードしてもよいか尋ねます。その後、望む場合はIgnorePkgの声明を上書きすることができます。

全体のパッケージグループのアップグレードを無視するためには、pacman.confファイルにIgnoreGroupステートメントを追加します。

IgnoreGroup = kde-applications

不安定なバージョンのパッケージが修正されたら、IgnorePkgとIgnoreGroupステートメントからパッケージ名を削除することで、アップグレード制限を解除することができます。

システムアップグレードからパッケージを一時的に除外する

特定のパッケージのアップグレードを永久に禁止することは、いくつかのユーザーにとって最適な解決策ではないかもしれません。パッケージのアップグレードを一度だけ無視したい場合は、pacmanコマンドで--ignoreフラグを使用してください。

例えば、システムアップグレード中にLinuxカーネルの更新を防ぐためには:

sudo pacman -Syyu --ignore=linux

複数のパッケージのアップグレードを無視するために、カンマ区切りのパッケージリストを指定してください。

sudo pacman -Syyu --ignore=linux,vim,nano

同様に、--ignoregroupフラグを使用して、特定のパッケージグループのアップグレードを無視することもできます。

sudo pacman -Syyu --ignoregroup=kde-applications

パッケージを更新するには、--ignore および --ignoregroup フラグなしでコマンドを再度実行してください。

Linuxはあなたのシステムを完全に制御することができます。

Linuxでは、細かい制御を提供する属性があちこちに散らばっているのを見かけることが期待できます。特定のパッケージのアップグレードを無視したり、パッケージをダウングレードしたり、自分自身のパッケージをArchユーザーリポジトリに追加したりすることもできます。

DebianやRHELベースのディストリビューションから来てArch Linuxに不慣れな場合、AURに馴染みがないかもしれません。AURは多くのユーザーがArch Linuxを好む主な理由の一つです。

関連記事: