rotoold を導入するには

必要なもの

上記がすべて揃っていることを前提で作業を進めます。動的グローバル IP アドレスで運用する場合は、IPアドレスが変更されるとサーバにアクセスできなくなりますので、別途 Dice などを利用するとよいでしょう。

サーバ機に rotoold をダウンロード

自分のホームディレクトリにダウンロードします。

$ pwd
/home/username
$ wget http://white.niu.ne.jp/rotoold/rotoold-20040827_0.tar.gz
--13:22:46--  http://white.niu.ne.jp/rotoold/rotoold-20040827_0.tar.gz
=> `rotoold-20030827_0.tar.gz'
Resolving white.niu.ne.jp... done.
Connecting to white.niu.ne.jp[211.125.124.188]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 17,696 [application/x-gzip]
100%[====================================>] 17,696        75.14K/s    ETA 00:00

解凍

tar.gz を解凍しましょう。

$ tar xvzf rotoold-20040827_0.tar.gz

設定

展開されたディレクトリに移動します。

$ cd rotoold-20040827_0

まずは、perlのパスを確認するため、which します。

$ which perl
/usr/bin/perl

/usr/bin/perl であれば、設定は必要ありません。
Myurucaさんの使われている、FreeBSD 4.7-RELEASE では /usr/local/bin/perl だそうです。パスが違う場合は変更する必要があります。

起動

さて、まずは動作するか起動してみましょう。

$ ./rotoold

何もメッセージがでない場合は、起動に成功していると思います。何らかのエラーメッセージが出たらメッセージ通り指示に従いましょう。
WindowsマシンからGPSソフトをつかってアクセスしてみて、接続できれば成功です(おめでとう!)。

終了させるにはキーボードの、CTRL+Cです。

バックグラウンドで動かすことで、違う作業を行いながら稼動できます。

$ ./rotoold &

そしたら、ちゃんと動いているか調べてみましょう。

$ ps ax|grep rotoold
20653 ?        S    212:28 /usr/bin/perl -w /home/username/rotoold-20040827_0/rotoold --pidfile /var/run/rotoold.pid --port 5963
4237 pts/3    S      0:00 grep rotoold

最後の行は、grep を行ったためのプロセスです。

パケットフィルタが動作しているときは

パケットフィルタリングを利用している場合(Redhat 9 の場合は iptables)は、iptables コマンドで外部からの通信許可をしてあげなければなりません。
root 権限になってから、許可するように設定します。

$ su -
passwd:(表示されない)

iptables の設定をします。
iptables がおいていある場所は /etc/sysconfig/iptables です。

# iptables -A INPUT -p tcp --dport 5963 -j ACCEPT
# iptables -A INPUT -p tcp --sport 5963 -j ACCEPT

正しく設定が行われると、何も表示しません。大文字小文字も正しく入力しないと、エラーメッセージが帰ってくると思います。
入力したら、ルールを保存して、iptables を再起動しましょう。これを行わないと反映されないので注意!

# /etc/init.d/iptables save
現在のルールを/etc/sysconfig/iptablesに保存中: [ OK ]
# /etc/init.d/iptables restart
現在のすべてのルールとユーザ定義チェインを初期化中: [ OK ]
現在のすべてのルールとユーザ定義チェインを破棄中: [ OK ]
iptablesファイアウォールルールを適用中: [ OK ]

保存内容を閲覧するには

# iptables-save

ちなみに、ルータを別途利用している場合は、そのルータの設定も行う必要があるので注意が必要です。
詳しくはルータのメーカーWebサイトを確認してください。

便利にしよう!:ディレクトリをヨサゲなとこへ

上記で行ったままだと、/home/username で起動することとなりあまりよろしくありません。
なので、あるべきところへ移動させて起動するようにします。
ここでは、/usr/local/games/rotoold というディレクトリに移動する方法を説明します。
/usr に移動させるにはもちろん root 権限が必要です。

root になります。

$ su -
passwd:(表示されない)

さっきインストールした場所へ移動です。

# cd /home/username
# pwd
/home/username

mkdir でディレクトリを作成しておきます。
mv コマンドで移動させましょう。
長いディレクトリ名ですが、タグキーを押すと幸せになれます。

# mkdir /usr/local/bin/games
# mv ./rotoold-20040827_0 /usr/local/bin/games/rotoold

PID(プロセスID)を返すようにします。
rotoold を vi で開き、76行目あたりにある以下の行を探します。

# $opt{pidfile} ||= "/var/run/rotoold.pid"; #uncomment if use rogpsd as daemon.

# でコメントアウトされているので、# をとります。

$ opt{pidfile} ||= "/var/run/rotoold.pid"; #uncomment if use rogpsd as daemon.

便利にしよう!:サーバを起動させたら自動起動するようにする

rotoold をサーバの電源を入れたら自動的に起動するようにしましょう。
rotoold には、すでに rc スクリプトが入っているのでそれを流用します。

root 権限で作業します。

$ su -
passwd:(表示されない)

rotoold/etc に RedHat_rcfile があると思います。これを、/etc/rc.d/init.d/にコピーします(同時に名前も変更します)。

# cp RedHat_rcfile /etc/rc.d/init.d/rotoold

chkconfig で登録し、ランレベル 3,4,5 をオンします。

# chkconfig --add rotoold
# chkconfig --level 345 rotoold on

謝辞

rotoold を開発してくださった ynakata さん、メモを提供してくださった Myuruca さんに感謝します。