我正在运行rpm规范文件,并遇到以下错误:

$ 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。

最佳答案

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

关于newline - rpmbuild错误: command $`\r` not found,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29586003/

10-09 17:06