1

私はrpmを構築しています。どこが間違っているのか教えてください。

私のスペックファイルはrpms.specで、内容は次のとおりです。

Summary: GNU indent
Name: rpms
Version: 1
Release: 1
Source0: %{name}-%{version}.tar.gz
License: GPL
Group: Development/Tools
%description
The GNU indent program reformats C code to any of a variety of
formatting standards, or you can define your own.
%prep
%setup -q
%build
./configure
make
%install
make install
%files
%defattr(-,root,root)
/usr/local/bin/indent
%doc /usr/local/info/indent.info
%doc %attr(0444,root,root) /usr/local/man/man1/indent.1
%doc COPYING AUTHORS README NEWS

tarファイルを/usr/ src / redhat / SOURCES /にもコピーしましたが、rpmbuild -ba rpms.specを実行すると、次のエラーが発生します。

rpmbuild -ba rpms.spec  Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.87218
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /usr/src/redhat/BUILD
+ rm -rf rpms-1
+ /bin/gzip -dc /usr/src/redhat/SOURCES/rpms-1.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd rpms-1 /var/tmp/rpm-tmp.87218: line 35: cd: rpms-1: No such file or directory error: Bad exit status from /var/tmp/rpm-tmp.87218 (%prep)

RPMビルドエラー:/var/tmp/rpm-tmp.87218(%prep)からの不正な終了ステータス

rpms-1のようなディレクトリはありません。BUILdディレクトリにディレクトリを作成しようとしましたが、機能しませんでした。

4

1 に答える 1

6

Name を rpms に、version を 1 に設定しました

したがって、rpmbuild は、rpms-1.tar.gz をアンパックすると、rpms-1 という名前のディレクトリが作成され、ビルドを実行するためにそこに入る必要があると想定します。

それをオーバーライドしたい場合は、%setup を

%setup -n yourdir

yourdir は、tar.gz ファイル内のソースがパッケージ化されているディレクトリです

于 2009-12-04T15:47:14.877 に答える