パッケージをアップグレードする前にどのファイルが変更されるのかどうかはどうすればわかりますか?

パッケージをアップグレードする前にどのファイルが変更されるのかどうかはどうすればわかりますか?

一部のシステムを更新する必要がありますが、パッチされたLinuxバージョンを使用しており、パッケージが特定のファイルを変更したくありません。より明確にするために、パッケージで実行したくないタスクのリストは次のとおりです。

Modify the boot sequence (modify grub)
Change the init files (init.d)
The kernel image

だから、いくつかのパッケージをリストし、次の内容と一緒に別々に保管しました。

for package in 'package_list grub2-common...'
do
 echo $package hold|dpkg --set-selections
done

-1 優先順位で /etc/apt/prefences に追加することもできますが、そうする必要はないと思います。

ファイルのリストが与えられたら、このプロセスを自動化し、そのファイルを使用するすべてのアップデートパッケージを見つけて保留したいと思います。すべてのパッケージをインストールせずにこれが何をしているのかを知ることができれば、良いスタートになります。

編集:使用すると、chattr -i <filelist>.特定のファイルへのアクセスをブロックできますが、問題に対してよりきれいなパッケージ指向のアプローチを使用したいと思います。

ご協力ありがとうございます。

答え1

これが最善の答えではないかもしれませんが、「パッケージが特定のファイルを変更したくない場合」、そのファイルを作成できます不変使用chattr -i <filelist>。だから私があなたなら、次のことを検討します。

find /etc/init.d /boot -type f -exec chattr +i "{}" +

完了したら、次のよう+iに変更します-i(またはファイルを変更するまでそのままにしてください)。これはLinux固有の特殊拡張属性である「不変」ビットを設定/リセットします。このビットが設定されている間は、ファイルを変更または削除することはできません。

関連情報