環境としてはUbuntuを想定してAPTのパッケージシステムを利用していると想定します。
事例として、xdiagnoseのパッケージがうまく更新されないことがありました。xdiagnoseはXorgの分析ツールで、うまく更新できない理由はsetupでエラーが出てしまうようでパッケージのメンテナが修正しない限り、更新ができないパッケージがパッケージの更新時に表示されてしまいます。
パッケージを更新するときに他のパッケージの更新が成功しても、パッケージの更新が常に失敗してしまうようなパッケージがあるとエラーで終了してしまいます。このようなエラーの終了は少々イライラする原因になります。なので、その時の状況にもよりますが解決策の一つとしては、このようなパッケージはパッケージを保留にすることで、そのパッケージに対しての更新は行われなくなり確認もされなくなり気分よくパッケージの更新作業を終えることができるようになりますし、他の原因のエラーを発見しやすくなります。
パッケージを保留にするにはapt-markコマンドを利用します。例えば、xdiagnoseを保留にしたい場合は
1 |
sudo apt-mark hold xdiagnose |
とします。
保留中のパッケージを表示したい場合はapt-markのshowholdを利用します。
1 2 |
$ apt-mark showhold xdiagnose |
時間が経過して、パッケージの修正が確認できた場合は、保留を解除しましょう。
1 |
sudo apt-mark unhold xdiagnose |
もしくは直接パッケージを指定してインストールを試みてもいいかもしれません。その場合も保留は解除されます。
1 |
sudo apt install xdiagnose |
今回、apt-markコマンドを新バージョンの不具合の回避に利用しましたが、このコマンドは他にも、システムの安定性を保つために重要なシステムパッケージを保留にする、古いアプリケーションの互換性を保つためにその依存関係を更新しないようにする、カスタマイズされたパッケージを上書きしないように保護する、安定した開発環境を保つために開発のために使用するアプリケーションやライブラリのバージョンを固定する等の使用用途を考えることができます。