SPEC文件构建两个rpm,但依赖使得-Uvh升级不可能



我正在处理一个规范文件(foo.spec),它在构建时产生两个rpm: foo-1-1.i386。rpm(主程序)和libfoo-1-1.i386。rpm(所需的库文件)。foo。

说明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可以用来升级包的所有部分,当一个新的版本是可用的任何想法?

rpm不允许您单独更新这些rpm,因为安装第一个rpm和第二个rpm之间的状态是无效的。

正如Hasturkun指出的那样,你可以在同一个命令中安装它们:

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

如果你创建了一个yum repo并使用它来更新,你会发现更新一个RPM会自动拖拽另一个RPM。

最新更新