1
我正在制作一个spec文件(foo.spec),它在构建时会产生两个RPM:foo-1-1.i386.rpm (主程序)和libfoo-1-1.i386.rpm(所需的库文件)。该foo.spec文件指出FOO需要libfoo的同一版本和发行级别:SPEC文件构建两个RPM,但依赖性使-Uvh升级不可能
Requires: libfoo = %{version}-%{release}
富-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在新版本发布时升级包的所有部分?
在此先感谢。
IIRC,你可以运行'rpm -Uvh foo-2.1.i386.rpm libfoo-2-1.i386.rpm'同时升级两个版本 – Hasturkun
是否可以存储所有的库libfoo)到foo RPM中,如果你想保持它如此耦合?将libfoo的版本/发行版绑定到当前版本的foo类型会挫败单独RPM的目的,因为更新一个会要求您更新其他版本。另外,要使升级示例正常工作,必须在更新libfoo之前先删除foo-1-1。或者你可以使用yum来处理所有这些:'yum update foo'。不过,这需要设置一个(本地)存储库。 –