Samba 3.0の全貌 改訂版[前編]
 〜 Samba 3.0のインストールと国際化の現状 〜

たかはしもとのぶ <monyo@home.monyo.com>
2004/5/19

Samba 3.0系列のインストール

 Samba 3.0系列のインストールについて、簡単に説明します。

 最近は、OSやディストリビューションのパッケージとしてSamba 3.0系列がインストールされる場合も増えてきているので、まずは確認してみてください。例えば、RHEL 3.0やFedora Coreに付属するSambaのパッケージはSamba 3.0系列になっており、後述する日本語ファイル名サポートの問題もありません。しかし、ディストリビューションによっては日本語サポートの問題のため、パッケージがあってもそのまま使用できるとは限りません。

 少なくとも、後述するunix charsetパラメータの値としてeucJP-msを指定して日本語ファイル名がEUCで書き込まれるようであれば、日本語ファイル名サポートは問題なしと考えてよいでしょう。

非公式パッケージからのインストール

 ディストリビューション付属のパッケージが使えない環境で、手軽にSamba 3.0系列を試してみたい場合、Linuxには以下のような方法があります。

Red Hat系ディストリビューション

 Red Hat系のLinuxディストリビューションについては、以下のURLから入手できる日本Sambaユーザ会提供の非公式なRPMパッケージを利用することが可能です。

  http://ftp.samba.gr.jp/pub/samba-jp/samba-3.0-ja/
  ftp://ftp.samba.gr.jp/pub/samba-jp/samba-3.0-ja/

 ここからSRPMファイルを入手し、リビルドしてRPMパッケージを作成して使用するのがよいでしょう。

 なお、パッケージは

  • glibcを入れ替えるもの
  • GNU libiconvをインストールする(もしくは置き換える)もの

の2種類あります。glibcの入れ替えはほかへの影響が大きいので、取りあえず試したい場合はGNU libiconvをインストールするパッケージがよいでしょう。

 SRPMファイルからのパッケージのリビルドは、以下のようなコマンドで行います。

# cd /usr/src/redhat/SRPMS/
# rpm --rebuild libiconv-1.8-1.src.rpm
# rpm --rebuild samba-3.0.0-3iconv.src.rpm
SRPMの再コンパイル
注:Red Hat Linux 8以降の場合、rpmコマンドではなくrpmbuildコマンドを実行すること。また、必要なSRPMファイルは、あらかじめ/usr/src/redhat/SRPMS以下にコピーしておくこと。

 リビルドに成功すると、/usr/src/redhat/RPM/RPMS/i386以下にRPMファイルが作成されるので、これを用いてインストールを行ってください。なお、リビルド時にSambaのコンパイルが行われるので、GCCをはじめとする一般的な開発環境に加え、LDAP、Kerberosなどの開発環境がインストールされている必要があります。

Debian

 Debian GNU/Linux 3.0などを使用している場合は、斉藤氏が提供しているパッケージを使用することができます。インターネットと通信が可能な環境であれば、/etc/apt/sources.listファイルに、

deb http://everybody.good-day.net/~nsaito samba3/
/etc/apt/sources.listファイルの修正点

のような記述を追加したうえで、以下のようにしてインストールを行ってください。

# apt-get update
# apt-get install locales
# apt-get install samba
インストールに必要なコマンド

ソースからのインストール

 上記の方法が使えない、あるいは最新版を使用したい場合などは、ソースからのインストールとなります。この場合、通常はSambaのインストールに先立ってGNU libiconvのインストールが必要です。また、LDAP認証データベースやADドメインのサポート機能を有効にする場合は、LDAPやKerberosの開発環境もインストールしておく必要があります。

GNU libiconvのインストール

 Samba 3.0系列における日本語を含む文字コード変換は、後述するように、Samba外部のiconv()関数によって実現します。iconv()関数は、各種UNIXやLinuxディストリビューションのglibcに存在するのですが、ほとんどのiconv()関数は、

  • 機種依存文字などがサポートされていない
  • Unicodeとの文字コードの変換テーブルがWindows完全互換でない

