RPM%インストールセクション

RPM%インストールセクション

だから私はrpmbuildプロセスについて少し混乱しています。今、私は以前に作成したいくつかのスクリプトを維持していますが、ほとんどは動作しますが、一貫したアプローチを見つけることができないほど異なります。

  • 一部は、パッケージング前にファイルを個別に(非常に退屈に)一時的な場所にコピーします。

  • 一部は原作者の仕様ファイルを使用しており、設定やコードのみを変更します。

  • 一部は自家製ですが、確かに私と同じレベルの理解で作られました!

特に私はこの方法を使いたいのですが、構築されたソフトウェアは問題ありませんが、make; make install実際にシステムにインストールするのは難しいです。 makemake install

私がしたいのは、make installを使用してプログラムをパッケージ化する目的で作業ディレクトリに配置することです。ソフトウェアをターゲットコンピュータなどにインストールしたいのですが、/usr/binmake installを実行するときにソフトウェアをインストールしたいと思います/tempDir/usr/bin。それは言いますか?基本的に私は私がパッケージ化するソフトウェアでシステムを汚染するのを避けたいと思います。すべてを接続するのは正しいとは思えません。設定エラーでなければなりませんか、それとも正常ですか?

私が使用している仕様ファイルから抜粋しました。ソースファイルをコピーして/usr/src/redhat/SOURCES使用してくださいrpmbuild -bb <specfilename>

BuildRoot:      /var/tmp/%{name}-%{version}-root
Source0:        %{name}-%{version}.tar.gz

%prep
%setup -q

%build
./configure <config opts>
make 

%install
rm -rf $RPM_BUILD_ROOT
make install

答え1

パッケージ化するファイルは、シャドウツリーにマウント/分離する必要があります。

これは通常、] DESTDIRをオーバーライドすることによって行われます。

make DESTDIR=%{buildroot} install

%installセクションにあります。

関連情報