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

提供: tknotebook
2015年4月14日 (火) 01:19時点におけるNakamuri (トーク | 投稿記録)による版

移動: 案内検索

メインページ>コンピュータの部屋>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 を実行したために起きた不整合の修正です。

オーナ調整

csvn でインストールしたかのようにファイルのオーナを書き換えます。

cd /opt
chown csvn:csvn csvn

サービス登録確認

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に自己参照証明書を使っているのでブラウザに警告が出ます。驚かないように。

スクリーンショット

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