Dependencies RPM生成依赖项错误

Dependencies RPM生成依赖项错误,dependencies,rpm,rpmbuild,Dependencies,Rpm,Rpmbuild,我试图在Cent OS 6.5上创建一个二进制RPM文件,但在准备阶段遇到了错误。“我的等级库文件”的“准备”部分包含以下命令: %prep %setup -q wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm yum -y install python-pip pip install ws4py reque

我试图在Cent OS 6.5上创建一个二进制RPM文件,但在准备阶段遇到了错误。“我的等级库文件”的“准备”部分包含以下命令:

%prep
%setup -q
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install python-pip
pip install ws4py request
但当我跑步时:

 rpmbuild -v -bb --clean SPECS/ttsdk.spec 
我得到以下输出:

Preparing...                ########################################### [100%]
    package epel-release-6-8.noarch is already installed
error: Bad exit status from /var/tmp/rpm-tmp.Kkbk09 (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.Kkbk09 (%prep

它似乎失败了,因为包已经安装,这不是我所期望的行为。我是不是忽略了什么?也许有一种方法可以使rpm命令在已经安装时不会失败,或者让spec文件忽略错误的退出代码?如果规范文件需要完整日志或更多日志,请告诉我。

尝试使用
-U
而不是
-i

尝试使用
yum安装…
而不是
rpm

如果所有其他操作都失败,请在该行末尾添加
|;:
,使其始终返回true


尽管如此,对于我来说,规范文件在
%prep
过程中所做的一切似乎都是一件坏事(并且需要以root身份构建,这通常是不受欢迎的)。

Etan,谢谢。前两个建议不起作用(虽然我确实切换到了yum安装而不是rpm),但最后一个建议起作用了。我觉得这是一个解决办法?对于我来说,一个已经安装的软件包导致失败仍然是很奇怪的。另外,关于构建为root,这将是一个RPM,它将被部署到应该进行新安装的VM上,因此虽然我注意到了警告,但我不太担心会把事情搞砸@标记根生成问题不是部署问题。这是一个构建问题。您相信规范文件和生成过程不会对您的生成系统执行它们不应该执行的操作。例如尝试安装软件包等。实际上
yum install$pkg.rpm
在CentOS 5上说对我没有任何帮助时似乎返回0,但
rpm-U
似乎失败了(我同意这有点奇怪)。您可以尝试将
--replacepkgs
转换为
rpm
,但在这种情况下,您实际上需要做更多的工作。您还可以在尝试安装软件包之前对其进行测试。