3

実行するシェルコマンドを含むファイルが2つiptables-saveあり、チェーンを含むファイルを1つインストールする必要があります

スペックファイルを次の場所に書き込むにはどうすればよいですか?

  1. 2つのシェルファイルを/etc/にコピーします
  2. 実行するiptables-restore < /home/iptables-save

PS:私はこのハウツーを経験しました。残念ながら、私はこれの初心者です、私は解決策を見つけることができませんでした。

4

2 に答える 2

6

ちょうど昨日これをしなければなりませんでした。

通常のユーザーはルートを使用せず、そのようにスマートにビルドディレクトリを自宅に作成します。

mkdir -p ~/rpmbuild/BUILD
mkdir -p ~/rpmbuild/BUILDROOT
mkdir -p ~/rpmbuild/RPMS
mkdir -p ~/rpmbuild/SOURCES
mkdir -p ~/rpmbuild/SPECS
mkdir -p ~/rpmbuild/SRPMCS
mkdir -p ~/rpmbuild/tmp

次に、rpmbuild がビルドする場所を認識できるように rpmmacros を作成します。~/.rpmmacros の内容には、次のものが含まれている必要があります。

%packager Chris Hinshaw
%_topdir /home/chinshaw/rpmbuild
%_tmppath /home/chinshaw/rpmbuild/tmp

次に ~/rpmbuild/SPECS/ にある rpm スペックを作成します。このサンプル スペック ファイルは、デモ スクリプトと呼ばれるスクリプトを処理します。これは、etc に入る構成ファイルであり、スクリプトを 1 時間ごとに実行するようにスケジュールする 3 つ目の cron スクリプトです。

~/rpmbuild/SPECS/demoproject.spec

Name:   demoproject     
Version:    0.1 
Release:    1%{?dist}
Summary:    Demo script for doing something cool

Group:  DemoGroup
License:    GPL
Source0:    demoproject-0.1.tar.gz
BuildRoot:  %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)


%description
Demo project that does something interesting

%prep
%setup -q


%build


%install
install --directory $RPM_BUILD_ROOT/usr/sbin
install --directory $RPM_BUILD_ROOT/etc
install --directory $RPM_BUILD_ROOT/etc/cron.d/

install -m 0755 demoscript $RPM_BUILD_ROOT/usr/sbin
install -m 0744 demoscript.conf $RPM_BUILD_ROOT/etc
install -m 0744 cron/democronscript $RPM_BUILD_ROOT/etc/cron.d/

%clean
rm -rf $RPM_BUILD_ROOT


%files
/usr/sbin/demoscript
/etc/demoscript.conf
/etc/cron.d/democronscript


%changelog

私が見つけた唯一の癖は、3 つのソース ファイルを tarball に tar する必要があるということでした。

rpmbuild/SOURCES ディレクトリの内容は次のようになります。

$ cd ~/rpmbuild/SOURCES
$ ls 
demoproject-0.1.tar.gz
$ tar -tvzf demoproject-0.1.tar.gz
demoproject-0.1/
demoproject-0.1/demoscript.conf
demoproject-0.1/demoscript
demoproject-0.1/cron/
demoproject-0.1/cron/democronscript

あとはビルドするだけです rpmbuild -ba ~/rpmbuild/SPECS/demoproject.spec

これにより、arch rpm と srpm が作成され、~/rpmbuild/RPMS および ~/rpmbuild/SRPMS ディレクトリに配置されます。

于 2013-02-24T20:55:13.673 に答える
0

%postおよびセクションを使用して、%preunインストール後およびアンインストール前にアクションを実行し、シェルコマンドをそこに配置します。

于 2013-02-24T20:41:03.947 に答える