ConoHa VPS に Subversion Edge をインストールしてみた

提供: tknotebook
2014年11月3日 (月) 04:33時点におけるNakamuri (トーク | 投稿記録)による版

移動: 案内検索

メインページ>コンピュータの部屋>ConoHa VPS を使ってみた

準備

必要なソフトと所在

まず、必要なソフトの調査ですが、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) リポジトリアクセスにもう一ポート(設定できるので 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 -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 で csvn ユーザで tar を展開したいので /opt のパーミッションを 777 に変更します。

chmod 777 /opt

ファイルを転送

CollabNet から入手した 64bit Linux 用 Subversion Edge CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz を /opt へファイル転送。

ファイル展開

ユーザを一般(csvn)に切り替えて展開。

su csvn
tar xvf CollabNetSubversionEdge-4.0.11_linux-x86_64.tar.gz

インストール

rootに戻って以下を実行

cd csvn
bin/csvn install
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.

本当はここで sudo で csvnユーザのまま実行すべきなのですが、この時点で sudo を設定していなかったので root で実行しました。 こうすると subversion edge は後で起動すると root として実行されてしまうので、設定を書き換えます。

設定の修正

/var/www/html/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, ホスト名:4434/csvn/login/auth にアクセスしたとこと見事に接続できた。

ただし、Subversion Edge の内蔵apacheはSSLに自己参照証明書を使っているのでブラウザで警告が出ます。驚かないように。

スクリーンショット

Subversion Edge スクリーンショット.png