OpenBSDでSambaをコンパイル
OpenBSDマシンのHDDが余ってるのでファイルサーバにしてみる。
OpenBSDにSambaを自分でコンパイルして入れてみた。
WindowsだけでなくLinuxともファイルが共有できる
事前準備
インストール方法をGoogleで探してみる。
ちょうどOpenBSDにSambaを入れてる人がいたので参考にする。
http://www.ne.jp/asahi/diver/hrk/openbsd/s-samba.html
日本Sambaユーザ会を見てみる。
http://www.samba.gr.jp/
日本語版というのは無く、日本Sambaユーザ会が本家版から問題の出る箇所を修正するパッケージを出してるらしい。
修正パッケージはこれらだが見てもよく分からない。
ftp://ftp.samba.gr.jp/pub/samba-jp/samba-3.0-ja/SOURCE/
とりあえず日本語のパッチを当てたlibiconvと本家版のSambaをインストールすればいいと予想。
以下作業工程。
libiconvのインストール
ここは自分でコンパイルしてみる。
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.htmlからパッチを拾ってくる。
libiconv-1.10用を使う事にする。
$ ftp http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.10-ja-1.patch.gz
libiconv-1.10をダウンロードしてパッチを当てる。
$ ftp ftp://ftp.riken.go.jp/GNU/pub/gnu/libiconv/libiconv-1.10.tar.gz $ tar -xzvf libiconv-1.10.tar.gz $ cd libiconv-1.10 $ gzip -dc ../libiconv-1.10-ja-1.patch.gz | patch -p1
一般ユーザでコンパイルしてから、rootになってインストール。
$ ./configure --enable-static \ --enable-extra-encodings $ make $ su # make install
Sambaのインストール
11月15日に出たばかりのSamba 3.0.23dを入れてみる事にする。
Samba 3.0.23dをダウンロードして展開する。
$ ftp ftp://ftp.samba.gr.jp/pub/samba/samba-3.0.23d.tar.gz $ tar -xzvf samba-3.0.23d.tar.gz
インストールオプションを調べてみる。
$ cd samba-3.0.23d/source $ ./configure --help | less
ディレクトリのオプションだけ入れてコンパイルとインストール。
$ ./configure --prefix=/usr/local/samba-3.0.23d \ --localstatedir=/var/samba --with-lockdir=/var/samba/locks \ --with-piddir=/var/run --with-logfilebase=/var/log/samba \ --with-configdir=/usr/local/etc/samba $ make $ su # make install
Sambaが使うディレクトリを作っておく。
# mkdir /var/log/samba # mkdir -p /usr/local/etc/samba
ここでは/usr/sambaを共有ディレクトリとする。
# mkdir /usr/samba # chown ユーザ名 /usr/samba
設定
設定は/usr/local/etc/samba/smb.confに書く。
Sambaのソースに含まれてる見本とftp://ftp.samba.gr.jp/pub/samba-jp/samba-3.0-ja/smb.confを参考にする。
[global] workgroup = MYGROUP dos charset = CP932 unix charset = EUCJP-MS display charset = EUCJP-MS server string = Samba Server hosts allow = 192.168.11. 127.0.0.1/8 load printers = no map to guest = Bad Userers log file = /var/log/samba/log.%m max log size = 50 socket options = TCP_NODELAY username map = /etc/samba/smbusers [homes] comment = Home Directories browseable = no [public] path = /usr/samba guest ok = yes writeable = yes create mask = 644 directory mask = 0755
testparmでsmb.confをチェックする。
# /usr/local/samba-3.0.23d/bin/testparm Load smb config files from /usr/local/etc/samba/smb.conf Processing section "[homes]" Processing section "[public]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] dos charset = CP932 unix charset = EUCJP-MS display charset = EUCJP-MS workgroup = MYGROUP server string = Samba Server username map = /etc/samba/smbusers log file = /var/log/samba/log.%m max log size = 50 load printers = No hosts allow = 192.168.11., 127.0.0.1/8 [homes] comment = Home Directories browseable = No [public] path = /usr/samba read only = No create mask = 0644 guest ok = Yes
smbpasswdでユーザ用のパスワードを作る。
# /usr/local/samba-3.0.23d/bin/smbpasswd -a ユーザ名
起動
smbdとnmbdの両方に「-D」オプションを付けて起動する。
次回からは自動起動するように/etc/rc.localに以下の内容を追加する。
# Samba if [ -x /usr/local/samba-3.0.23d/sbin/smbd ]; then echo -n ' smbd'; /usr/local/samba-3.0.23d/sbin/smbd -D fi if [ -x /usr/local/samba-3.0.23d/sbin/nmbd ]; then echo -n ' nmbd'; /usr/local/samba-3.0.23d/sbin/nmbd -D fi
シャットダウン時にkillするように/etc/rc.shutdownに書いておく。
kill `cat /var/run/smbd.pid` kill `cat /var/run/nmbd.pid`