Samba 3.0.6 + 日本語パッケージ集に入れ替え

今使ってるSamba は"samba-2.2.7a.ja-4" で、幾多ものセキュリティホールがあるにもかかわらず、どうせ自分だけしか使わないし、とかなりの間放置していたのですが、現在、Samba には2.2.x 系統と3.0.x 系統がありまして、2.2.x 系統は10/01 を以てアップデートが終了するとのことなので、なんとなく今のウチに3.0.x 系統の最新リリースである3.0.6 に入れ替えておくことにしました。
Samba 3.0 ではこれまでのような日本語版というのはなく、"glibc" あるいは"libiconv" にパッチをあてた上で、各パッチに対応したバージョンのSamba を使う必要があるとのこと。両方のメリット/デメリットを勘案した上で、glibc にパッチをあてることにしました。
Samba オリジナルのパッケージがそのまま使える、ってのが何よりのメリットです。libiconv の方だとSamba の新しいバージョンが出るたびに作業が増えてしまうので。RHL9 は既にオフィシャルなアップデートは終了しているので、全てを自分でなんとかしないといけなくて、まあなんとかできそうな感じなのでこっちでいいか、と。


というわけでいつものごとくRed Hat Network から"glibc-2.3.2-27.9.7.src.rpm (13,048,035 bytes)" を頂いてきました。で、こいつをインストール。


rpm -ivh glibc-2.3.2-27.9.7.src.rpm

次に、glibc 用のパッチ、"glibc-2.3.2-cp932-2.diff.gz" をIndex of /~msyk/software/glibc/ からダウンロードし、解凍しておきます。


gzip -d glibc-2.3.2-cp932-2.diff.gz

"/usr/src/redhat/SPECS/glibc.spec" を編集します。
1行目を変更


%define glibcrelease 27.9.7
↓
%define glibcrelease 27.9.7.1

64行目あたりに追加


Patch90: glibc-2.3.2-cp932-2.diff

309行目あたりに追加


%patch90 -p0

とりあえず、他の部分はいじらず、セオリー通り、以下の順にビルド。


# rpmbuild -bp /usr/src/redhat/SPECS/glibc.spec # パッチをあてる
# rpmbuild -bc /usr/src/redhat/SPECS/glibc.spec # コンパイルを行う
# rpmbuild -bi /usr/src/redhat/SPECS/glibc.spec # インストールテスト
# rpmbuild -ba /usr/src/redhat/SPECS/glibc.spec # パッケージを作成する

あとはできあがりを待つだけですが…長い!! とにかく長い!! ので、ゆっくりとオフロでも入ったりしつつ、待つのがよろしいようです。ちなみに、Tualatin Celeron 1.4GHz なPC で1時間近くかかったような…。さて、できあがったら、パッケージをアップデート。元々は、以下の3つが入っていました。


# rpm -qa |grep glibc
glibc-2.3.2-27.9.7
glibc-common-2.3.2-27.9.7
glibc-devel-2.3.2-27.9.7

なので、できあがったパッケージのうち3つをまとめて入れておきます。


rpm -Uvh /usr/src/redhat/RPMS/i386/glibc-2.3.2-27.9.7.1.i386.rpm /usr/src/redhat/RPMS/i386/glibc-devel-2.3.2-27.9.7.1.i386.rpm /usr/src/redhat/RPMS/i386/glibc-common-2.3.2-27.9.7.1.i386.rpm

これでようやく、前準備ができました。
Samba もRPM で入れてしまいましょう。今後のことも考えて、SRPM からビルドします。日本サーバユーザ会のミラーFTP から"/pub/samba/bin-pkgs/RedHat/SRPMS/samba-3.0.6-1.src.rpm" をダウンロードしてきます。SPEC ファイルは特にいじらなくてもよいと思います。


rpmbuild -bp /usr/src/redhat/SPECS/samba3.spec
rpmbuild -bc /usr/src/redhat/SPECS/samba3.spec
rpmbuild -bi /usr/src/redhat/SPECS/samba3.spec
rpmbuild -ba /usr/src/redhat/SPECS/samba3.spec

できあがったら今インストールされているSamba を削除、そして新しいパッケージをインストール。


rpm -e samba-2.2.7a.ja-4


rpm -ivh /usr/src/redhat/RPMS/i386/samba-3.0.6-1.i386.rpm

/etc/samba/smb.conf 内に以下の記述を追加。RHL9 の日本語はEUC なので、以下の記述でよさげっぽい。


[global]
dos charset = CP932
unix charset = EUCJP-MS
display charset = EUCJP-MS

で、いよいよsmb デーモンをスタート、あとはブラウザから"http://サーバ名:901/" でアクセスできるようになるはず。


/etc/rc.d/init.d/smb start

あとは色々と設定いじったりして、これまでと多分同等の状態に持ってきました。ドメインサーバとかそのあたりの機能は使ってないので、とりあえずこのへんまでで。