正如标题所示,我如何在不自行编译包的情况下进行检查?就我而言,我将从其他地方构建一个包。
编辑:很抱歉不清楚。我的意思是“从其他地方构建一个包”是我必须从源代码创建一个RPM包,而不是通过安装它。无需运行./configure,还有其他方法可以检查吗?在RPM spec文件中,我必须放入BuildRequire,但它是如何知道的?例如,在SFML源中,它没有配置文件。
答案 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