Linux rpmbuild临时文件错误

时间:2014-11-05 11:32:38

标签: centos rpmbuild

当runnig rpmbuild带命令

rpmbuild -v -ba --sign --clean ~/rpmbuild/SPECS/myspecfile.spec 

我得到了这个输出:

Enter pass phrase:  
Pass phrase is good.  
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.6akVI6  
+ umask 022  
+ cd /home/rpmbuilder/rpmbuild/BUILD  
+ LANG=C  
+ export LANG  
+ unset DISPLAY  
+ $'\r'  
**: command not foundwXWF: line 30:**  
error: Bad exit status from /var/tmp/rpm-tmp.6akVI6 (%prep) 

所以我编辑了临时文件 /var/tmp/rpm-tmp.6akVI6 ,搜索了第30行,并在那里找到了一个字符: 的 ^ M

如果我执行临时文件,我会得到相同的错误,但它会执行30之后的所有行,这与在该行上断开并且不会继续执行的rpmbuild不同:

sudo sh /var/tmp/rpm-tmp.6akVI6

+ umask 022  
+ cd /home/rpmbuilder/rpmbuild/BUILD  
+ LANG=C  
+ export LANG  
+ unset DISPLAY  
+ $'\r'  
**: command not foundkVI6: line 30:**  
+ cd /home/rpmbuilder/rpmbuild/BUILD  
+ rm -rf mysource-1.0.0  
+ /usr/bin/gzip -dc /home/rpmbuilder/rpmbuild/SOURCES/mysource-1.0.0.tar.gz  
+ /bin/tar -xvvf -  
drwxrwxrwx 0/0               0 2014-11-04 17:10 mysource-1.0.0/  
+ STATUS=0  
+ '[' 0 -ne 0 ']'  
+ cd mysource-1.0.0  
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .  
+ exit 0  

如果我编辑文件并删除第30行( ^ M ),我可以运行脚本而不会出错:

sudo sh /var/tmp/rpm-tmp.6akVI6  
+ umask 022  
+ cd /home/rpmbuilder/rpmbuild/BUILD  
+ LANG=C  
+ export LANG  
+ unset DISPLAY  
+ cd /home/rpmbuilder/rpmbuild/BUILD  
+ rm -rf mysource-1.0.0   
+ /usr/bin/gzip -dc /home/rpmbuilder/rpmbuild/SOURCES/mysource-1.0.0.tar.gz
+ /bin/tar -xvvf -  
drwxrwxrwx 0/0               0 2014-11-04 17:10 mysource-1.0.0/  
+ STATUS=0  
+ '[' 0 -ne 0 ']'
+ cd mysource-1.0.0  
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .  
+ exit 0  

这表明由于第30行的单个字符,rpmbuild正在停止。

任何提示为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

here中找到答案 看来文件保存在windows上,得到那个字符,它是DOS行的结尾。 我在Windows上创建了我的spec文件,因此我编辑了它并执行了建议的命令:

:set fileformat=unix

并重新运行rpmbuild并且它有效。

相关问题