RPMをビルドしようとしていますが、このコマンドを使用してRPMをビルドすると、次のようになります。
[root@vmdb SPEC]# rpmbuild -v -bb SPEC/supportScripts.spec
私はいつもこのエラーを受け取ります:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.gG9C7Y
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd /root/rpmbuild/BUILD
+ rm -rf supportScripts-1
+ /usr/bin/gzip -dc /root/rpmbuild/SOURCES/supportScripts-1.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd supportScripts-1
/var/tmp/rpm-tmp.gG9C7Y: line 34: cd: supportScripts-1: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.gG9C7Y (%prep)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.gG9C7Y (%prep)
このエラーが発生する理由についてインターネットを調べましたが、これは%prep /%setupで使用しているマクロの引数が間違っていることが原因です。私はそれを修正するために交換に何が必要かわからず、それはイライラしています。これは私のスペックファイルがどのように見えるかです:
Name: supportScripts
Version: 1
Release: 1
Summary: All the support scripts bundled into an RPM.
BuildArch: noarch
Group: Development/Tools
License: GPL
URL: http://localhost
Source0: supportScripts-1.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
These are all the support tools we need for new Hardware Agent builds. This will package all the scripts support uses for new builds.
%prep
%setup -q
%install
mkdir -p "$RPM_BUILD_ROOT/opt"
cp -R * "$RPM_BUILD_ROOT/opt"
%files
/opt/
%clean
rm -rf $RPM_BUILD_ROOT
%post
chown -R support:support /opt/*
chmod -R 775 /opt/
更新:奇妙なのは、rpmが完全に組み込まれていることを発見したことです/root/rpmbuild/RPMS/noarch
。コマンドを実行しました:
rpm -ivh supportScripts-1-1.noarch.rpm
すべてのスクリプトを解凍し、奇跡的にそこにあります!私の次の質問は次のとおりです。私が行ったrpmbuildコマンドの問題を心配する必要がありますか?
RPMは、パッケージがUnixソフトウェアの標準パッケージガイドラインに従うことを期待しています。 GNUリリースガイドライン が一般的ですが、GNU以外のソフトウェアの多くもこれらのルールに従います。
具体的には、supportScriptsバージョン1というパッケージがあるため、tarballはsupportScripts-1.tar.gz
と呼ばれ、supportScripts-1
というディレクトリに解凍されると予想されます。
RPMをアームツイストして非標準のスキームに対処する方法はあるかもしれませんが、それが期待するものに従うのが最も簡単です。