在构建RPM包之前自动安装构建依赖项

时间:2012-11-05 06:42:33

标签: fedora rpmbuild

我正在尝试构建一个.rpm包。我刚刚按照步骤来做到这一点。到现在为止所有的步骤都很顺利,但现在我只是坚持这一步。我刚刚运行以下命令并收到此错误:

rpmbuild -ba asterisk.spec

error: Failed build dependencies: 
    gtk2-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
    libsrtp-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
    [... more ...]
    freetds-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64
    uw-imap-devel is needed by asterisk-1.8.12.2-1.fc15.x86_64

我正在使用fedora-15。如何解决此错误?

如何在安装src.rpm软件包期间安装所有依赖项。有可能吗?

3 个答案:

答案 0 :(得分:61)

您可以使用yum-builddep包中的yum-utils命令来安装包的所有构建依赖项。

参数可以是spec文件的路径,源RPM的路径,也可以是在已配置的存储库中作为源RPM存在的包的名称,例如:

yum-builddep my-package.spec

yum-builddep my-package.src.rpm

通过确保dnf已安装然后执行以下操作,使用dnf-plugins-core作为其包管理器的较新版本的Fedora可以实现同样的目的:

dnf builddep my-package.spec

dnf builddep my-package.src.rpm

答案 1 :(得分:0)

如果您使用的镜像不提供源RPM,则

<body onLoad="dispJam();timer();"> <table> <FORM NAME="User"> <tr><td><center>Sisa Waktu<br><INPUT TYPE="text" NAME="TimeLeft" id="TimeLeft" SIZE="8"></td></tr> <tr><td><center>Waktu<br><INPUT TYPE="text" NAME="TimeTaken" id="TimeTaken" SIZE="8"></td></tr> <tr><td><center>Sekarang Jam<br><INPUT TYPE="text" NAME="Watch" id="Watch" SIZE="8"></td></tr> </FORM> </table> <form name="ljkform" method="post" action="hasil_tes.php?idtest=<?php echo $idtest;?>&idanggota=<?php echo $idanggota;?>"> <!-- script to show the question form --> </form> </body> 似乎无法正常工作。这可能无法处理所有情况,但它通常适用于我:

yum-builddep

其中sudo yum install -y $(<rpmbuild> | fgrep 'is needed by' | awk '{print $1}') <rpmbuild>命令(例如rpmbuild)。

答案 2 :(得分:0)

在 PHP 构建方面 - 特别是 phpbrew 我使用了 dnf builddep php,它奏效了。