== self-build パッケージについて == === 仕組みの概要 === * 事前にターゲットの rpm パッケージを作成するのに必要な、spec と patch やその他のファイルを用意しておきます。 * 上記のファイル類を self-build-%{pkgname} な rpm パッケージに含めておきます。 * %post で以下の処理を一括して行います。 * まず rpm ビルド用のテンポラリディレクトリと作成 * 次に patch やその他のファイルを /テンポラリ/rpm/SOURCES にコピー * 続いて wget を使ってソースをダウンロード * 後は、rpmbuild -bb でターゲットのパッケージを所定のディレクトリにビルド * apt/synaptic を使ってインストールされた場合は、Scripts::PM::Post:: というスロットを使って、rpm の DB に変更がコミットされた(= self-build-%{name} 自体のインストールが完了した)直後に、ヘルパースクリプトを呼び出して、所定のディレクトリに置かれたターゲットの rpm ファイルをインストールします。 === 作り方 === 1. 最初にターゲットのプログラム の rpm パッケージが作成できる spec ファイルを用意します。[[br]]もし patch やその他のファイルが必要な場合は、これも一緒に準備しておきます。 2. 上記の spec ファイルを使って rpm のバイナリパッケージが作成できることを確認したら、次に self-buiild-%{name} 用の spec を作成します。 2-1. ターゲットのプログラム用の spec や patch、その他のファイルを Source? で定義しておきます。 2-2. PreReq: にターゲットのプログラムの BuildRequires: と同じものを書いておきます。[[br]]こうすることで、%post でコンパイルする時に必要となるパッケージが一緒にインストールされます。 2-3. %install で Source? で定義した各種ファイルを全て ${RPM_BUILD_ROOT}/%{_datadir}/self-build-sample