お名前.com がサービスしてくれている、”レンタルDNSレコード設定”が提供しているDDNSクライアントは、Windows版しか有りません。この為、Linuxで自宅サーバを作った時に、レコードが更新出来ず困ってしまいます。
これを解決してくれるのが、DiCE です。
親切なことに、バイナリで提供してくださっているのですが、環境によっては、必要なライブラリが見つからずに、うまく動かすことが出来ません。
今回CentOS6で使って見たんですが、この環境でもちょっとした追加の操作が必要でした。
で、忘れないように、その辺りをまとめて見ました。
DiCEのページから、Linux用のバイナリを入手します。
導入は、基本的にコマンドで行います。なので、入手もコマンド行った方が楽だと思います。
ということで、入手方法も次の作業手順の中で示します。
・wget で DiCEのバイナリを入手
[root@cent6 ~]# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
・入手したバイナリをインストール先にコピーして展開(今回は /usr/local/bin/ 配下に展開しました)
[root@cent6 ~]# cp diced01914.tar.gz /usr/local/bin/
[root@cent6 ~]# cd /usr/local/bin
[root@cent6 bin]# tar zxf diced01914.tar.gz
・必須ライブラリが見つかるかどうかチェック
[root@cent6 bin]# cd DiCE/
[root@cent6 DiCE]# ldd diced
linux-gate.so.1 => (0x0015f000)
libpthread.so.0 => /lib/libpthread.so.0 (0x004da000)
libdl.so.2 => /lib/libdl.so.2 (0x004d3000)
libc.so.6 => /lib/libc.so.6 (0x00160000)
/lib/ld-linux.so.2 (0x004b1000)
[root@cent6 DiCE]#
ちゃんと見つかってる。
でも、これ以外にも ssl/crypt のライブラリが指定のパスに存在している必要があります。
・上記ライブラリを準備
[root@cent6 DiCE]# ln -s /usr/lib/libssl.so.1.0.0 /lib/libssl.so
[root@cent6 DiCE]# ln -s /usr/lib/libcrypt.so /lib/libcrypt.so
あっ、、、設定するところをメモるの忘れた。。。(^^;)
b.n-at さんの記事がとても参考になります。そちらをご覧ください。
一応、CentOSの他のサービスと同じように、起動した時に OK とか出るような起動ファイルにしてみました。
[root@cent6 ~]# vi /etc/init.d/diced
#!/bin/sh
#
# chkconfig: 35 99 99
# description: DiCE
#
# processname: diced
#
. /etc/rc.d/init.d/functions
RETVAL=0
prog="diced"
lockfile=/var/lock/subsys/$prog
DICED="/usr/local/bin/DiCE/diced"
OPTIONS="-d"
start()
{
[ -x $DICED ] || exit 5
[ ! -e $lockfile ] || exit 1
echo -n $"Starting $prog: "
$DICED $OPTIONS && success || failure
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
if [ -n "`pidofproc $DICED`" ] ; then
killproc $DICED
else
failure $"Stopping $prog"
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $lockfile
echo
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
RETVAL=2
esac
exit $RETVAL
[root@cent6 ~]# chmod 700 /etc/init.d/diced
[root@cent6 ~]# chkconfig --add diced
[root@cent6 ~]# chkconfig --list diced
diced 0:off 1:off 2:off 3:on 4:off 5:on 6:off
[root@cent6 ~]# service diced start
diced を起動中: =-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad
DiCE Daemon Started !! [ OK ]
[root@cent6 ~]#