だから私はrpmbuildプロセスについて少し混乱しています。今、私は以前に作成したいくつかのスクリプトを維持していますが、ほとんどは動作しますが、一貫したアプローチを見つけることができないほど異なります。
一部は、パッケージング前にファイルを個別に(非常に退屈に)一時的な場所にコピーします。
一部は原作者の仕様ファイルを使用しており、設定やコードのみを変更します。
一部は自家製ですが、確かに私と同じレベルの理解で作られました!
特に私はこの方法を使いたいのですが、構築されたソフトウェアは問題ありませんが、make; make install
実際にシステムにインストールするのは難しいです。 make
make install
私がしたいのは、make installを使用してプログラムをパッケージ化する目的で作業ディレクトリに配置することです。ソフトウェアをターゲットコンピュータなどにインストールしたいのですが、/usr/bin
make 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セクションにあります。