2011/04/29(金)QNAP TS-219P+ Subversion (svnserve) 導入

PC::NAS

QNAP TS-219P+ Subversion (svnserve) 導入

TS-219P+ にSuvbersionを導入して、svnserveを立ち上げてみました。

リポジトリはこれまで運用していたのをそのままコピー。*1

  1. まずは、ipkgを使ってsvn (Subversion) をインストールします。sshでログイン後 ipkg install svn を実行。
    [~] # ipkg update
    [~] # ipkg install svn
    Installing svn (1.6.15-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/svn_1.6.15-1_arm.ipk
    package apr-util suggests installing sqlite
    package apr-util suggests installing openldap-libs
    Installing neon (0.29.3-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/neon_0.29.3-1_arm.ipk
    Installing openssl (0.9.8p-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/openssl_0.9.8p-1_arm.ipk
    Installing zlib (1.2.5-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/zlib_1.2.5-1_arm.ipk
    Installing libxml2 (2.7.8-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/libxml2_2.7.8-1_arm.ipk
    Installing apr (1.3.12-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/apr_1.3.12-1_arm.ipk
    Installing apr-util (1.3.9-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/apr-util_1.3.9-1_arm.ipk
    Installing expat (2.0.1-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/expat_2.0.1-1_arm.ipk
    Installing cyrus-sasl-libs (2.1.23-2) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/cyrus-sasl-libs_2.1.23-2_arm.ipk
    Installing psmisc (22.13-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/psmisc_22.13-1_arm.ipk
    Installing ncurses (5.7-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/ncurses_5.7-1_arm.ipk
    Installing sqlite (3.7.3-1) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/sqlite_3.7.3-1_arm.ipk
    Installing readline (6.1-2) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/readline_6.1-2_arm.ipk
    Installing openldap-libs (2.3.43-2) to root...
    Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/openldap-libs_2.3.43-2_arm.ipk
    Configuring apr
    Configuring apr-util
    Configuring cyrus-sasl-libs
    Configuring expat
    Configuring libxml2
    Configuring ncurses
    update-alternatives: Linking //opt/bin/clear to /opt/bin/ncurses-clear
    Configuring neon
    Configuring openldap-libs
    Configuring openssl
    Configuring psmisc
    update-alternatives: Linking //opt/bin/killall to /opt/bin/psmisc-killall
    update-alternatives: Linking //opt/bin/pidof to /opt/bin/psmisc-killall
    Configuring readline
    Configuring sqlite
    Configuring svn
    Configuring zlib
    Successfully terminated.
    [~] # which svnserve
    /opt/bin/svnserve
    
  2. 適当な場所にリポジトリを準備します。今回は、 /share/Owner/svnrepos にレポジトリを格納した物とします。*2
  3. svnserve を立ち上げます。
    [~] # svnserve -d -r /share/Owner/svnrepos
    
  4. 動作確認: 適当な環境から svn://nas でアクセスできることを確認します。
    > svn ls svn://nas/web_site/jasmin/eco/script/eco_sim/
    addpoint.js
    addpoint_data.js
    config.js
    debug.js
    eco_sim.css
    equip.js
    equip_data.js
    header.js
    index.html
    iris.js
    iris_data.js
    main.js
    management.js
    minmax.js
    recovery.js
    skill.js
    skill_data.js
    status.js
    storage.js
    tab.js
    util.js
    


これだけだと、NASをリブートするたびにsvnserveを手動で立ち上げなければならないので、自動起動できるようにしてみます。起動時に実行されるスクリプト autorun.sh が存在するので、これにsvnserve起動の記述をします。

  1. /dev/mtdblock5 をマウントして、autorun.shを作成・編集。
    [~] # mount -t ext2 /dev/mtdblock5 /tmp/config
    [~] # vi /tmp/config/autorun.sh
    

    autorun.shに記載する内容は、以下の通り。

    (while test ! -x "/opt/bin/svnserve"; do sleep 5; done; /opt/bin/svnserve -d -r /share/Owner/svnrepos)&
    
  2. autorun.shに実行権限を付与して、アンマウント。
    [~] # chmod +x /tmp/config/autorun.sh
    [~] # umount /tmp/config
    
  3. NAS再起動後にsvnserveが立ち上がっているようなら成功。

参考

*1 : FSFS形式のリポジトリはプラットフォーム非依存だったはず…。

*2 : 今回は、レポジトリを共有ディレクトリ下に置いてますが、うっかり消さないように簡単にアクセスできない所に置いた方が良いかも。