0

我被要求为我们的 OPS 团队制作 RPM 包以安装我们的软件。我发现 ant 有一个 RPM 任务并开始使用它。我根据这个链接填充了一个规范文件,这个这个。然而,我现在陷入了僵局。我不断从 RPM 任务中收到“[rpm] : command not founderror: Bad exit status from /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:
4

1 回答 1

1

好吧,符号$'\r'(回车)在 Linux 中没有行尾含义。所以你最好别管它;它会弄乱你的脚本。

可能您(或其他人).spec使用 Windows 编辑器编辑了此文件。

查看该%prep部分并尝试使用您最喜欢的编辑器修复错误的行尾。

于 2013-08-06T08:53:10.440 回答