RPMビルドエラー

RPMビルドエラー

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コマンドに問題があるかどうか心配する必要がありますか?

答え1

RPMは、あなたのパッケージがUnixソフトウェアの標準的なパッケージングガイドラインに従うことを期待しています。これGNUリリースガイド一般的ですが、GNUではない多くのソフトウェアもこれらの規則に従います。

具体的には、supportScripts、バージョン1というパッケージがあるため、tarballが呼び出されると予想され、supportScripts-1.tar.gzこれはディレクトリに抽出されると予想されますsupportScripts-1

RPMが標準外のシナリオに対処する方法はいくつかありますが、最も簡単な方法は予想されるシナリオに従うことです。

関連情報