Changes between Version 3 and Version 4 of self-build-creation


Ignore:
Timestamp:
2008/02/10 15:18:43 (16 years ago)
Author:
kazutaka
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • self-build-creation

    v3 v4  
    44 
    55 * 事前にターゲットの rpm パッケージを作成するのに必要な、spec と patch やその他のファイルを用意しておきます。 
    6  * 上記のファイル類を self-build-%{pkgname} な rpm パッケージに含めておきます。 
     6 * 上記のファイル類を self-build-%{target} な rpm パッケージに含めておきます。 
    77 * %post で以下の処理を一括して行います。 
    88   * まず rpm ビルド用のテンポラリディレクトリと作成 
     
    1010   * 続いて wget を使ってソースをダウンロード 
    1111   * 後は、rpmbuild -bb でターゲットのパッケージを所定のディレクトリにビルド 
    12  * apt/synaptic を使ってインストールされた場合は、Scripts::PM::Post:: というスロットを使って、rpm の DB に変更がコミットされた(= self-build-%{name} 自体のインストールが完了した)直後に、ヘルパースクリプトを呼び出して、所定のディレクトリに置かれたターゲットの rpm ファイルをインストールします。 
     12 * apt/synaptic を使ってインストールされた場合は、Scripts::PM::Post:: というスロットを使って、rpm の DB に変更がコミットされた(= self-build-%{target} 自体のインストールが完了した)直後にヘルパースクリプトを呼び出します。[[br]]このスクリプトが所定のディレクトリ(/var/chache/self-build)に置かれたターゲットの rpm ファイルをインストールします。 
    1313 
    1414=== 作り方 === 
    1515 
    16  1. 最初にターゲットのプログラム の rpm パッケージが作成できる spec ファイルを用意します。[[br]]もし patch やその他のファイルが必要な場合は、これも一緒に準備しておきます。 
    17  2. 上記の spec ファイルを使って rpm のバイナリパッケージが作成できることを確認したら、次に self-buiild-%{name} 用の spec を作成します。 
    18    2-1. ターゲットのプログラム用の spec や patch、その他のファイルを Source? で定義しておきます。 
    19    2-2. PreReq: にターゲットのプログラムの BuildRequires: と同じものを書いておきます。[[br]]こうすることで、%post でコンパイルする時に必要となるパッケージが一緒にインストールされます。 
    20    2-3. %install で Source? で定義した各種ファイルを全て  ${RPM_BUILD_ROOT}/%{_datadir}/self-build-sample 
     16 1. 最初にターゲットのプログラム(以下 lame を例に説明) の rpm パッケージが作成できる spec ファイルを用意します。[[br]]もし patch やその他のファイルが必要な場合は、これも一緒に準備しておきます。 
     17 1. 上記の spec ファイルを使って rpm のバイナリパッケージが作成できることを確認したら、次に self-buiild-lame 用の spec を作成します。 
     18   i. ターゲットのプログラム用の spec や patch、その他のファイルを Source? で定義しておきます。 
     19   i. !PreReq: にターゲットのプログラムの !BuildRequires: と同じものを書いておきます。[[br]]こうすることで、%post でコンパイルする時に必要となるパッケージが一緒にインストールされます。 
     20   i. %install で Source? で定義した各種ファイルを全て  ${RPM_BUILD_ROOT}/%{_datadir}/self-build-lame にインストールします。[[br]]またこれらのファイルを %files でも指定しておきます。 
     21   i. %post で rpm パッケージをビルドするヘルパースクリプトを、以下のように実行します。[[br]]%post[[br]]/usr/lib/rpm/self-build-rpm.sh self-build-lame lame.spec !http://...(ソースダウンロード URL) 
     22      * 1つ目の引数は、self-build パッケージの名前を指定します。[[br]]この名前を使って spec や patch 類が置いてあるディレクトリ(ここでは /usr/share/self-build-lame)を特定します。 
     23      * 2つ目の引数は、rpm のビルドに使用する spec ファイル名を指定します。 
     24      * 3つ目の引数は、ソースファイルをダウンロードするための URL を指定します。[[br]]ヘルパースクリプトはこの URL から wget を使ってソースをダウンロードしようとします。[[br]]3つめ以降の引数は全てソースの URL と解釈するので、複数のファイルをダウンロードする必要がある場合は、続けて指定できます。 
     25 1. spec ができたら、$ rpm -ba self-build-lame.spec で rpm パッケージを作成し、その後 root になって # rpm -Uvh self-build-lame-3.97-0vl3.i386.rpm のようにしてインストールし、ターゲットの rpm ファイルが /var/cache/self-build 以下にできあがることを確認します。 
     26 
     27  
     28実際にはパッケージ名やターゲットのプログラムの名前、ソースのダウンロード URL 等は %define でマクロとして最初に宣言しておいた方が管理しやすくなります。 
     29self-build-lame.spec がサンプルとして使えると思いますので、初めて作成する方は apt-get source self-build-lame を実行して ~/rpm/SPECS に展開された spec ファイルを参考してみてください。