51

我正在尝试构建一个 .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在安装软件包期间如何安装所有依赖项。可能吗?

4

3 回答 3

84

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

参数可以是规范文件的路径、源 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
于 2012-11-05T09:12:39.583 回答
1

yum-builddep如果您使用的镜像不提供源 RPM,则似乎不起作用。这可能无法处理所有情况,但通常对我有用:

sudo yum install -y $(<rpmbuild> | fgrep 'is needed by' | awk '{print $1}')

<rpmbuild>您的命令在哪里rpmbuild(例如,rpmbuild -ba foo.spec)。

于 2017-06-08T18:28:34.393 回答
0

在 PHP 构建上 - 特别是phpbrew我使用dnf builddep php的,它有效。

于 2021-04-06T13:13:03.120 回答