rpmbuild错误:找不到命令$`\ r \ n

时间:2015-04-12 04:36:54

标签: newline fedora rpmbuild build-error

我正在运行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。

1 个答案:

答案 0 :(得分:7)

做了一点工作。显然,当我下载.spec文件时,我的电子邮件提供商或我的网络浏览器都给它一个DOS编码('\ r \ n')。我在文本编辑器中打开它,将其切换为Unix编码('\ n'),一切都很好 - 现在rpmbuild运行愉快。