ConoHa VPS に Subversion Edge をインストールしてみた
提供: tknotebook
目次
[非表示]準備
- 必要なソフトと所在
- まず、必要なソフトの調査ですが、CollabNetSubversionEdge-4.0.11_linux-x86_64 の README によるとJava 1.6+ と python-lib の 2.4~2.6 が必要とのこと。
- Java は 1.7 が導入済みなので問題ありません。
- python-libs を確認してみますと
yum list installed | grep python-libs
python-libs.x86_64 2.6.6-52.el6 @updates
- で問題なさそうです。
- また、SubversionEdge は環境変数 JAVA_HOME を参照するので設定しろとありますので、Java がいったいどこにあるか探ると、JDK のコマンドは皆 /usr/bin にありますが、これは /etc/alternative への simlink で /etc/alternative の中身も simlink。実体は
/usr/lib/jvm/java-1.7.0-openjdk.x86_64
にあることがわかりました。これが JAVA_HOME の値です。
- JAVA_HOME 環境変数の設定
- JAVA_HOME の設定は /etc/profile の中に書くのが一番簡単だと思ったのですがですが、/etc/profile.d の下にアプリケーションで追加実行するシェルスクリプトを書くのが CENTOS の流儀のようです。
- jdk.sh, jdk.csh を /etc/profile.d の下に以下のように作りました。
jdk.sh:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64
jdk.csh:
setenv JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk.x86_64
- これで問題なく JAVA_HOME環境変数の設定はできています。
ls $JAVA_HOME/bin
appletviewer javac jdb jstack policytool tnameserv apt javadoc jhat jstat rmic unpack200 extcheck javah jinfo jstatd rmid wsgen idlj javap jmap keytool rmiregistry wsimport jar java-rmi.cgi jps native2ascii schemagen xjc jarsigner jcmd jrunscript orbd serialver java jconsole jsadebugd pack200 servertool
- iptables の変更
- subversion edge は管理にポート 3343,4434(SSL) リポジトリアクセスにもう一ポート必要です。80は使えないので 60000 を採用。iptableで開ける設定を追加します。
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH, HTTP, MySQL -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3343 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4434 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 60000 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
- Subversion Edge 用ユーザを用意
useradd csvn passwd csvn パスワード
インストール
- パーミッション調整
- /optのパーミッションを 777 に変更
chmod 777 /opt
- ファイルを転送
- CollabNet から入手した 64bit Linux 用 Subversion Edge CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz を /opt へファイル転送。
- ファイル展開
- ユーザを一般に切り替えて展開。
su nakamuri tar xvf CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz
- インストール
rootに戻って以下を実行
cd csvn bin/csvn install
- 本当はここで sudo をで csvnユーザのまま実行すべきなのですが面倒なのでやめました。こうすると subversion edge は root として実行されてしまうので、あとで設定を書き換えます。
Detected RHEL or Fedora: Installing the CSVN Console daemon.. Setting RUN_AS_USER to: 'root'. Please edit '../data/conf/csvn.conf' if this needs to be adjusted Setting JAVA_HOME to: '/usr/lib/jvm/java-1.7.0-openjdk.x86_64'. Please edit '../data/conf/csvn.conf' if this needs to be adjusted.
- 設定の修正
csvn/data/conf の csvn.conf を開け
RUN_AS_USER=root
を
RUN_AS_USER=csvn
に書き換える。これは root で install を実行したために起きた不整合の修正です。
- サービス登録確認
chkconfig | grep csvn
csvn 0:off 1:off 2:off 3:on 4:on 5:on 6:off
動作確認
ホスト名:3343/csvn/login/auth にアクセスしたとこと見事に接続できた。