如何在创建RPM包之前检查依赖项?

时间:2011-11-07 07:25:30

标签: linux rpm

正如标题所示,我如何在不自行编译包的情况下进行检查?就我而言,我将从其他地方构建一个包。

编辑:很抱歉不清楚。我的意思是“从其他地方构建一个包”是我必须从源代码创建一个RPM包,而不是通过安装它。无需运行./configure,还有其他方法可以检查吗?在RPM spec文件中,我必须放入BuildRequire,但它是如何知道的?例如,在SFML源中,它没有配置文件。

2 个答案:

答案 0 :(得分:2)

优秀的上游开发人员通常包括他们需要构建的最低版本的软件包(当然除了autotools和家庭)。除此之外,您可以检查 configure.ac 文件。它需要autotools的基本知识,但是如果你能阅读它,它将为你提供包在配置期间检查的内容,而不实际运行它。

另一种选择是拥有一个最小的“buildroot”,默认情况下不会安装任何特殊的库。这样您就可以运行configure,它会因为缺少依赖性而失败,因此您可以将其添加到列表中。然后冲洗&重复直到包构建。

最后但并非最不重要的是,检查某些发行版是否已经打包所述软件并查看其依赖项。他们很可能是正确的。

在任何情况下,如果包是FLOSS,请与作者联系并尝试让他们列出其文档中的任何特定依赖项(README,或与源一起分发的其他文件)。

更新1:请注意,不同的发行版可以为同一个包提供不同的名称。例如Fedora中的“apache-commons-daemon”,Debian世界中的“commons-daemon”和Gentoo中的“dev-java / commons-daemon”。

答案 1 :(得分:-1)

使用rpm -qp --requires。例如:

rpm -qp --requires  xchat-2.8.8-0.fc13.src.rpm

节目:

perl  
perl(ExtUtils::Embed)  
python-devel  
openssl-devel  
pkgconfig  
tcl-devel  
GConf2-devel  
dbus-devel >= 0.60
dbus-glib-devel >= 0.60
glib2-devel >= 2.10.0
gtk2-devel >= 2.10.0
bison >= 1.35
gettext  
/bin/sed  
libtool  
libsexy-devel  
desktop-file-utils >= 0.10
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1