紹介
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オプションを付けても削除されることはありません。