我有一个驱动程序包B,当我触发安装程序包A的构建计划时,我希望将其作为依赖项引入。唯一的目的是充当包装程序包,它可以引入所有程序包系统工作所需的包,作为依赖。
如果驱动程序B是H / W平台,它应该只在系统上安装,否则它应该只将自己标记为安装在db中,而不是真正完成安装。问题是如果没有安装B,那么对B有依赖性的包A也将无法安装,因此整个构建计划失败。
并且包可以基于某些条件具有动态依赖性吗?因为那时我可以将该逻辑移动到包A,以便在满足某些条件时将B指定为依赖。
答案 0 :(得分:1)
我不相信你能做你想做的事(至少不是直接做的)。
你可能得到的最接近的是让包B
安装驱动程序文件/等的tarball。然后检查(在%post
或类似)平台是否合适,只检查它是否正确。
话虽如此,我根本不建议使用该路径(如果您确实想这样做,我相信您会希望将所有这些文件标记为%ghost
个文件,以便RPM至少知道它们)
我很快就会建议,如果驱动程序(或者可以在非H / W平台上)无害,您只需让它们安装并忽略它。或者,您可以使用Provides
包中的“虚拟”B
作为A
包中的要求,并创建不包含文件的B
的第二个版本(仅Provides
),然后有多个适当使用的安装存储库。
RPM依赖项存储在包头中,并且不支持任何几乎像条件断言一样复杂的东西(我至少知道)。