QNAP TS-439 Pro II+ Turbo NASにSubversionを構築

先日、TS-439ProII+を購入したのだけど、今も割といい感じでNASとしての活躍してくれている。


で、最近Webサイトの開発?やらでローカルにファイルをためるのも微妙になってきたので、ここらでこのTS-439 Pro II+をSubversionサーバにしてファイル管理をしようと思った次第ですまる。


で、以下構築手順。こちらのサイトがすごく参考になりました。

# ipkg update
# ipkg install svn
  • PATHに /opt/bin を追加。ただし、もう追加されているようなら不要。
# export PATH=$PATH:/opt/bin:/opt/sbin

と、これは一時的な設定なので、永続的に設定するには、 /root/.bashrc と /root/.bash_profile に対して上記のパスを通してやる必要がある…と思ったらこの辺は再起動で消えてしまう。僕の環境だと、「/share/HDA_DATA/.qpkg/Optware/Optware.sh」の中に、/etc/profile の末尾に /opt/bin と /opt/sbin のパスが追加するように記述されていた。

# svnserve -d -r (リポジトリの位置)


あと、TS-439 Pro II+が起動するたびに毎回svnserveコマンドを叩いてSubversionを起動させるのが面倒なので、svnserveコマンドを起動スクリプトに仕込む。ここが今回のエントリのキモ。

その起動スクリプトを「autorun.sh」という名前で作成して、特定の位置に置くのだけど、これがQNAPのNASの機種によってファイルを置く際にマウントする位置が異なる。*2 *3 *4
参考:Running Your Own Application at Startup


僕の使っている機種はTS-439 Pro II+ Turbo NASなので、autorun.shは /dev/sdx6 をマウントしてファイルを置く。

# mount -t ext2 /dev/sdx6 /tmp/config
# vi /tmp/config/autorun.sh
(autorun.shを作成する。autorun.shの内容は下記のcatコマンドの出力を参照)

# cat /tmp/config/autorun.sh
#!/bin/sh
(sleep 60; /opt/bin/svnserve -d -r 【リポジトリの位置】) &

※注意:sleepの値が10で試したけど、値が小さすぎて駄目だったので60にしている

# chmod +x /tmp/config/autorun.sh
# ls -l /tmp/config/autorun.sh
-rwxr-xr-x    1 admin    administ       67 Oct 29 20:32 /tmp/config/autorun.sh*
# umount /tmp/config

chmod +x で実行権限の付与するとこまで忘れずに。


これで再起動しても自動的にSubversionサーバが起動します。

おまけ(Subversionを手動で停止)

Subversionを停止したいときは、psコマンドでプロセスIDを探してkill -TERM で停止させる。

# ps -ef | grep svnserve
20345 admin       560 S   grep svnserve
22501 admin       996 S   svnserve -d -r 【リポジトリの位置】
#
# kill -TERM  22501
# ps -ef | grep svnserve
20414 admin       564 S   grep svnserve
#

*1:この辺はSuvbersionの解説になるので割愛

*2:TS-201なら /dev/mtdblock4

*3:TS-109, TS-109P, TS-110, TS-119, TS-209, TS-209P, TS-219, TS-409 (Marvell ARM), TS-419P なら /dev/mtdblock5

*4:TS-439, TS-509, TS-639, TS-809, TS-809U (x86) なら /dev/sdx6