Chapter 39. Sambaのコンパイル方法

Jelmer R. Vernooij

The Samba Team

John H. Terpstra

Samba Team

Andrew Tridgell

Samba Team

22 May 2001

18 March 2003

June 2005

Table of Contents

GIT経由でのSambaソースコードへのアクセス
概要
rsyncとftp経由によるSambaソースへのアクセス
SambaのPGP署名の検証
バイナリの構築
Active Directoryサポートを伴うSambaのコンパイル
smbd nmbdwinbinddの起動
smbdをデーモンとして起動する

Samba Web siteからSambaソースファイルを 入手できる。開発バージョンのSambaは、Subversionかrsyncを使って 入手できる(訳注:現在はgit)。

GIT経由でのSambaソースコードへのアクセス

概要

Sambaは公開された環境で開発されている。開発者はGITを使って、新しい ソースコードをcheckin(commitとしても知られる) する。この章は、 Using Git for Samba Development page Samba Wikiサイトを参照のこと。

rsyncとftp経由によるSambaソースへのアクセス

pserver.samba.orgも、 unpacked というSambaのサイトの所から、Subversionツリーのほとんどの部分のパックされてない コピーをエクスポートでき、また、 rsync という、Sambaの匿名rsyncサーバー経由でも同じようにできる。ftpよりはrsyncの方が、 rsyncはデータを圧縮転送できるのでお勧めであり、また、抜けているデータのみを 転送出来るという、部分更新が出来て、オーバーヘッドが少ないという点でもお勧めで ある。rsyncについてのより詳細な情報は、 the rsync home page を参照のこと。

アンパックされたツリーの欠点は、GITのように、ローカルな変更の自動マージを サポートしないと言うことである。rsyncによるアクセスは、 初期導入に最も便利である。

SambaのPGP署名の検証

インストールする前に、任意のソースファイルのPGP署名を検証することを強く推奨する。 ミラーサイトからダウンロードしていないとしても、PGP署名の検証は、標準的な習慣と すべきである。多くの人は現在PGPの代替としてGNU GPGツールを使っている。GPGは PGPの代わりとして使える。

そんなわけで、以下のようにしてファイルをダウンロードする:

$ wget http://samba.org/samba/ftp/samba-latest.tar.asc
$ wget http://samba.org/samba/ftp/samba-latest.tar.gz
$ wget http://samba.org/samba/ftp/samba-pubkey.asc

最初のファイルはSambaソースファイルのPGP署名である。もう1つはSambaの公開PGPキーそれ自身 である。以下のようにしてPGPキーをインポートする:

$ gpg --import samba-pubkey.asc

そして、Sambaソースコードの正当性を以下のようにして検査する:

$ gzip -d samba-latest.tar.gz
$ gpg --verify samba-latest.tar.asc

もしも、Good signature from Samba Distribution Verification Key..., というようなメッセージが表示されたならば、すべて問題はない。信頼性の関係についての 警告は無視して良い。以下のような表示が出たら問題である:

gpg: BAD signature from Samba Distribution Verification Key

バイナリの構築

バイナリを構築するためには、ソースディレクトリの最上位で、 ./configureプログラムを動かす。これは、使用している OS用にSambaを自動的に設定する。もしも特別な要求があるならば、最初に 以下のように起動しても良いだろう:

root# ./configure --help

これは、どのような特別なオプションが有効に出来るかの一覧を表示する。その後、 必要な任意の引数を付けて、./configureを実行する:

root# ./configure [... arguments ...]

以下を実行して、バイナリを生成する:

root#  make

一度コンパイルが成功すると、以下のようなコマンドを実行することで、 バイナリとマニュアルページをインストールできる:

root#  make install

Active Directoryサポートを伴うSambaのコンパイル

ADSをサポートするようにSambaをコンパイルするためには、以下のものをシステムに インストールする必要がある:

  • MIT あるいは Heimdal Kerberos開発ライブラリ (ソース、あるいはパッケージからのどちらかからインストール)

  • OpenLDAP開発ライブラリ。

もしも、使用しているKerberosライブラリが標準でない位置にあるならば、 以下のconfigure オプションを追加するのを忘れないこと。 --with-krb5=DIR.

configrue を実行後、生成されたbin/default/include/config.hが、 以下のような行を含んでいるかを確認する:

