RPM的一个有趣特性是它将查看共享对象,找出它们链接的内容,找出哪些包提供了这些链接的共享库,并自动安装这些依赖库作为安装的一部分。已编译的共享库。
例如,如果libnaftuli与libbz2链接,则rpm-build将指定libnaftuli RPM中的依赖项,而不必在我的.spec文件中声明它。
我还应该在我的spec文件中声明这些依赖项吗?我想我应该声明模糊的依赖关系,但是否则我还应该手动找出我的库链接并指定它们的require子句,或者只是让rpm-build变得聪明?
答案 0 :(得分:1)
rpmbuild
添加的自动依赖项很有帮助,但它们并不能完成所有操作。明确的Requires
标记可以执行以下额外操作:
rpm
可以安装包含给定依赖项的特定版本(包括一系列版本)的包。rpm
该软件包依赖于虚拟软件包,例如,提供“相同”功能但名称不同的软件包(例如说 any Java包)。进一步阅读:
答案 1 :(得分:1)
如果你需要一些其他软件包 ,因为你需要rpm为你计算出来,那么没有任何理由没有任何理由自己手动列出软件包。
但是,如果您因某些其他原因(非库文件等)依赖于该程序包,或者对程序包具有特定的版本控制要求(通常应该为您处理库版本控制)你不应该)然后自己添加它是有道理的。
您有要求的任何其他软件包,rpm不会提取,显然应明确列出。