以内核rpm为例,它允许在系统上同时安装多个版本。 spec文件中究竟允许的是什么?
我想将已经存在的项目打包为具有不同安装前缀的多个版本。
答案 0 :(得分:5)
<强> YUM 强>
找到了安装yum而不是更新的方法。有一个配置指令可以这样做。来自man yum.conf:
<强> installonlypkgs 强>
应该只安装的包列表,永远不会 更新。特别是内核属于这一类。默认为 kernel,kernel-bigmem,kernel-enterprise,kernel-smp,kernel-debug, kernel-unsupported,kernel-source,kernel-devel,kernel-PAE, 内核PAE-调试。
请注意,因为这些是提供的,而不仅仅是包名称, kernel-devel也适用于kernel-debug-devel等。
请注意,“内核模块”不在此列表中,在RHEL-6中,等等 提供的任何东西都像其他任何包一样更新。
<强> installonly_limit 强>
installonlypkgs中列出的要保持安装的软件包数量 同时。设置为0将禁用此功能。默认值为“3”。注意 这个功能曾经在“installonlyn”插件中,在哪里 这个选项通过tokeep改变了。请注意,从版本3.2.24开始, yum现在将在yumdb中查找installonly属性 安装包。如果该属性是“保持”,那么它们将永远不会 被删除。
测试并确认它复制了内核的行为。更新或安装时,yum不会更新(删除)旧包。
请注意,列表中的包名必须准确,不考虑通配符。所以有一种方法可以做到这一点,并可能在rpm的%post 脚本中自动执行该过程。
答案 1 :(得分:2)
允许它确保包的不同版本中的任何文件/路径名都不相同。执行此操作的程序包通常使用不同的目录名称或不同的文件名(例如将版本号附加到一个或另一个)。
我在How to install two different versions of same rpm and make them work parallely
中给出了更详尽的答案