ConoHa VPS に Subversion Edge をインストールしてみた
メインページ>コンピュータの部屋>ConoHa VPS を使ってみた
2014年11月2日
ConoHa VPS に Subversion Edge をインストールしたときの記録です。
目次
準備
必要なソフト
まず、必要なソフトの調査ですが、CollabNetSubversionEdge-4.0.11_linux-x86_64 の README によるとJava 1.6+ と php5.4+ と python-lib の 2.4~2.6 が必要とのこと。
Java は 1.7 が、php は 5.6 が導入済みなので問題ありません(Conoha VPS でそこそこ新しいLAMP環境の構築参照)。
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 と決定)が必要です。iptablesに開けるポートを追加します。
*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
subversion 1.6 の削除
ひょっとしたらと思って、yum で調べてみると、
yum list installed | grep subversion
subversion.x86_64 1.6.11-10.el6_5 @updates
どうも、まだ epel, ius, remi にも 1.8 は無いみたいですが、よく探してみると subversion edge の bin フォルダにあるじゃありませんか!
サーバは Web で各種の操作できるので、あまりコマンドは使わないかもしれませんが、とりあえず使えるようにしておきましょう。
まず古いものは削除します。
yum remove subversion
================================================================================ Package Arch Version Repository Size ================================================================================ Removing: subversion x86_64 1.6.11-10.el6_5 @updates 12 M Transaction Summary ================================================================================ Remove 1 Package(s)
suversion 1.8 のコマンドを使えるようにする
/etc/profile.d に subversion_edge.csh と subversion_edge.sh を追加します。
- subversion_edge.csh
setenv PATH ${PATH}:/opt/csvn/bin
- subversion_edge.sh
export PATH=$PATH:/opt/csvn/bin
再ログイン後確認すると
svn --version
svn, version 1.8.10 (r1615264) compiled Aug 12 2014, 15:56:15 on x86_64-unknown-linux-gnu Copyright (C) 2014 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - using serf 1.3.7 - handles 'http' scheme - handles 'https' scheme
よいようです。
動作確認
ホスト名:3343/csvn/login/auth, ホスト名:4434/csvn/login/auth にアクセスしたとこと見事に接続できた。
ただし、Subversion Edge の内蔵apacheはSSLに自己参照証明書を使っているのでブラウザに警告が出ます。驚かないように。