一部のファイルを保持しながらrpmパッケージを削除する方法

一部のファイルを保持しながらrpmパッケージを削除する方法

httpd64ビットパッケージと32ビットパッケージのインストールに問題があります。

uninstallを介してパッケージの1つが削除された場合yum remove/etc/httpd/conf/httpd.conf

rpmファイルの削除を通過または除外する方法はありますかyum?両方のページを見ましたが、関連manするオプションは表示されませんでした。

注:アンインストール後にファイルをバックアップして復元できることがわかります。よりクリーンでエレガントなオプションがあるかどうか疑問に思います。

答え1

rpm -e --justdb理想的ではありませんが、ファイルを削除せずにpkgを削除されたものとして記録して、同様の問題を解決しました。インストールセクションにのみリストされ、rpmアンインストールセクションにはリストされていない古いv4.4.2.3がありますが、アンインストールにも機能します。man rpm--justdb

概要:

  • 各pkgで宣言されたファイルを一覧表示します。
  • コンテンツを削除せずにデータベースから出るパッケージを削除するrpm -e --justdb PKG
  • 削除されたpkg宣言をクリーンアップして削除しますが、残りのpkg宣言されていないファイルは削除します。

準備する

pkg_keep="asterisk-core-1.6.2.24-1_centos5"
pkg_del="asterisk16-core-1.6.2.20-2_centos5"

# Record files claimed by each package
rpm -ql "${pkg_del}" > "files.${pkg_del}"
rpm -ql "${pkg_keep}" > "files.${pkg_keep}"

発信する pkg で宣言したが、残りの pkg では宣言していないファイルをリストします。 警告する: --line-regexp重要なので/fileフィルタリングされません/file2

grep -v -F --line-regexp -f "files.${pkg_keep}" "files.${pkg_del}" > files.cleanup

ファイルを削除せずにRPM DBから出るPKGを削除します。暗黙のman rpmifでは明確ではありません。必要かもしれません。--noscripts--justdb--nodeps

rpm -e --justdb --noscripts "${pkg_del}"

レビュー注意深い内容を削除しfiles.cleanup、その中にリストされているファイルを削除します。

リストされているファイルIMOを自動的に削除できますが、files.cleanupここでコマンドを発行すると、コピー/貼り付けリーダーが破損する可能性があります。

etckeeperまた、床だけに興味がある場合は、このようなものを使用することが役に立ちます/etc/

答え2

httpd.confファイルが「設定」ファイルとして宣言されないように、パッケージが構成され、パッケージが削除されたときに保存されないようです。 httpd.conf が設定ファイルとして宣言され、インストール後に変更された場合は、パッケージの削除中に httpd.conf.rpmsave として保存されます。バラよりhttp://ftp.rpm.org/max-rpm/ch-rpm-erase.htmlパッケージの削除中に実行される手順について説明します。

述べたように、ファイルのバックアップと回復を介してまたはrpm -qc <package>

  • パッケージの構成ファイルを照会して実行すると、いいえそこでhttpd.confを見つけると、パッケージの削除プロセス中にそのファイルが削除されることが予想され、事前に安全な場所にコピーできます。

  • パッケージの場合したhttpd.confを構成ファイルとしてリストし、次のようにします。(1)ファイルを意味のあるように変更し、パッケージの削除後も保持されます。 (2)パッケージがインストールされてからファイルが変更されず、(無害に)削除されます。梱包の取り外し中。

答え3

残念ながら(または幸いにも見ている方法に応じて)オプションのファイル削除などの機能はありません。私の提案は、ファイル、そのようにマークされた構成ファイル、および関連する各パッケージのドキュメントをリストし、アーカイブしたいアイテムのリストを調べることです。

使用

  • rpm -ql packagenameファイルのリストに使用されます。
  • rpm -qc packagename構成ファイルのリストに使用されます。
  • rpm -qd packagename文書ファイルのリストに使用されます。

@Jeff Schallerがすでに指摘しているように、これらのリストを調べて設定ファイルである必要がありますが、そうでない(つまり出力にrpm -ql表示されていない)ファイルのバックアップを手動で作成します。

関連情報