在构建 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')
其中<rpmbuild>
是您的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 包之前自动安装构建依赖项的主要内容,如果未能解决你的问题,请参考以下文章