[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前提:
サーバ⇒ HP Integrityシリーズ(石=Intel Itanium2)
OS⇒ HP-UX B.11.23 ia64 (`uname -srm`の結果)
Cコンパイラ⇒ HP C (/opt/ansic/bin/cc)
OS標準パッケージ⇒
perl (/opt/perl/bin/perl v5.8.3)
プリインストールしておく外部パッケージ⇒
GNU make (/usr/local/bin/gmake v3.81)
GNU bison
GNU flex
GNU m4
GNU libiconv (/usr/local/lib/hpux32/libiconv.so v1.10)
GNU gettext (/usr/local/lib/hpux32/libintl.so v0.15)
ソースとダウンロード元⇒
libiconv-1.10.tar.gz 《RINGサーバ》
libiconv-1.10-cp932.patch.gz 《libiconv-1.10-cp932.patch.gz》
samba-3.0.23c.tar.gz 《日本Sambaユーザ会》
はじめに:
私は、
Sambaが大好きだ。
愛している、と言っても過言ではない。
セキュリティ云々とかで利用機会が減りつつあるが、
「好きにしていいよ」
と言われたら、
すかさずSamba を入れる。
なんでSamba が必要か、て?
理由⇒
・Windows のファイラ(エクスプローラ、WinFM 、卓駆☆、FileVisor 等々)で
サーバ内のファイルを操作したい
・Windows のエディタ(秀丸やらサクラやらWZやらMIFES やら)で
サーバ内のファイルを編集したい
・エディタのgrep機能でサーバ内プログラムソースを一括検索したい
・FTPは使いたくない
で、
今回さわる“Itanium2”サーバも「勝手に使えば」ということなので、
Samba を入れてやった。
(嫌がられたけど)
ビルド手順:
Solarisに入れるのと、同じ段取り。
《詳細はこちら》
ただ、
若干トラぶった。
(私が初めてHP-UXをさわる、ということもあるのだが。)
configure時に実行したコマンドは次のとおり。
% gzcat samba-3.0.23c.tar.gz | tar xf -
% cd samba-3.0.23c/source
% CFLAGS="-O +DD32 -DWITH_SYSLOG -D_KERNEL_THREADS -Y +z -AC99"; export CFLAGS
% ./configure \
--enable-socket-wrapper \
--sysconfdir=/etc/samba \
--with-privatedir=/etc/samba \
--localstatedir=/var/samba \
--with-lockdir=/var/samba/locks \
--with-piddir=/var/samba/locks \
--with-configdir=/etc/samba \
--with-libiconv=/usr/local \
--with-pam \
--with-winbind \
--without-libsmbclient \
★1 --disable-pie \
★2 --without-ldap
% make
・
・
・
%
結構警告メッセージがでるが、気にするな。
あと、
“★1”,“★2”のconfigure オプションは必ず指定すること。
コンパイルエラーがで出ちゃうので。
“★1”でPIE(Position Independent Executable) 機能を無効にしてるけど、
CFLAGSに「+z」を指定してるので、
今回使用する‘HP ANSI C Compiler’ではPIEが有効になる。
ビルド後に気づいたのだけれど。
“HP CIFS Server A.02.02 based on Samba 3.0.14a”
というのが
プリインストールされてたわ。
でも、
CP932がちゃんと通らないと思うから、使わない。
自動起動スクリプトは流用させてもらおうっと。
/sbin/init.d/samba
/sbin/rc1.d/K100samba
/sbin/rc2.d/S900samba
/etc/rc.config.d/samba
デーモン起動:
起動してみる。
# /sbin/init.d/samba start
# ps -ef | grep 'mbd'
root 20774 1 0 16:09:51 ? 0:00 /usr/local/samba/sbin/nmbd -D -l/var/samba -s/etc/samba/smb.conf
#
あ゛ーーっ!
‘smbd’がいないぢゃん!!
ログファイルを確認。
# cd /var/samba
# view log.smbd
・
・
[2006/09/29 16:09:51, 0] lib/util.c:smb_panic(1591)
PANIC (pid 20772): failed to set gid
[2006/09/29 16:09:51, 0] lib/util.c:log_stack_trace(1749)
unable to produce a stack trace on this platform
[2006/09/29 16:09:51, 0] lib/fault.c:dump_core(173)
dumping core in /var/samba/cores/smbd
[EOF]
あ゛ーーっ!
パニクってるぢゃん。
調べてみる。
解決の糸口を発見。
こちら⇒ http://www.samba.gr.jp/project/kb/J0/0/37.html
上記ページでの説明によると、
Samba の仕様によるもの。
‘guest account ’パラメータが明示されていない場合、
nobodyアカウントをゲスト用に使用するが、
HP-UX ではnobodyのUID, GIDは次のようになっていた。
UID = -2
GID = -2
UID, GIDは正の値を前提としているので、
これらを正の値に変える必要がある。
下記のアカウントファイルに設定されている‘nobody’のUID, GIDを正の値に変更。
/etc/passwd
/etc/group (nogroup グループのGID を変えること)
再チャレンジ。
# /sbin/init.d/samba start
# ps -ef | grep 'mbd'
root 20978 1 0 16:15:56 ? 0:00 /usr/local/samba/sbin/nmbd -D -l/var/samba -s/etc/samba/smb.conf
root 20977 20975 0 16:15:56 ? 0:00 /usr/local/samba/sbin/smbd -D -l/var/samba -s/etc/samba/smb.conf
root 20975 1 0 16:15:56 ? 0:00 /usr/local/samba/sbin/smbd -D -l/var/samba -s/etc/samba/smb.conf
#
あー、
やっと動いた。
幸せ。。。
ちなみに、
今回使用する‘smb.conf’の中身は次のとおり。
[global]
dos charset = CP932
unix charset = EUCJP-MS
display charset = EUCJP-MS
server string = Samba-%v
interfaces = 192.168.0.1/255.255.255.0
bind interfaces only = Yes
smb passwd file = /etc/samba/smbpasswd
private dir = /etc/samba
passwd program = /usr/bin/passwd %u
passwd chat = *New*password:* %n\n*Re-enter*new*password:* %n\n
username map = /etc/samba/smbusers
unix password sync = Yes
log level = 3
log file = /var/samba/log.%m
max log size = 50
socket options = IPTOS_LOWDELAY
os level = 127
preferred master = Yes
domain master = Yes
dns proxy = No
wins support = Yes
ldap ssl = no
lock directory = /var/samba/locks
create mask = 0644
hosts allow = 192.168.0.
hosts deny = 192., 172., 10.
strict sync = Yes
case sensitive = No
[homes]
comment = Home Directories
force user = %S
read only = No
browseable = No
後記:
‘HP ANSI C Compiler’は、
かなり優秀なコンパイラだ。
だって、
Sambaのビルドができちゃうんだもん。
優秀、優秀。
Sun Solaris でSambaをビルドする場合、
純正の
Sun ONE Studio
たら
Sun Forte C/C++
では
コンパイルエラーが多発するので、
gccを入れてやる。
参考URL:
Samba 3.0で日本語を利用できるようにしたパッケージ集
libiconv パッチ集