2

この質問で説明されている問題に遭遇しました。古いパッケージが廃止され、その %preun スクリプトが $1 = 0 で実行され、望ましくない動作が発生しました。その回答で示唆されているように、-e + -i または --nopreun フラグを使用することでこれを回避できることはわかっていますが、単純に -U を使用することに慣れているユーザーにその情報を提供することは困難です。

既存の %preun スクリプトを実際に変更することはできません。古いパッケージの事前実行後に、新しいパッケージから追加のコードを実行する方法がわかりません。新しいパッケージで古い %preun スクリプトの実行をプログラムで防止する方法が見つかりません。

RPM データベースに到達して、既存のパッケージのスクリプトレットを削除する安全な方法はありますか?

4

2 に答える 2

0

いいえ、rpmdb を編集することはできません。ヘッダーは SHA1 またはデジタル署名によって変更から保護されています。

代わりに、 --nopreun を使用してパッケージの修正バージョンにアップグレードし、バグのあるスクリプト let の実行を防ぎます。

于 2014-09-15T10:42:54.080 に答える