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

Posted

技术标签:

【中文标题】在构建 RPM 包之前自动安装构建依赖项【英文标题】:Automatically install build dependencies prior to building an RPM package 【发布时间】:2012-10-24 23:55:34 【问题描述】:

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

【问题讨论】:

【参考方案1】:

关于 php 构建 - 尤其是 phpbrew 我使用了 dnf builddep php,它成功了。

【讨论】:

【参考方案2】:

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

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

其中&lt;rpmbuild&gt; 是您的rpmbuild 命令(例如rpmbuild -ba foo.spec)。

【讨论】:

【参考方案3】:

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

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

yum-builddep my-package.spec

yum-builddep my-package.src.rpm

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

dnf builddep my-package.spec

dnf builddep my-package.src.rpm

【讨论】:

谢谢,你能给我任何相同或任何相关链接的示例语法吗? 我已经描述了你是如何运行它的!除此之外,对于任何 linux 命令,您的第一站将是 man yum-builddep,这无疑会很有启发性。

以上是关于在构建 RPM 包之前自动安装构建依赖项的主要内容,如果未能解决你的问题,请参考以下文章

企业yum仓库构建

企业yum仓库构建

YUM库及NFS共享服务

Databricks(Spark):.egg依赖项没有自动安装?

ubuntu软件管理

Ubuntu软件管理