我被要求为我们的OPS团队制作RPM软件包以安装我们的软件。我发现ant有一个RPM任务并开始使用它。我根据this link,this one和also this one填充了一个spec文件。但是我现在陷入了僵局。我一直从RPM任务中得到“[rpm]:命令而不是建立错误:来自/var/tmp/rpm-tmp.VNmA3k(%prep)的错误退出状态”。
我使用了RPMBUILD,并且得到了完全相同的错误,除了/ var / tmp / rpm-tmp。每次都有不同的文件扩展名。如果我在第36行转到该文件,我发现“^ M”。现在这个文件似乎是由RPMBUILD工具生成的,所以我现在可以控制它了。
我做错了什么?
规范文件:
Name: SYJBoss7
Version: 1.0
Release: 1
Summary: Esentially a JBoss 7.1 release from the SwitchYard team, with custom modules for genvods
Group: <our group name>
License: none
URL: none
Source0: file:///tmp/SYJBoss7.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%description
%prep
%setup -q
%build
pwd
%install
rm -rf %{buildroot}
mkdir -p $RPM_BUILD_ROOT/opt/swithcyard/
install -s SYJboss7 $RPM_BUILD_ROOT/opt/swithcyard/
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc
$RPM_BUILD_ROOT/opt/swithcyard/
%changelog
ant rpm命令的输出:
[rpm] Building the RPM based on the example.spec file
[rpm] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.VNmA3k
[rpm] + umask 022
[rpm] + cd /tmp/rpm/SYJboss7/BUILD
[rpm] + cd /tmp/rpm/SYJboss7/BUILD
[rpm] + rm -rf SYJBoss7-1.0
[rpm] + /bin/tar -xf -
[rpm] + /usr/bin/gzip -dc /tmp/rpm/SYJboss7/SOURCES/SYJBoss7.tar.gz
[rpm] + STATUS=0
[rpm] + '[' 0 -ne 0 ']'
[rpm] + cd SYJBoss7-1.0
[rpm] + /bin/chmod -Rf a+rX,u+w,g-w,o-w .
[rpm] + $'\r'
[rpm] /var/tmp/rpm-tmp.VNmA3k: line 36:
[rpm] : command not founderror: Bad exit status from /var/tmp/rpm-tmp.VNmA3k (%prep)
[rpm] Bad exit status from /var/tmp/rpm-tmp.VNmA3k (%prep)
[rpm]
[rpm]
[rpm] RPM build errors:
答案 0 :(得分:1)
嗯,符号$'\r'
(回车)在Linux中没有行结尾含义。所以你最好把它留下来;它会弄乱你的脚本。
可能您(或其他人)使用Windows编辑器编辑了此.spec
文件。
查看%prep
部分,尝试使用您喜欢的编辑器修复错误的行结尾。