私はCentOS4.1マシンで作業しており、rpm-buildを使用して、必要な場所にいくつかのバイナリを貼り付けるrpmを作成しています。私の.specは:
Summary: FOO1 Data
Name: foo
Version: 1.0
Release: 1
License: GNU
Group: FOO1
URL: www.foo1data.com
Source0: foo.src
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
%description
%define installdir $RPM_BUILD_ROOT/foo1/foo1-dummy
%prep
cd /usr/src/redhat/BUILD
rm -rf foo.src
cp -rp /usr/src/redhat/SOURCES/foo.src /usr/src/redhat/BUILD
if [ $? -ne 0 ]; then
exit $?
fi
cd foo.src
cd /usr/src/redhat/BUILD/foo.src
chown -R root.root .
chmod -R a+rX,g-w,o-w .
%build
cd foo.src/main/
./build_all
cd -
%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
mkdir -p %{installdir}/agg
install foo.src/main/agg/server/aggd %{installdir}/agg/aggd
install foo.src/main/tools/conmsgtest %{installdir}/agg/conmsgtest
mkdir -p $RPM_BUILD_ROOT/usr/local/bin
ln -f -s /foo1/foo1-dummy/agg/conmsgtest $RPM_BUILD_ROOT/usr/local/bin/conmsgtest
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/foo1/foo1-dummy/agg/aggd
/foo1/foo1-dummy/agg/conmsgtest
/usr/local/bin/conmsgtest
私のfoo-1.0-1.x86_64.rpmファイルは期待どおりに機能します。ただし、コマンドを実行すると、foo-1.0-1.src.rpmファイルが表示されます
rpm -ivh foo-1.0-1.src.rpm
/ usr / src / redhat/SOURCESディレクトリに追加されるfoo.srcディレクトリは空です。それでも、正しいスペックファイルがSPECSディレクトリに追加されます。
私は完全な初心者ですが、私のsrc rpmにソースが含まれるようにするために必要なことを誰かに教えてもらえますか?
また、コマンド
rpm --rebuildfoo-1.0-1.src.rpm
「--rebuild:unknown option」を返しますが、CentOSで使用できる同等のオプションはありますか?
編集:Satyaのおかげで、私はコマンドを試しました
rpmbuild --rebuildfoo-1.0-1.src.rpm
エラーが発生します
/var/tmp/rpm-tmp.19105: line 27: cd: foo.src/main/: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.19105 (%build)