2014-11-05 31 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