#define HAVE_KRB5 1
#define HAVE_LDAP 1

もしもそうでない場合、configureはインストールされているKRB5ライブラリか LDAPライブラリを見つけるのに失敗している。なぜそうなったかを bin/config.logをみて確認して修正する。

Debian用の、必要とされるパッケージのインストール

Debianでは、以下のパッケージのインストールが必要である:

  • libkrb5-dev

  • krb5-user

Red Hat Linux用の、必要とされるパッケージのインストール

Red Hat Linuxでは、少なくとも:

  • krb5-workstation (for kinit)

  • krb5-libs (for linking with)

  • krb5-devel (because you are compiling from source)

を標準開発環境に追加する必要があることを意味する。

もしも、使用しているシステム上にこれらのファイルがインストールされて いないならば、どこにそれらがあるかをインストールCDでチェックすべきであり、 使用しているツールにあわせてインストールする。もしもどのツールが使っている かが分からない場合は、Red Hat Linuxのドキュメントを参照すること。

SuSE Linuxパッケージでの要求

SuSE Linuxはバイナリパッケージを構築する事が出来るのに必要とされるだろうHeimdal パッケージをインストールする。使用しているシステム上に、開発ライブラリが インストールされているかを調べるべきである。

SuSE Linux のSamba RPMはKerberosをサポートする。SuSE Linux固有の設定に関連する 情報は、使用しているSuSE Linuxシステムのドキュメントを参照して欲しい。さらに、 SuSEは使用可能な機能を最大限提供するように、Sambaパッケージのメンテナンスをとても 頻繁に行っている。使用可能な、SuSEが提供しているパッケージの使用について考慮 すべきである。

smbd nmbdwinbinddの起動

smbd, winbinddnmbdの起動を、デーモンかinetd からの起動のどちらかにするかを選ぶ必要がある。両方同時に行ってはいけない! inetdによって必要時に起動するように、 inetd.confにそれらを記述するか、コマンドラインか、 /etc/rc.localに記述することで、デーモンとして起動できる。 コマンドラインオプションの詳細についてはマニュアルを参照のこと。どのユーザーで Sambaを起動する必要があることについての部分を注意深く読むこと。ほとんどの場合、 rootで起動する必要がある。

推奨される、デーモンによる方法を使ってsmbdnmbdを開始することの利点は、 最初の接続要求時に、若干より迅速に反応すると言うことである。

smbdをデーモンとして起動する

サービスをデーモンとして起動するには、startsmbという、 下記のようなスクリプトを作成すべきである。

#!/bin/sh
/usr/local/samba/sbin/smbd -D
/usr/local/samba/sbin/winbindd -D
/usr/local/samba/sbin/nmbd -D

chmod +x startsmbでこれを実行可能にする。

手動か、/etc/rc.localからstartsmbを 実行することが出来る。

これを停止するには、プロセスnmbdsmbdにkillシグナルを送る。

Note

もしも、SVR4形式のinitシステムを使っているならば、そのシステムにSambaを 適合するように、examples/svr4-startupスクリプトを みてやってもよいだろう。

Red Hat LinuxでのSambaの起動

Sambaの起動の手順の概要を以下で説明する。Sambaを起動する前に、Sambaの smb.confをきちんと設定しておくこと。設定後、以下のようにしてSambaを 起動する:

root#  service smb start
root#  service winbind start

このステップで nmbd, smbdwinbinddを起動する。

システムが再起動したときに、自動的にこれらのサービスが再起動するようにするには、 以下を実行する:

root#  chkconfig smb on
root#  chkconfig winbind on

Sambaは毎再帰同時に自動的に起動するようになる。

Novell SUSE LinuxにおけるSambaの起動

Novell SuSE Linux 製品は自動的にすべての基本的なSambaコンポーネントを既定値の インストール作業でインストールする。smb.confファイルを設定後、以下を行う 事でSambaを起動する:

root#  rcnmb start
root#  rcsmb start
root#  rcwinbind start

以下のコマンドを実行後、Sambaはシステム再起動後に自動的に起動する:

root#  chkconfig nmb on
root#  chkconfig smb on
root#  chkconfig winbind on

これで、Sambaサーバーはシステム再起動後に自動的に起動する。