といった問題があり、Sambaで使用するには問題があります。

 森山氏の尽力により、この点はglibc-2.3.3以降では解消されました。またglibc-2.2.5以降とGNU libiconv-1.8以降でも、同じく森山氏の作成した日本語ロケールサポートパッチを適用することで対処可能です。ただし、glibcの置き換えは影響が大きいため、基本的には日本語ロケールパッチを適用したGNU libiconvをインストールした方がよいでしょう。

 原稿執筆時点におけるGNU libiconvの最新版は1.9.2ですが、日本語ロケールパッチの最新版は、ミラクル・リナックス社のSamba 3.0国際化プロジェクトのIssues in iconvページで公開されているGNU libiconv-1.9.1用の日本語ロケールパッチlibiconv-1.9.1-cp932.patch.gzになります。

 ・ミラクル・リナックス社のSamba 3.0国際化プロジェクト
  http://www.miraclelinux.com/technet/samba30/

 ・Issues in iconv
  http://www.miraclelinux.com/english/technet/samba30/iconv_issues.html

 別途libiconv-1.9.1.tar.gzを取得したうえで、以下のようにしてインストールを行ってください。Samba 3.0系列をインストールするうえでは、configureオプションの指定は不要です。

$ ls
libiconv-1.9.1.tar.gz libiconv-1.9.1-cp932-patch.gz
$ tar xf libiconv-1.9.1.tar.gz
$ cd libiconv-1.9.1
$ zcat ../libiconv-1.9.1-cp932-patch.gz | patch -p1
$ ./configure; make;
$ su
# make install
GNU libiconv-1.9.1へのパッチ適用とインストール

 GNU libiconvのインストールが完了したら、

$ /usr/local/bin/iconv -l | grep -i EUCJP-MS
EUCJP-MS
EUCJP-MSロケールの確認
注:EUCJP-MSという行が出力されればよい。

を実行して、パッチによって追加されるEUCJP-MSロケールが認識されていることを確認しておくとよいでしょう。

 また、Linuxの場合は/usr/local/libを共有ライブラリの参照パスに含めるため、/etc/ld.so.confに、

/usr/local/lib

という1行を追加して、ldconfigコマンドを実行しておいてください。

Samba 3.0系列のインストール

 GNU libiconvをインストールしたら、いよいよSamba本体のインストールです。

 Samba 3.0系列からは、多くの機能がsmb.conf内のパラメータで設定できるようになったり、configure時に環境を自動検出して機能を有効にするようになりました。そのため、考慮が必要なconfigureオプションはそれほど多くありません。Samba固有のconfigureオプションのうち、意識した方がよいと思われるものを表1に示します。

  基本的に指定が必須のもの
  --with-libiconv=<ディレクトリ> GNU libiconvのインストール先を指定
  --with-pam PAMサポートの有効化
  必要に応じて指定するもの
  --with-ads Active Directory対応機能のサポート
  --with-ldapsam Samba 2.2系列互換のLDAP認証機能のサポート
  表1 Samba 3.0の主なconfigureオプション

 先ほど作成したlibiconvを使用するため、--with-libiconvオプションは必ず指定しなければなりません。システムがPAMをサポートしている場合は、--with-pamも付けた方がよいでしょう。

 --with-adsのデフォルトは、autoとなっています。このため、LDAPやKerberosの開発環境がインストールされていれば、自動的にActive Directory対応機能が有効になります。ただし、それ以外の場合は警告なしにActive Directory対応機能が無効になってしまいます。

 明示的にこのオプションを指定しておけば、LDAPやKerberosの開発環境がインストールされていないとconfigureエラーになるので、「知らないうちにこの機能が無効になっていた」というトラブルを回避できます。

 これ以外のオプションについては、必要に応じて適宜設定してください。筆者が検証時などに用いる、主要な機能をすべてサポートさせるconfigureオプションを以下に示します。

./configure --with-libiconv=/usr/local --with-automount --with-smbmount --with-pam --with-pam_smbpass --with-ldapsam --with-syslog --with-quotas --with-utmp --with-winbind --with-ldap --with-ads --with-smbwrapper
注:ただし、--with-ldapsamを付けるとデフォルトの認証データベースがsmbpasswdでなくなるため、このオプションは本当に必要な場合以外は付けない方がよいでしょう。

 特にインストール先の指定を行わない場合は、make installを行うと/usr/local/samba以下にSambaがインストールされます。configureからインストールまでの流れを以下に示します。

$ tar xjf samba-3.0.3.tar.bz2
$ cd samba-3.0.3/source
$ ./configure --with-libiconv=<ディレクトリ> --with-pam <そのほかのオプション>
$ make
$ su
# make install
Samba 3.0.3のconfigureとインストール手順

2/3

Index
Samba 3.0の全貌 改訂版[前編]
 〜 Samba 3.0のインストールと国際化の現状 〜
  Page 1
Samba 3.0系列の新機能と変更点
  Page 2
Samba 3.0系列のインストール
 非公式パッケージからのインストール
 ソースからのインストール
  Page 3
国際化機能と文字コードサポート
 国際化(日本語対応)機能の変更
 CAPとHEXのサポート
 移行の際の注意点
 SWATの国際化
 通信路上でのUnicodeサポート

Linux Square全記事インデックス


 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