Subversion1.9.0をソースからインストールする。

  • 投稿日:
  • by
  • カテゴリ:

自宅鯖でどうしてもgit-svnの検証がしたくて、仕方なくインストールしてみた。
意外に面倒だったのでメモしておこう。。。

なぜ、rpmではなくてソースからというツッコミが入りそうだが、apacheもソースから入れているため
連携させるモジュールの都合上そうなった。

環境:CentOS6.2
Apache/2.4.16

まずはSubversionのソースをダウンロードします。
shell > cd /usr/local/src/
shell > wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/subversion/subversion-1.9.0.tar.gz
shell > tar xzvf subversion/subversion-1.9.0.tar.gz
shell > cd subversion/subversion-1.9.0/

configureします。

./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-apxs=/usr/local/apache2/bin/apxs --with-apache-libexecdir=/usr/local/apache2/modules

apr系は環境によって変わってくると思います。
リポジトリへのアクセスはhttpdで行う想定なのでsvn用のモジュールのインストール先を
--with-apache-libexecdirで指定しているのがポイントです。

エラーメッセージがでて怒られたので
言われたとおりにsqlite-amalgamation-3071501.zip をダウンロードして解凍します。
shell > wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
shell > unzip sqlite-amalgamation-3071501.zip
shell > mv sqlite-amalgamation-3071501 sqlite-amalgamation

もう一回configureをやりなおします。
shell > ./configure

configureが成功したらmakeします。
shell > make

makeが成功したらmake installします。
shell > make install

ここまででsubversionのインストールは終わり。
次はApacheの設定しましょう。

shell > cd /usr/local/apache2/conf/
shell > vi httpd.conf

svnとの連携に必要なモジュールを有効にします。

まず、mod_dav.soがコメントになっているはずですので、コメントをはずししょう。
LoadModule dav_module modules/mod_dav.so

次に、svnインストール時にApacheのmodulesディレクトリにインストールされたモジュールを有効にします。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

記述の順番はmod_dav mod_dav_svn mod_authz_svnの順になってないとダメです。
順番が間違っているとApacheが起動できません。

httpdでアクセスさせるリポジトリの設定はどこか適当なapacheの設定ファイルに追加しておけばいいでしょう。
自分はこう設定しました。<Location></Location>が追加した箇所です。
パスワードファイルは普通にhtpasswdで作ればいいです。

<VirtualHost *:80>
ServerAdmin webmaster@sabakan.org
DocumentRoot /home/sabakan/public_html
ServerName sabakan.org
ServerAlias www.sabakan.org
<Directory /home/sabakan/public_html>
AllowOverride All
Order deny,allow
Allow from all
Options MultiViews FollowSymLinks Includes ExecCGI

</Directory>
<Location /svn>
DAV svn
SVNParentPath /var/svn/
AuthType Basic
AuthName "SVN Repo"
AuthUserFile /usr/local/apache2/conf/.svn_htpasswd
Require valid-user
</Location>
</VirtualHost>

最後にApacheをrestartします。
shell > apachectl -k restart

以上、ハァハァ・・・・。