|
次のページ
前のページ
目次へ
7. マルチ アーキテクチャ用 RPM パッケージの作成RPM は現在 Intel i386、Degital Alpha、Sparc 用にパッケージ を作成するために使う事ができます。SGI と HP のワークステーション上で も同様に動く事が報告されています。全てのプラットフォーム上で簡単に パッケージを作成するための特徴がいくつかあります。まず第一に /etc/rpmrc の中の "optflag" の指示です。それはソフトウェアを作成する 時に使われるフラグをアーキテクチャ特有の値に設定するために使う事がで きます。他の機能として spec ファイル中の "arch" マクロがあります。 それは作成するアーキテクチャに依存する異なる作業をするために使う事が できます。他に、ヘッダ中の "Exclude" の指示です。 7.1 サンプル spec ファイル以下は "fileutils" パッケージの spec ファイルの一部です。 Alpha と Intel 向けの両方を作成するための構成です。
7.2 optflagsこの例では、どのように /etc/rpmrc 中の "optflags" の指示が使われてい るか分かるでしょう。あなたが作成しているアーキテクチャに依存する適当 な値が RPM_OPT_FLAGS に与えられています。使用している(-m486 や -O2 のような) 通常の指示の代わりにこの変数を用いるには、パッケージの Makefile にパッチを当てなければなりません。 このソースパッケージをインストールすることによって必要となることをソー スを解凍して Makefile を調べることが 良いと感じるでしょう。 その時、Makefile のためのパッチをしらべ、何を変えねばならないかを見 てください。 7.3 マクロ%ifarch マクロはとても重要です。多くの場合一つのパッチもしくは特定の アーキテクチャ用の二つのパッチを作る必要があるでしょう。このような場 合、RPM は適したアーキテクチャ用のパッチのみを当てることができます。 上記の例として、fileutils は64ビットマシン向けのパッチを持っています。 明らかに、これは Alpha 上にのみ当てられるべきです。 それで、私達は、64ビットパッチのところに %ifarch マクロを付け加えま した。
これは Alpha 以外のアーキテクチャには当てられないパッチであることを 保証します。 7.4 パッケージから アーキテクチャを除外する全てのプラットホームのために一つのディレクトリでソース RPM パッケー ジをメンテナンスできるようにするために、私達はあるアーキテクチャ上で 作成されることからパッケージを"除外"するための機能を実装しました。こ れは以下のように実行できます。
そして正しくパッケージが作成されます。もしあるプラットホーム向けにア
プリケーションを移植していないのならば、あなたがしなければならないこ
と全てはソースパッケージの spec ファイルのヘッダに以下のような一行を
付け加えることです。
そのようにしてから、作成するプラットホーム上でパッケージを再作成して
ください。そうすれば、あなたは Intel 上で作成するためのソースパッケー
ジを手にすることになり、Alpha の部分は簡単に飛ばすことができます。
7.5 最後にマルチ アーキテクチャ用のパッケージを作成するために RPM を用いること はたいていパッケージを両方のアーキテクチャ上で作成するよりも簡単です。 しかしながら、作成するのがとても難しいパッケージを作成すればより簡単 になっていきます。いつものように、RPM パッケージを作成するのにつまっ た時に最もよい助けとなることは似たようなソースパッケージを調べること です。 次のページ 前のページ 目次へ |
[ |