1

私は仕様ファイル (foo.spec) に取り組んでいます。このファイルをビルドすると、foo-1-1.i386.rpm (メイン プログラム) とlibfoo-1-1.i386.rpm (必要なライブラリ ファイル)。foo.spec ファイルには、foo には同じバージョンとリリース レベルの libfoo が必要であると記載されています。

Requires: libfoo = %{version}-%{release}

foo-1-1 は次のようにインストールするとうまくいきます:

rpm -ivh libfoo-1-1.i386.rpm

依存ライブラリをインストールし、次に:

rpm -ivh foo-1-1.i386.rpm

ただし、新しいバージョン (foo-2-1) へのアップグレードは、ライブラリに依存しているため機能しません。

$ rpm -Uvh libfoo-2-1.i386.rpm
error: Failed dependencies:
       libfoo = 1-1 is needed by (installed) foo-1-1.i386

$ rpm -Uvh foo-2-1.i386.rpm
error: Failed dependencies:
       libfoo = 2-1 is needed by foo-2-1.i386

だから私は立ち往生しています。私は、ユーザーが rpm -Uvh を実行して foo パッケージをアップグレードできるようにしたいと考えています (依存関係を無視することをユーザーに要求するなどは、初心者ユーザーに多くのことを要求しています)。

新しいリリースが利用可能になったときに rpm -Uvh を使用してパッケージのすべての部分をアップグレードできるように、これを回避する方法についてのアイデアはありますか?

前もって感謝します。

4

1 に答える 1

2

rpm shouldn't and doesn't allow you to update these RPMs individually as the the state between installing the first RPM and the second is not valid.

You can, as Hasturkun points out, install both of them in the same command:

rpm -Uvh libfoo-2-1.i386.rpm foo-1-1.i386.rpm

FWIW, if you creaate a yum repo and used that to update you would find that updating one RPM would automatically drag in the other.

于 2011-08-22T20:06:42.727 に答える