DRBD RPM パッケージのビルド

[注記]注記

このセクションの情報は、DRBD 8.3.6 以上を対象としています。8.3.5 以前のバージョンでは、これとは異なるビルド方法を行っているため、バージョンアップしてください。

DRBD構築システムには、DRBD ソースツリーから直接RPMパッケージを構築する機能が含まれています。RPMを構築する場合にも、makeによる構築とインストールについては「構築の前提条件の確認」の条件が実質的に同様に適用されます。もちろん、加えてRPM構築ツールも必要です。

コンパイル済みヘッダが使用可能な場合に実行中のカーネルに対して構築を行う場合以外は、「カーネルソースツリーの準備」も参照してください。

構築システムでは2つの方法でRPMを構築することができます。最上位のメークファイルでrpmターゲットを呼び出す方法が簡単です。

$ ./configure
$ make rpm
$ make km-rpm

この方法では、定義済みのテンプレートからspecファイルが自動的に生成され、このspecファイルを使用してバイナリRPMパッケージを構築できます。

make rpm は複数のRPMパッケージを生成します。

表4.2 DRBDユーザスペースRPMパッケージ

パッケージ名説明依存性特記事項
drbdDRBDメタパッケージ他のすべての drbd-* パッケージトップレベルの仮想パッケージ。このパッケージをインストールすると、依存関係にある他のすべてのユーザスペースパッケージが一緒にインストールされます。
drbd-utils管理者ユーティリティ DRBDを実行するホストに必要なパッケージです。
drbd-udevudev 統合機能drbd-utils, udevDRBDデバイスに対するシンボリックの管理をしやすくします。
drbd-xenXen DRBD ヘルパースクリプトdrbd-utils, xenxendがDRBDリソースを自動管理できるようにします。
drbd-heartbeatDRBD Heartbeat 統合スクリプトdrbd-utils, heartbeat旧v1形式 Heartbeat クラスタがDRBDを管理できるようにします。
drbd-pacemakerDRBD Pacemaker 統合スクリプトdrbd-utils, pacemakerPacemakerクラスタがDRBDを管理できるようにします。
drbd-rgmanagerDRBD Red Hat Cluster Suite 統合スクリプトdrbd-utils, rgmanagerRed Hat Cluster Suite リソース管理システムの rgmanage がDRBDを管理できるようにします。
drbd-bashcompletionProgammable bash completiondrbd-utils, bash-completiondrbdadm ユーティリティで自動補完が使えるようにするためのものです。

その他、より自由度の高い方法として configure を使って spec ファイルを作成し、rpmbuild コマンドを実行する方法もあります。

$ ./configure --enable-spec
$ make tgz
$ cp drbd*.tar.gz `rpm -E _sourcedir`
$ rpmbuild -bb drbd.spec

両方のDRBDユーザスペースユーティリティとカーネルモジュールをビルドする場合には、次のコマンドを使います。

$ ./configure --enable-spec --with-km
$ make tgz
$ cp drbd*.tar.gz `rpm -E _sourcedir`
$ rpmbuild -bb drbd.spec
$ rpmbuild -bb drbd-km.spec

システムのRPM設定(または独自の~/.rpmmacros設定)が指定する場所にRPMが作成されます。

これらのパッケージを作成したら、システムの他のRPMパッケージと同様にインストール、アップグレード、アンインストールを行うことができます。

カーネルをアップグレードした場合は、新しいカーネルに合わせて新しいdrbd-kmパッケージを生成する必要があります。

一方、DRBD ユーザスペースパッケージの場合は、新規バージョンのDRBDにアップグレードしたときにのみ再作成が必要です。新規カーネルおよび新規バージョンのDRBDにアップグレードした場合は、両方のパ ッケージをアップグレードする必要があります。