yum remove した際の/etc/ファイルの挙動について

投稿者: Anonymous

「yum install hoge」すると、/etc/hoge/ディレクトリ以下が作成されると思うのですが、
この後「yum remove hoge」すると、このファイルの取扱はどうなるのでしょうか?

・削除される?
・削除されない?


削除されない場合
・自分で削除しても良い?
・依存性の問題があるので、手動で削除しない方が良い?


「yum remove hoge」した後、かつ「/etc/hoge/ディレクトリ以下」が残っていた場合で、再度、「yum install hoge」する場合、
・既存の「/etc/hoge/ディレクトリ以下」との優先順位はどうなるのでしょうか?
・上書きされる?
・上書きされない?


この辺りの挙動はyumで統一されているのでしょうか?
・あるいはパッケージ単位で異なる?
・特にnginxについて知りたいのですが……

解決

私が確認したのはFedora 26ですが、yum(dnf) の挙動として

設定ファイルにユーザーが変更を加えていた場合
yum remove <PACKAGE>を実行すると、変更を加えたファイルは.rpmsaveのサフィックスを付けて保存される(削除時に警告として情報が表示される)。

警告: /etc/nginx/nginx.conf は /etc/nginx/nginx.conf.rpmsave として保存されました。

設定ファイルを一切触っていない場合
yum remove <PACKAGE>を実行すると、設定ファイルも含めすべて削除される。


rpmコマンドではインストールしたパッケージに含まれるファイルのチェックサムを比較することで、インストール直後から変更が加えられていないかの確認ができます。

# rpm -qV nginx
S.5....T.  c /etc/nginx/nginx.conf

参考: インストールされているファイルをオリジナルと比較するには

また、rpmコマンドで-cオプションを使用すると設定ファイルのみの一覧を表示することができます。念を押してバックアップする際の参考にすると良いかもしれません。

# rpm -qlc nginx

パッケージは削除済み、かつ設定ファイルのみ残っている状態で再度パッケージをインストールした場合は各パッケージのポリシーによって挙動が異なりますが(rpmファイル内のspecファイルで指定)、以下いずれかの方法でユーザーが手を加えた設定ファイルは残ります。どちらの場合でもインストール/アップグレード時に警告が表示されます。

ユーザー設定を優先
既存の設定ファイルを維持し、本来パッケージによってインストールされるはずだったファイルは.rpmnewのサフィックスを付けて保存されます(nginxはこちら)。

警告: /etc/nginx/nginx.conf は /etc/nginx/nginx.conf.rpmnew として保存されました。

デフォルト設定を優先
既存の設定ファイルは.rpmsaveのサフィックスを付けてリネームされ、パッケージに含まれる設定ファイルが新たにデフォルト設定としてインストールされます。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *