如果你创建了一个yum repo并使用它来更新,你会发现更新一个RPM会自动拖拽另一个RPM。
我正在处理一个规范文件(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