Table of Contents
Samba Web siteからSambaソースファイルを入手できる。開発バージョンのSambaは、Subversionかrsync
を使って入手できる(訳注:現在はgit)。
(訳注:この節は現在古くなっている)Sambaは公開された環境で開発されている。開発者はSubversionを使って、新しいソースコードを“checkin”(“commit”としても知られる)する。Sambaの種々のSubversionブランチはこの章で説明される手順で匿名Subversion経由でアクセスできる。
この章は、SambaWebサイトにある手順を変更したものである。
samba.orgのマシンはSamba,rsync,distcc, ccacheとjitterbugを含むいくつかのパッケージのソースコードへアクセスできるSubversionリポジトリに自由にアクセスできるサーバを動かしている。このホスト上のSubversionサーバにアクセスするには2つの方法がある。
お好みのWWWブラウザ経由でソースコードにアクセスできる。これにより、リポジトリの個別のファイルの内容、リビジョン履歴、特定のファイルに対するコミットログにアクセスできる。リポジトリ上の任意の2つのバージョン間での差分表示を得ることもできる。
通常のSubversionクライアント経由でソースコードにアクセスすることもできる。そうすると、リポジトリに対してより多くの制御ができ、完全なソースコードツリーをチェックアウトでき、通常のSubversionコマンド経由で最新版に追従できる。もしもあなたが開発者であれば、これは好ましいアクセス方法であり、通常のブラウザは好ましくない。
SubversionでSambaのソースをダウンロードできるように、するためには、Subversionクライアントが必要である。使用しているディストリビューションに入っているかもしれないし、そうでなければ、http://subversion.tigris.org/からソースをダウンロードできる。
匿名Subversion経由でアクセスするためには、以下のステップを使う。
Procedure 42.1. Subversionを使うSambaの検索
最新のSubversionのコピーをインストールする。必要なものすべては、 Subversionクライアントバイナリのコピーである。
以下のコマンドを動かす
svn co svn://svnanon.samba.org/samba/trunk samba
.
これは、最新のSambaソースコード(通常次のメジャーリリースになるブランチ)を含む、 samba
と呼ばれるディレクトリを作成する。これは現在 3.1開発ツリーに連動している。
trunk以外のSubversionブランチは、チェックアウトするときに、branches/BRANCH_NAME というURLによって得られる。ブランチ名の一覧は、Samba Webサイトの “Development”のページから得られる。最新の3.0リリースコードを得たい という共通の要求がある。これは以下のコマンドを使うことによってできる:
svn co svn://svnanon.samba.org/samba/branches/SAMBA_3_0 samba_3
.
最新のコードの変更にマージしたい場合は、Sambaディレクトリ内で以下のコマンドを使う:
svn update
pserver.samba.org
も、 pserver というSambaのサイトの所から、Subversionツリーのほとんどの部分のパックされてない コピーをエクスポートでき、また、 rsync という、Sambaの匿名rsyncサーバ経由でも同じようにできる。ftpよりはrsyncの方が、 rsyncはデータを圧縮転送できるのでお勧めであり、また、抜けているデータのみを 転送出来るという、部分更新が出来て、オーバヘッドが少ないという点でもお勧めで ある。rsyncについてのより詳細な情報は、 the rsync home page を参照のこと。
アンパックされたツリーの欠点は、Subversionのように、ローカルな変更の自動マージを サポートしないと言うことである。rsync
によるアクセスは、 初期導入に最も便利である。
インストールする前に、任意のソースファイルのPGP署名を検証することを強く推奨する。ミラーサイトからダウンロードしていないとしても、PGP署名の検証は、標準的な習慣とすべきである。多くの人は現在PGPの代替としてGNU GPGツールを使っている。GPGはPGPの代わりとして使える。
そんなわけで、以下のようにしてファイルをダウンロードする:
$
wget http://us1.samba.org/samba/ftp/samba-3.0.20.tar.asc
$
wget http://us1.samba.org/samba/ftp/samba-pubkey.asc
最初のファイルはSambaソースファイルのPGP署名である。もう1つはSambaの公開PGPキーそれ自身である。以下のようにしてPGPキーをインポートする:
$
gpg --import samba-pubkey.asc
そして、Sambaソースコードの正当性を以下のようにして検査する:
$
gzip -d samba-3.0.20.tar.gz
$
gpg --verify samba-3.0.20.tar.asc
もしも、“Good signature from Samba Distribution Verification Key...,”というようなメッセージが表示されたならば、すべて問題はない。信頼性の関係についての警告は無視して良い。以下のような表示が出たら問題である:
gpg: BAD signature from “Samba Distribution Verification Key”
tar形式のソースコードを展開後、次のステップは、使用しているOSプラットフォームに Sambaが適合するように、設定(configuration)を行う。もしもソースディレクトリが configure
スクリプトを含んでいないのであれば、以降を行う ために、構築作業が必要である。configureスクリプトの構築はautoconfの正しい バージョンが必要である。ど必要とされるバージョンのautoconfがある場合、 以下を実行して生成されるスクリプトでconfigureスクリプトを生成できる。
root#
cd samba-3.0.20/sourceroot#
./autogen.sh
バイナリを構築するためには、ソースディレクトリ中で、 ./configure
プログラムを動かす。これは、使用している OS用にSambaを自動的に設定する。もしも特別な要求があるならば、最初に 以下のように起動しても良いだろう:
root#
./configure --help
これは、どのような特別なオプションが有効に出来るかの一覧を表示する。その後、 必要な任意の引数を付けて、./configure
を実行する:
root#
./configure
[... arguments ...]
root#
make
一度コンパイルが成功すると、以下のようなコマンドを実行することで、 バイナリとマニュアルページをインストールできる:
root#
make install
ある人は、バイナリファイルとマニュアルページを分離してインストールすることを 好んでいる。もしもそうしたいのであれば、以下を実行することで、バイナリファイルを インストールできる:
root#
make installbin
マニュアルページは以下のコマンドでインストールできる:
root#
make installman
もしも、以前のバージョンからアップグレードするのであれば、古いバージョンの バイナリは“.old”という拡張子を付けて改名される。 以下を実行することで、前のバージョンに戻ることが出来る:
root#
make revert
上記を見て分かるとおり、Sambaの構築とインストールは災難を引き起こす事はない!
ADSをサポートするようにSambaをコンパイルするためには、以下のものをシステムに インストールする必要がある:
MIT あるいは Heimdal Kerberos開発ライブラリ (ソース、あるいはパッケージからのどちらかからインストール)
OpenLDAP開発ライブラリ。
もしも、使用しているKerberosライブラリが標準でない位置にあるならば、 以下のconfigure オプションを追加するのを忘れないこと。 --with-krb5=
. DIR
configrue を実行後、生成されたinclude/config.h
が、 以下のような行を含んでいるかを確認する:
#define HAVE_KRB5 1#define HAVE_LDAP 1
もしもそうでない場合、configureはインストールされているKRB5ライブラリか LDAPライブラリを見つけるのに失敗している。なぜそうなったかを config.log
をみて確認して修正する。
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はバイナリパッケージを構築する事が出来るのに必要とされるだろうHeimdal パッケージをインストールする。使用しているシステム上に、開発ライブラリが インストールされているかを調べるべきである。
SuSE Linux のSamba RPMはKerberosをサポートする。SuSE Linux固有の設定に関連する 情報は、使用しているSuSE Linuxシステムのドキュメントを参照して欲しい。さらに、 SuSEは使用可能な機能を最大限提供するように、Sambaパッケージのメンテナンスをとても 頻繁に行っている。使用可能な、SuSEが提供しているパッケージの使用について考慮 すべきである。
smbd, winbindd と nmbdの起動を、デーモンかinetd からの起動のどちらかにするかを選ぶ必要がある。両方同時に行ってはいけない! inetdによって必要時に起動するように、 inetd.conf
にそれらを記述するか、コマンドラインか、 /etc/rc.local
に記述することで、デーモンとして起動できる。 コマンドラインオプションの詳細についてはマニュアルを参照のこと。どのユーザで Sambaを起動する必要があることについての部分を注意深く読むこと。ほとんどの場合、 rootで起動する必要がある。
推奨される、デーモンによる方法を使ってsmbd と nmbdを開始することの利点は、 最初の接続要求時に、若干より迅速に反応すると言うことである。
以下は、もしもNIS、NIS+あるいはLDAPが分散されたサービスマップを 使っている場合は異なる。
/etc/services
を見る。ポート139/tcpに何が定義されて いるだろうか?もしも何も定義されていないならば、以下のように行を追加する:
netbios-ssn 139/tcp
137/udpに対して、以下のようなエントリを同様に追加する:
netbios-ns 137/udp
次に、/etc/inetd.conf
を編集し、以下のように2行追加する:
netbios-ssn stream tcp nowait root /usr/local/samba/sbin/smbd smbd netbios-ns dgram udp wait root /usr/local/samba/sbin/nmbd nmbd
/etc/inetd.conf
の正しい文法はUNIX毎に異なる。ガイドの inetd.conf中の他の項目を参照すること。
いくつかのディストリビューションはinetdの代わりにxinetdを使っている。 設定情報についてはxinetdのマニュアルを参照すること。
いくつかのUNIXではすでに/etc/services
中に netbios_ns(下線に注意)のようなエントリが存在している。整合性を取るために、 /etc/services
か/etc/inetd.conf
を 編集する必要がある。
多くのシステムでは、使用しているネットワークインタフェースのIPアドレスと ネットマスクを指定するために、 smb.conf
中で interfacesオプションを使う必要があるかもしれない。 使用しているネットワークでの、ブロードキャストが何であるかを知らないのであれば、 rootでifconfigを起動する。nmbdは実行時にそれを 決めようとするが、ある種のUNIXでは失敗する。
多くのUNIXは、inetd.conf
中で、コマンドライン上におおよそ 5つのパラメータのみを受け付ける。これは、オプションと引数間でスペースが使えない という事を意味するので、そうしたくなければ、スクリプトを使い、 inetd
経由でスクリプトを起動する。
おそらく以下のようにHUPを送ることで、inetdを 再起動する:
root#
killall -HUP inetd
サービスをデーモンとして起動するには、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
を 実行することが出来る。
これを停止するには、プロセスnmbd と smbdにkillシグナルを送る。
もしも、SVR4形式のinitシステムを使っているならば、そのシステムにSambaを 適合するように、examples/svr4-startup
スクリプトを みてやってもよいだろう。
Red Hat Linuxは標準的なインストール状態ではすべてのSambaコンポーネントが 常時含まれるわけではない。そのためRed Hat Linuxのバージョンによっては、 インストールCDROMメディアにあったとしても、winbindユーティリティをインストール しない。システム上にwinbindd
があるかをチェックすること:
root#
ls /usr/sbin/winbindd/usr/sbin/winbindd
これは、適切なRPMパッケージがインストールされていることを意味する。以下の応答は、 インストールされていない場合である:
/bin/ls: /usr/sbin/winbind: No such file or directory
この場合、winbindd
を使うつもりであるならば、インストールが 必要である。samba-winbind RPMをCDROMインストールメディアから捜し、以下の Red Hatガイドラインに従ってインストールする。
Sambaの起動の手順の概要を以下で説明する。Sambaを起動する前に、Sambaの smb.conf
をきちんと設定しておくこと。設定後、以下のようにしてSambaを 起動する:
root#
service smb startroot#
service winbind start
このステップで nmbd, smbd と winbinddを起動する。
システムが再起動したときに、自動的にこれらのサービスが再起動するようにするには、 以下を実行する:
root#
chkconfig smb onroot#
chkconfig winbind on
Sambaは毎再帰同時に自動的に起動するようになる。
Novell SuSE Linux 製品は自動的にすべての基本的なSambaコンポーネントを既定値の インストール作業でインストールする。smb.conf
ファイルを設定後、以下を行う 事でSambaを起動する:
root#
rcnmb startroot#
rcsmb startroot#
rcwinbind start
以下のコマンドを実行後、Sambaはシステム再起動後に自動的に起動する:
root#
chkconfig nmb onroot#
chkconfig smb onroot#
chkconfig winbind on
これで、Sambaサーバはシステム再起動後に自動的に起動する。