Goal
* 最終的にUSVNをつかえるようにする目標で、まずはSVNのインストールをおこなう
* SVN1.8をソースからインストールする
* ApacheがSource Installされている前提
Milestone
* Apacheがソースインストールされている場合、USVNなどのツールを使うためにsvnもソースからインストールされる必要がある
* SVNインストールの際にsqliteが必要なためパッケージをダウンロードしてsvnビルド時に組み込む必要がある
* ビルド時にapacheのインストールパスを指定し、mod_dav_svn.soおよびmod_authz_svn.soをインストールする
* SVNはCentOSのパッケージがすでにインストールされているがこれを無視して新しいものを別のパスにインストールする
* SVNはリポジトリの保存形式にBerkely DBとFSFS(通常のフラットファイル形式)を選択できるが、現在はFSFSがデフォルトかつ主流のようなので、Berkely DBはビルド時に除外する
Preparation
$> uname -a
Linux *** 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$> cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
$> /usr/local/apache/bin/apachectl -V | head -n 1
Server version: Apache/2.4.7 (Unix)
Manual
Download SVN Source Code
## root user
cd /usr/local/src
wget "http://ftp.tsukuba.wide.ad.jp/software/apache/subversion/subversion-1.8.8.tar.gz"
# http://subversion.apache.org/download/
# DownloadするバージョンやURLは上記URLで確認
ls -l subversion-1.8.8.tar.gz
tar zxvf subversion-1.8.8.tar.gz
ls -l subversion-1.8.8
Download sqlite Source Code
##
## このままビルドすると、sqliteのエラーメッセージが発生するため、
## エラーメッセージに沿ってパッケージをダウンロードして、svnソースディレクトリ内に配置
##
cd /usr/local/src
wget "http://www.sqlite.org/sqlite-amalgamation-3071501.zip"
unzip sqlite-amalgamation-3071501.zip
mv -i sqlite-amalgamation-3071501 subversion-1.8.8/subversion/sqlite-amalgamation
# /usr/local/src/
# |- subversion-1.8.8
# |- sqlite-amalgamation
sqliteバージョン不整合によるエラーメッセージ
get the sqlite 3.7.15.1 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3071501.zip
unpack the archive using unzip and rename the resulting
directory to:
/usr/local/src/subversion-1.8.8/sqlite-amalgamation
configure: error: Subversion requires SQLite
Build / Install
./configure --prefix=/usr/local/svn-1.8.8 \
--without-berkeley-db \
--with-apr=/usr/local/apache \
--with-apr-util=/usr/local/apache \
--with-apache-libexecdir=/usr/local/apache/modules \
--with-openssl
make
make install
Check Install
ls -l /usr/local/svn-1.8.8
# prefixに指定したパスにインストールされていることを確認
find /usr/local/apache -mmin -10
# 過去10分以内にapacheディレクトリに対しておこなわれた変更を確認
# 想定通り、mod_dav_svn.soとmod_authz_svn.soのみゲットできたことを確認
# ./modules
# ./modules/mod_authz_svn.so
# ./modules/mod_dav_svn.so
Other Initial Setup
##
## シムリンクはる
##
cd /usr/local
ln -s svn-1.8.8 svn
##
## パスを通す
##
vi /etc/profile.d/svn.sh
# 新規SVNのインストールパスで既存SVNのパスを上書き
# PATH=/usr/local/svn/bin:$PATH
# export PATH
##
## ログインし直して、バージョンがあがったことを確認
##
svn --version | head -n 1
# svn, version 1.8.8 (r1568071)
##
## 新規SVNが問題なさそうだったら既存svnを削除
##
yum remove svn
Others
##
## --without-berkeley-dbオプションをつけてビルドしたため、
## bdb形式でリポジトリ作成しようとするとエラーになる
## (※ただ、エラーメッセージみるたところberkely DBはすでに非推奨になっているよう)
##
svnadmin create --fs-type bdb bdb_repo
# svnadmin: warning: The "bdb" repository back-end is deprecated, consider using "fsfs" instead.
# svnadmin: E160033: ファイルシステム形式 'bdb' のモジュールをロードできませんでした