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

Joh*_*rry 8 newline fedora build-error rpmbuild

我正在运行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)
Run Code Online (Sandbox Code Playgroud)

脚本文件/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
Run Code Online (Sandbox Code Playgroud)

39号线就在上面autoreconf -f -i.这是一个空白行,显然标记\r为标准的Linux回车.如果我在文本编辑器中更改了这一行,脚本运行正常.

据我所知,这个脚本文件是rpmbuild由spec文件自动生成的,虽然我并不是真的知道.我该怎么做才能造成这种情况?我正在运行Fedora 20,rpmbuild版本4.11.3.

Joh*_*rry 10

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