的路径我有2个谁应该被放置在同一个目标依赖包。包B依赖于包A.建筑RPM包:力安装在相关的搬迁包
包A可被重新定位到任何其他位置。 我现在想要将包B强制置于与包A相同的目标中。或者简单地说,如果没有相同的--prefix,包B应该无法安装。
任何想法如何acieve呢?
我认为把一个%的预脚本来检查这一点。但是,我认为这没有帮助,因为我无法阅读此脚本中给定的“前缀” - 或者我可以吗?
谢谢你的帮助!
的路径我有2个谁应该被放置在同一个目标依赖包。包B依赖于包A.建筑RPM包:力安装在相关的搬迁包
包A可被重新定位到任何其他位置。 我现在想要将包B强制置于与包A相同的目标中。或者简单地说,如果没有相同的--prefix,包B应该无法安装。
任何想法如何acieve呢?
我认为把一个%的预脚本来检查这一点。但是,我认为这没有帮助,因为我无法阅读此脚本中给定的“前缀” - 或者我可以吗?
谢谢你的帮助!
哈。所以我做了一些源代码潜水,并发现,显然(至少在rpm 4.8.0我没有看其他版本)RPM_INSTALL_PREFIX
和RPM_INSTALL_PREFIX#
环境变量设置为%pre
(可能还有其他脚本)的值(似乎是%{INSTPREFIXES}
和/或%{INSTALLPREFIX}
宏)。 [source link]
我会尝试那些在您%pre
脚本。他们看起来像他们会给你想要的。
但是,这将是正在安装的包,而不是他正试图匹配的* other *包... – 2015-02-07 01:07:59
@ AaronD.Marasco他可以查询'''''在'%pre'期间,'rpm'作为已安装软件包的前缀我假设(或者只是从其他软件包中搜索已知文件的当前软件包的前缀)。 – 2015-02-08 22:35:00
谢谢你!那就是我需要的!多好:D – Karl 2015-02-09 10:01:19
你知道一种查询软件包的方法吗?我不是非正式的(但我从未尝试过)。这就是说你不需要这样做,而只需检查你的*前缀是否有你依赖的文件。 (其实我不知道文件的先决条件是否会受到给定前缀的影响。) – 2015-02-05 16:06:19
是的,这是'rpm -qa --queryformat'%{instprefixes}'NAME_OF_PACKAGE' – Karl 2015-02-05 17:18:12
有趣。那么,关于为* current *包获取前缀的问题呢?基于参数,'%{DEFAULTPREFIX}'或'%{INSTALLPREFIX}'是否在'%pre'中正确扩展? – 2015-02-05 17:47:34