2011-11-07 74 views
0

正如标题所暗示的,我如何检查,而无需编译包自己?就我而言,我将从其他地方构建一个软件包。如何在创建RPM包之前检查依赖关系?

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

回答

-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 
2

良好的上游开发者通常包括他们需要建立(除自动工具&家庭当然)封装的最小所需版本。除此之外,你可以检查configure.ac文件。它需要关于自动工具的基本知识,但是如果你能读懂它,它会给你提供配置期间程序包检查的内容,而不用实际运行它。

另一种选择是有一个最低限度“的buildroot”不会有默认安装任何特殊的库。这样你就可以运行configure,它会失败,因为缺少依赖关系,所以你可以将它添加到你的列表中。然后冲洗&重复,直到包装建成。

最后但并非最不重要的,检查是否存在分布已经封装上述软件和看看他们的依赖。他们很可能是正确的。

在任何情况下,如果包是FLOSS,请与作者联系,并试图让他们列出任何具体的依赖他们的文档(自述,或与源分布的其他一些文件)英寸

更新1:请注意,对于同一个包,不同的发行版可能具有不同的名称。例如,“阿帕奇公地守护”中的Fedora,Gentoo中在Debian的世界“公地守护”和“开发的Java /公地守护”。

相关问题