yumで削除してはいけないパッケージを保護する


紹介

CentOS6.x系のyumは誤って必要なパッケージを削除しないように、yum.confのprotected_packagesオプションでパッケージを保護することが可能になりました。

なお、削除してはいけないことで有名なPythonですが、CentOS6系ではデフォルトでyumパッケージは保護されているため、yumパッケージが依存しているPythonも削除できません。


設定方法

ここでは例としてvim-enhancedパッケージを保護します。

yum.confに直接記述しても有効ですが、/etc/yum/protected.d/*.confファイルも自動的に読み込んでくれます。
構成管理ツールで管理する場合は後者のほうが都合がよいと思いますので、今回は後者の方法で設定します。

設定例

下記のようにprotected_packagesだけ指定した設定ファイルを作成します。

/etc/yum/protected.d/vim-enhanced.conf
protected_packages = vim-enhanced

実行例

あとは実際にyum eraseしてみましょう。

% sudo yum erase vim-enhanced          
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.2.411-1.8.el6 will be erased
--> Finished Dependency Resolution
Error: Trying to remove "vim-enhanced", which is protected
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

このようにエラーで削除されなくなります。
Y/Nの質問すら出ないので、-yオプションを付けても削除されることはありません。