今日はOpenIndianaでsambaをサービスで動かした

この前の話の続き。前からやってたけどどうせならきれいに動かしたかったからいろいろ頑張ってみた。

1. sambaをmakeする

普通にソースコードをゲットしてmakeすれば動く。すげー。コマンドにするとこんな感じ

1
2
3
4
5
6
7
8
9
# pkg install developer/gcc-3
# wget http://www.samba.org/samba/ftp/samba-latest.tar.gz
# gtar xzvf samba-latest.tar.gz
# cd samba-3.5.6
# cd source3
# sh ./autogen.sh
# ./configure
# gmake
# gmake install

このままだと/usr/local/sambaの下に各種バイナリがインストールされる。実行するためにはライブラリパスを追加してあげる必要がある。ここを参考に設定した。具体的なコマンドは以下のような感じ。

1
2
3
# crle -c /var/ld/ld.config -l /lib:/usr/lib
# crle -u -l /usr/local/samba/lib
# crle -v  (←確認)

で、/usr/local/samba/var/smb.confファイルを心の赴くままに作る。/etc/samba/smb.confじゃないところに注意。

動くかどうかテスト。

1
2
3
# /usr/local/samba/sbin/smbd -D
# /usr/local/samba/sbin/winbindd -D
# /usr/local/samba/sbin/nmbd -D

ログは/usr/local/samba/varの下にできている。うまく動けばok。

2. サービスとして自動起動するようにする

とりあえず動いたものの、毎回手動で起動するのは億劫だし起動するのを忘れてなんで繋がらないの?とアワアワするのも大変なので、自動起動するように設定する。

知ってる人にはアレだけど、OpenIndiana(OpenSolaris)の起動シーケンスはLinuxのお作法とは違うので合わせるように書く。

まず起動・停止スクリプトを書く。こんな感じに。できたらスクリプト単体でstart/stopしてちゃんと動けばOK。

で、そのスクリプトを呼び出すようにmanifestファイルを書く。こんな感じに。

manifestファイルが書けたらfmri(?)に取り込む。以下のような感じ。

1
2
3
# svccfg
> import /usr/local/samba/var/samba.xml
> exit

ちゃんと取り込めてるか確認。

1
2
# svcs -a|grep samba
disabled       14:58:21 svc:/local/network/samba:default

ちゃんと起動、停止できるか確認。

1
2
3
4
# svcadm enable svc:/local/network/samba:default
# svcs -xv (なにも出なければOK)
# svcadm disable svc:/local/network/samba:default
# svcs -xv (なにも出なければOK)

Enjoy!

comments powered by Disqus