我正在运行rpm spec文件,遇到以下错误:
$ rpmbuild -ba gregorio.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.dDWqRV
+ umask 022
+ cd /home/cantanima/rpmbuild/BUILD
+ cd /home/cantanima/rpmbuild/BUILD
+ rm -rf gregorio-2.4.1
+ /usr/bin/tar -xf -
+ /usr/bin/gzip -dc /home/cantanima/rpmbuild/SOURCES/gregorio-2.4.1.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd gregorio-2.4.1
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ $'\r'
/var/tmp/rpm-tmp.dDWqRV: line 39: $'\r': command not found
error: Bad exit status from /var/tmp/rpm-tmp.dDWqRV (%prep)
脚本文件/var/tmp/rpm-tmp.dDWqRV
在该区域中包含以下行:
if [ $STATUS -ne 0 ]; then
exit $STATUS
fi
cd 'gregorio-2.4.1'
/usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
autoreconf -f -i
第39行是autoreconf -f -i
之上的那一行。它是一个空行,显然标有\r
而不是标准的Linux回车。 如果我在文本编辑器中更改了这一行,则脚本运行正常。
据我所知,这个脚本文件是由rpmbuild
自动生成的,而不是由spec文件自动生成的,尽管我并不是真的知道。我该怎么做才能造成这种情况?我正在运行Fedora 20,rpmbuild版本4.11.3。
答案 0 :(得分:7)
做了一点工作。显然,当我下载.spec
文件时,我的电子邮件提供商或我的网络浏览器都给它一个DOS编码('\ r \ n')。我在文本编辑器中打开它,将其切换为Unix编码('\ n'),一切都很好 - 现在rpmbuild
运行愉快。