rotoold を導入するには
必要なもの
- Redhat Linux 9 for intel
- perl 5.6以上(Redhat 9 には標準で perl 5.8.0 がインストールされています)
- root 権限
- 固定グローバルIPアドレス
- 知識ひとつまみ
上記がすべて揃っていることを前提で作業を進めます。動的グローバル 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 さんに感謝します。
