2009-06-15 6 views
2

システムに既にインストールされているrpmパッケージがあります。古いパッケージを別のパッケージ名で新しいパッケージに置き換えたいのですが。 「rpm -Uvh [パッケージ名]」は、古いパッケージを新しいパッケージに置き換えるのに十分なはずです。

ネットでいくつかの調査をしたところ、古いパッケージを廃止し、別の名前の新しいパッケージに置き換えるために "Obsoletes"が使用されていました。 rpm specファイルで "Obsoletes"を使用しましたが、古いパッケージからアップグレードしようとしているときに、$ 1 = 1となる$ 1 = 0で%preunが呼び出されます。

Pleaseどこにでも間違っていたら私を修正してください。この問題の解決策はありますか?

おかげ

答えて

1

この問題の解決策はありますか?

rpm -e --nopreun <old-package> && rpm -i <new-package>

あなたが選択的に有効と --no<scriptname>で特定のスクリプトを無効にするか、--noscriptsですべてのスクリプトを無効にすることができます。

新しいパッケージに関連付けられているさまざまなスクリプトを確認してください。 それらのいくつかを無効にする必要があるかもしれません。

-steve

p.s.これは恐らくServerFaultに掲載された方が良いでしょう。 :)

1

あなたの問題の私の理解では、古いパッケージは、あなたはそれが正しい、(そのようなユーザーアカウントか何かを削除するように)ないしたいと思い、その%のpreunスクリプトで何かをするということですか?

これを回避する1つの方法は、ファイルを含まない古いパッケージの中間ダミーrpmバージョンN + 1を作成し、それをアップグレードして最終的な新しいパッケージに更新することです。

+1

はい、正しいですが、ユーザーにダミーパッケージを配布できません。 %preunスクリプトレットは、ここでデーモンを停止し、 "chkconfig"からエントリを削除する責任があります。別のパッケージ名で新しいパッケージにアップグレードする方法はありますか?古いパッケージの%preunスクリプトレットは$ 1 = 1で実行または実行されません。 – Supratik

関連する問題