Samba3とMacOSXの相性は抜群

お寺ではRedHatLinux7.2とSambaを使って、ファイルサーバーを構築しています。7.2っていうのも、随分昔のバージョンになってしまいましたね。でも、現役です。

SambaとはWindowsのファイル共有サービスをUNIXサーバーで提供するためのソフトウェアです。お寺には数台のWindowsマシンがありますので、データはサーバーに置き、Sambaを使って共有サービスを提供しています。5月にiBookを購入したためそこにMacOSXからアクセスする必要が出てきたわけですが、これが一仕事でした。

Sambaから送られてくるファイル名などのデータがShift-JISだったので、Finderからアクセスすると文字化けしてしまうのです。そこで、SharityというソフトをiBookにインストールして対処していました。

と、ここでSharityについて書いた過去ログを探したら、書いてませんでした。あら。SharityについてはMac Magazine Xさんのこちらをどうぞ。MacOSXからWindowsの共有フォルダにアクセスするためのソフトウェアです。SambaはWindowsの共有フォルダ機能をUNIXサーバーで実現するソフトですから、相手がSambaであってもうまく動きます。

そして先月、Sambaの新版であるSamba3がリリースされました。Samba2.2からのメジャーバージョンアップです。MacOSXユーザーから見た今回の目玉は、なんと言ってもUnicodeへの対応です。FinderはUnicode対応ですから、サーバー側にSamba3を導入すれば特別なソフトウェアを使うことなく、Finderからシームレスに共有フォルダにアクセスできるようになります。

さっそくインストールです。記述はすべてLinuxについてのものです。
Samba3は日本語の扱いに不備があります。Sambaに不備があると言うよりも、Sambaが呼び出して利用するシステム標準の文字コード変換関数iconv()に不備があります。対処法はglibcの修正か、libiconvの利用です。私はlibiconvを利用しました。libiconvはglibcから文字変換機能だけを切り出したライブラリだそうです。これに修正パッチを当てて利用します。
修正パッチは、森山将之さんこちらで配布しています。libiconv-1.8用なので、ここなどからlibiconv-1.8を入手します。そして、適当なディレクトリに置いて、以下のようにします。
$ tar zxvf libiconv-1.8.tar.gz
$ zcat libiconv-1.8-cp932-patch.diff.gz | patch -p0
$ cd libiconv-1.8
$ ./configure --prefix=/opt/libiconv-1.8
$ make ; make check
$ su
# make install
これでインストールできました。私の環境ではさらに以下の作業が必要でした。
/etc/ld.so.conf に /opt/libiconv-1.8/lib を追加し
# ldconfig -v
または/sbin/ldconfig -v
上記の手順では、標準のiconv()と干渉しないように、/opt/libiconv-1.8にインストールしています。Samba3のコンパイルの時にこのことを指示してあげないと、システム標準のiconv()を使ってしまうので、以下のようにしてコンパイルします。
$ cd samba-3.0.0/source
$ LDFLAGS="-L/opt/libiconv-1.8/lib -Wl,-rpath /opt/libiconv-1.8/lib" ./configure --with-pam --with-libiconv=/opt/libiconv-1.8
$ make
$ su
# make install
(RedHatLinuxはPAM認証をサポートしているので、configureで--with-pamを指定しています)
(※LDFLAGSの行、-WlのWが小文字になっていました。大文字が正解です。大文字のWと小文字のエルです。すいません。2004/2/19修正)
./configureを実行したときに経過が表示されますが、その終盤でlibiconvの記述が出てきます。警告が出ていなければたぶん大丈夫でしょう。
あとはインストール後の設定で、smb.confの文字コードの指定を以下のようにしておけばいいでしょう。
dos charset = UTF-8
unix charset = EUCJP-MS
display charset = CP932
他の設定についてはWeb上にいくらでも情報があるものと思われます。私は紙媒体の日経Linux9月号を参考にしました。上記のlibiconvのことも書いてあります。ただ、ldconfigのことが書いてありませんでした。configureで警告が出る場合はldconfigをやってみると良いかもしれません。
ちなみに、dos charset = UTF8とすると、Windows2000、XP以外のWindowsからはファイル名が文字化けするようになると思います。うちではそれらは使ってないので問題は出ませんが。Windows98をとるかMacOSXをとるかみたいな。普通の職場だと、Macは切り捨てられそうですね・・・
コメントを投稿

このブログの人気の投稿

トランシーバーアプリzelloにオススメの片耳イヤホンマイク

買っちゃった ASUSのスティックPC VivoStick TS10

家族カードの暗証番号が分からない