2014-11-05 121 views
0

当命令运行过程中出现的rpmbuild的Linux的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

如果我ex执行临时文件我得到相同的错误,但它在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 

这表明我说的rpmbuild正因为停止第30行的单个字符。

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

回答

1

here 找到答案看来,文件保存在Windows上,得到该字符,它是一个DOS行结束。 我对窗口创建我的规格文件,所以我编辑它,并没有建议的命令:

:set fileformat=unix 

和重新运行的rpmbuild和它的工作。

+0

然后随意接受你的答案。 ;) – 2014-11-05 12:53:03

+0

我必须等待2天才能接受:) – 2014-11-05 13:07:24