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 ファイルをインストールします。
作り方
- 最初にターゲットのプログラム の rpm パッケージが作成できる spec ファイルを用意します。
もし patch やその他のファイルが必要な場合は、これも一緒に準備しておきます。
- 上記の spec ファイルを使って rpm のバイナリパッケージが作成できることを確認したら、次に self-buiild-%{name} 用の spec を作成します。
2-1. ターゲットのプログラム用の spec や patch、その他のファイルを Source? で定義しておきます。
2-2. PreReq?: にターゲットのプログラムの BuildRequires?: と同じものを書いておきます。
こうすることで、%post でコンパイルする時に必要となるパッケージが一緒にインストールされます。
2-3. %install で Source? で定義した各種ファイルを全て ${RPM_BUILD_ROOT}/%{_datadir}/self-build-sample
Download in other formats: