第13回 qmailをより使いこなすTips(インストール関連編)

鶴長 鎮一
2002/11/2

RPMでインストールしたqmailにパッチを当てるには

 「RPMでインストールしたい その1、2」で紹介したqmail-1.03-109memphis.src.rpmには、qmail-date-localtime.patchなどのパッチが適用されていません。そこで、パッチを適用するために少々手を加える必要があります。

 通常はSRPMファイルのインストール後、/usr/src/redhat/SPECS(または/usr/src/turbo/SPECS、/var/src/rpm/SPECSなど)ディレクトリ中のSPECファイルと呼ばれる定義ファイルを書き換えることで修正できます。ただし、qmail-1.03-109memphis.src.rpmはすでにバイナリデータを含んでいます。そこで、そのバイナリデータのSRPMであるvar-qmail-create-1.03-109memphis.src.rpmを用意する必要があります。手順を整理すると次のようになります。

  1. var-qmail-create-1.03-109memphis.src.rpmのインストール
  2. パッチファイルを/usr/src/redhat/SOURCESに準備
  3. /usr/src/redhat/SPECS/var-qmail-create.specファイルを編集
  4. var-qmail-create.specを使用してrpmbuildを実行し、新しいqmail-1.03-109memphis.src.rpmを作成
  5. 作成したqmail-1.03-109memphis.src.rpmで「RPMでインストールしたい その1」を実行

SRPMの準備とSPECファイルの編集

 では、qmail-date-localtime.patchの適用を例に手順を見ていきましょう。var-qmail-create-1.03-109memphis.src.rpmをインストールしたら、qmail-date-localtime.patchファイルを/usr/src/redhat/SOURCES/ディレクトリに用意します。

# rpm -Uvh http://www.qmail.org/rpms/var-qmail/var-qmail-create-1.03-109memphis.src.rpm
# wget ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch
# mv qmail-date-localtime.patch /usr/src/redhat/SOURCES/
注:パスはRed Hat Linuxの場合。

 ファイルの用意ができたらSPECファイルを編集します。SPECファイルは大まかに次のようなブロックで構成されています。パッチを当てる処理の記述を2カ所追加します。

Packager: mw@moni.msci.memphis.edu (RPMパッケージの作者)
Release: 109memphis (RPMパッケージのリリース番号)
Buildroot: /tmp/%name-root (仮想インストールで利用するディレクトリ)
Copyright: Check with djb@cr.yp.to (RPMパッケージの著作権、ソースの著作権にも注意)
ExclusiveOS: Linux (パッケージを作成できるOS)
Group: Utilities/System (パッケージのカテゴリ)
Name: var-qmail-create (RPMパッケージの名前)
Requires: rpm >= 3 (依存性のあるパッケージとそのバージョン)
Source0: ftp://cr.yp.to/software/qmail-%version.tar.gz (RPMパッケージ作成のためのソース名。SOURCESのディレクトリに置いておく必要がある)
Source: ftp://ftp.hogehoge.org/hoge-1.1.tar.gz (ソースの入手先を明記)
Source1: %name-%vsrcname.spec
Source2: %name-add-account
Source3: %name-add-group
Source4: %name-Makefile
Source5: %name-README_rpm
Source6: %name.mem_replace.sh
Patch0: qmail-date-localtime.patch ←追加(パッチファイル。SOURCESに置いておく)
Summary: Creates binary package for qmail (パッケージの説明)
URL: http://www.qmail.org/ (詳しい情報が得られるURL)
Version: 1.03 (ソースのバージョン名)

%description (パッケージの説明)

%prep (umask 022に設定し、$RPM_BUILD_DIRへcdしてソースツリーが存在していたらrm -rfを実行)

%setup -q -n qmail-%version (ソースファイルの展開)

%patch0 -p1 ←追加(パッチの適用)

%build (make、configureを記述し、実際のビルド作業を指定する)

%install (make installなど実際のインストール作業を指定する)

%clean (ビルドで利用したディレクトリツリーを消去)

%post (パッケージをインストールした後にすることを指定)

%files (インストールするファイルを記載)
参考:
http://www.karaba.org/~mk/rpm/rpm-ref.html
http://www.linux.or.jp/JF/JFdocs/RPM-BUILD-HOWTO.html

 SPECファイルにはさまざまなタグがあり、インストールをきめ細かく制御できますが、ここではパッチを適用するだけにとどめます。パッチを複数当てる必要がある場合は、前半の記述と後半の記述を同じように増やします。

Patch1:SOURCESディレクトリに置いたパッチファイル名
Patch2: ...
前半

%patch1 -p1 (-pXはpatch -pXと同じように指定)
%patch2 -p1
後半

修正SPECファイルを使ったリビルド

 SPECファイルの変更が完了したら、rpmbuild()を実行します。その後、var-qmail-create-1.03-109memphis.i386.rpmをあらためてインストールします。

注:rpm バージョン3以前の場合はrpmコマンドを使用します。

# vi /usr/src/redhat/SPECS/var-qmail-create.spec
# rpmbuild -ba /usr/src/redhat/SPECS/var-qmail-create.spec
# rpm -Uvh ../RPMS/i386/var-qmail-create-1.03-109memphis.i386.rpm
注:パスなどはRed Hat Linuxの場合。

 この後は、「RPMでインストールしたい その1」の手順に戻ります。

次回予告

 次回は最終回です。Linux Square会議室でも話題となったrelay-ctrl-3.1.1の設定方法やSMTP認証、qmailをより便利にするTipsなどを紹介します。

1/2

Index
実用qmailサーバ運用・管理術
  Page 1
RPMでインストールしたい その1
 qmailインストールの前に
 RPMによるqmailのインストール
 RPMによるtcpserverのインストールと設定
RPMでインストールしたい その2
 各種パッケージのインストール
 各種設定の実施
  Page 2
RPMでインストールしたqmailにパッチを当てるには 
 SRPMの準備とSPECファイルの編集
 修正SPECファイルを使ったリビルド
次回予告

連載 実用qmailサーバ運用・管理術


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH