私は最近64ビットに移植した32ビットアプリケーションを持っていて、新しいx86_64 rpmパッケージを作成しました。 64ビットマシンでの通常のアップグレードプロセスの一部として、古いi386パッケージを新しいx86_64パッケージに置き換えることができます。32bitパッケージを廃止した64bit rpmパッケージを作成するには?
ただし、古いi386パッケージをx86_64パッケージ(rpm -Uv MyPackage.version-release.x86_64)にアップグレードしようとすると、ファイルの競合が原因でアップグレードが失敗します。私はアップグレードコマンドに--replacefilesフラグを追加した場合、アップグレードは成功しますが、私はrpmのDB数(rpm -q mypackageと)を照会するとき私は2つのインストールパッケージを参照してください。
MyPackage.version-release.i386
MyPackage.version-release.x86_64
x86_64パッケージのspecファイルに「Obsoletes」タグを追加しようとしましたが、1つのアーチのパッケージが別のアーチからパッケージを廃止することはできません。
私はまた、明示的にx86_64版の%のpostinstallスクリプト用のi386パッケージを削除しようとしましたが、それが理由のrpmロック機構(回転数の内側から回転数を呼び出すことはできません...)
の失敗行うにはどのような方法がありますこれはパッケージのインストール\アップグレードプロセスの一環として行いますか?
ありがとう、 Tzippi。
この質問をする場所はhttp://unix.stackexchange.com/ –
です。スペルファイルに 'Obsoletes'タグを正確に追加しましたか?そのパッケージをインストールしようとしたときに何が起こったのですか? –
アップグレードがうまくいくようにするには、「ダミー」の32ビットパッケージを出荷することもできます.64ビットのパッケージにバージョンマッチングされていて、アップグレードが正しく動作するようにする必要があります(32ビットパッケージを残しておいてくださいユーザによって、等)。これは幾分かですが、ちょうど道の下で缶をキックします。 –