Subversion EdgeをCentOS 7にインストール

Ubuntuを少しさわれる程度の私が試行錯誤でCentOS 7にインストールした時のメモです。
今はgitなどありますが、まだ需要はあるはず。

Subversion Edgeとは、無料のウェブベースのSCMアプリケーションでブラウザ上からSubversionのリポジトリ作成や、ユーザー管理等が出来ます。
ダウンロードは下記サイトから(会員登録が必要です)
http://www.collabnet.jp/products/subversion
**ですがいきなり問題発生**
Windows7で普段作業しているのですが、ダウンロードページから
Subversion Edge 5.0.1 (Linux 64-bit) File Size: 90.78 MB
をWindows上でダウンロードすると、何故か165MBのファイルが落ちてきます・・・
しょうがないので私はUbuntuデスクトップからダウンロードしました。
ちゃんと90.78MBのファイルが落とせました。
*一体何なのでしょう？*


# 環境構築
### OSのインストール
VirtualBoxにインストール前提で話をしていきます。
CentOS 7(64bit)を使用、メモリは1GB、ネットワークはブリッジアダプターに割り当ててOSのインストールを開始。
CentOSはCUIでWEBサーバーの設定、他は必要になりそうな物もチェック。
Subversion Edgeはroot以外のユーザで実行する必要があるので、
インストール中に新規にユーザーを作成します(今回は分かりやすく"hoge"にしてます)
### 必須アプリケーション
細かいバージョンは省きますが、この時はインストール当時の最新版を入れました。
* CollabNet Subversion Edge 5
* Java 1.7 JRE/JDK
* Python 2.7
* perl 5
### VBoxGuestAdditionsをインストール
結局、共有フォルダぐらいしか使えなかったんですけど一応。
必要な物をインストールします。

```
# yum install gcc
# yum install make
# yum install kernel-devel
```
VirtualBoxのメニューから「Guest Additions CD イメージの挿入...」を押してCDをマウントします。

```
# mount -r /dev/sr0 /mnt
# cd /mnt
```

runスクリプトを実行してインストール

```
# sh VBoxLinuxAdditions.run
```

# Subversion Edgeのインストール
ここから先はsuコマンドでrootになって作業をする前提で書いています。
## 1. 環境変数にJAVA_HOMEを設定
すでにJAVA_HOMEが設定されているならココは飛ばしてください、下のコマンドが通ればOKです。
`$JAVA_HHOME/bin/java -version`

Javaはalternativesと言うソフトで管理されていて、異なるバージョンのJavaを選択できます。
JAVA_HOMEに設定するパスは下記コマンドで確認(使用するバージョンの選択)できます。

```
# alternatives --config java

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79-2.5.5.2.el7_1.x86_64/jre/bin/java
Enter to keep the current selection[+], or type selection number:
```

パスが長い。exportでパスを環境変数に追加
`export JAVA_HOME=/usr/lib/jvm/hogehoge`
## 2. Subversion Edgeのパッケージをインストール
今回は /home/hoge/csvn に入れます。
本当は /opt の中が良いと思います。
どうにかしてパッケージファイルをユーザーホームに置いてください。
私は共有フォルダからコピーしてきた。

### VirtualBoxの共有フォルダからコピーしてくる
VMの 設定->共有フォルダー から共有するフォルダを選択します。
フォルダー名は"shared"とし、マウントしてからコピーします。

```
# mount -t vboxsf shared /mnt
# cd /mnt
# cp CollabNetSubversionEdge-5.0.1_linux-x86_64.tar.gz ~/CollabNetSubversionEdge-5.0.1_linux-x86_64.tar.gz
```
## 3. Subversion Edgeのセットアップ
ここの作業は一度rootでなくhogeユーザーで作業する必要があります。
まずはパッケージをアンパックします。
`$ tar zxf CollabNetSubversionEdge-x.y.z_linux-x86.tar.gz`
アンパックしたフォルダー名が"csvn"になっていると思いますが、違う名前になっていたら"csvn"にリネームしてください。

パーミッションを設定してあげないとインストールが失敗するようなので権限を与えておきます。
`$ sudo chmod -R a-rwx /csvn`

インストールします。

```
$ cd csvn
$ sudo -E bin/csvn install
$ sudo bin/csvn-httpd install
```

確認の為セキュリティを一時的に無効にします。
CentOS 7はファイヤーウォールにiptablesではなくfirewalldが使用されています。
もしもiptablesが使われていたならこちらを停止させてください。

```
// SELinuxを停止
$ sudo setenforce 0
// firewalldを停止
$ systemctl stop firewalld
```

Subversion Edgeを開始させ、ブラウザで確認します。
URIは下記になります。
http://hostname:3343/csvn
adminユーザーのデフォルトのパスワードは"admin"になっています。
`$ bin/csvn start`

#その他
## svn、viewvcが見れない
サーバー設定のポートが80になっていませんか？
デフォルトが18080なのですが、80になっている時があります。
80だとうまく起動できないようなのでデフォルトの18080に変更して、ポートを開けてください。

## viewvcは起動するのにリポジトリが見れない
adminユーザーで見ていませんか？
リポジトリのアクセスルールにadminを追加してください。

## OS起動時に自動実行させる

```
# vi /etc/rc.d/rc.local
// 下記を追記
 service csvn start
 sudo -u hoge /home/vcs/csvn/bin/csvn-httpd start
```