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

Linuxでは、記号$'\r'(キャリッジ リターン) に行末の意味はありません。だから、やめたほうがいい。それはあなたのスクリプトを台無しにします。

おそらく、あなた (または他の誰か) がこの.specファイルを Windows エディターで編集したことでしょう。

セクションを見て%prep、お気に入りのエディターで誤った行末を修正してみてください。

于 2013-08-06T08:53:10.440 に答える