Subversionの導入(Debian etch)

Debian 4.0 etchでSubversion

WebDAVでSubversionを利用することにしました。

OSのインストールが済み、ひと通りの設定が済んだら、
Apacheをインストールします。

#Apacheのインストール

apt-get install apache2~

次に、Subversionをインストールします。

# Subversionのインストール

apt-get install subversion~

Subversionをインストールしたら、リポジトリの作成を行います。

# リポジトリ用フォルダを作成

mkdir /home/groups/test/svn~

# リポジトリの作成 (形式はfsfsで作成)

svnadmin create --fs-type fsfs /home/groups/test/svn~

# 所有者と所有グループを www-dataに変更する。

# ※apache2をapt-getでインストールしたときにApacheのUserとGroupがwww-dataになるため

chown -R www-data:www-data /home/groups/test/svn~

次に、Webdavでsubversionにアクセスするための設定を行います。

# Webdavでsubversionにアクセスするために必要なモジュールをインストールをインストール

apt-get install libapache2-svn~

# 文字化け対策用のモジュールをインストール

apt-get install libapache2-mod-encoding~

# パスワードファイルの作成・設定

# ※コマンドを打つと、パスワード入力、確認入力の計2回パスワード入力を促されます

htpasswd -c /home/groups/test/.svnpasswd hogehoge~

# /etc/apache2/mods-enabled/dav_svn.confの編集

vi /etc/apache2/mods-enabled/dav_svn.conf~

DAV svn~
SVNPath /home/groups/test/svn~

Options Indexes~
Order allow,deny~
allow from all~
AuthType Basic~
AuthName "Subversion repository"~
AuthUserFile "/home/groups/test/.svnpasswd"~
Require valid-user~

↑ファイルの最後に追記する
------------------------------------------------

# /etc/apache2/apache2.confを編集~
# 日本語文字化けを回避~
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw~
↓~
LanguagePriority ja en da nl et fr de el it ko no pl pt pt-br ltz ca es sv tw~

#※この設定を忘れると日本語名のファイルを扱ったりすると文字化けをおこすので注意して下さい。

# Apacheを再起動~
/etc/init.d/apache2 restart

これで、下記のようにブラウザに設定したURLを指定してアクセスできればOKです。
上記のインストール例だと、
http://(マシン名 or IPアドレス)/svn/test

ちなみに、リポジトリを新たに作成する場合は、
上記のリポジトリの作成手順から先の作業を毎回行う必要があります。
さすがにそれは面倒なので、リポジトリの追加処理を自動化するシェルを作成しました。 よかったら参考にしてみて下さい。

 

svn.sh

#!/bin/sh~

##############################~
# 使用方法~
# sh svn.sh [リポジトリ名]~
##############################~

# リポジトリ用のフォルダを作成~
mkdir /home/groups/$1~
mkdir /home/groups/$1/svn~

# リポジトリの作成~
svnadmin create --fs-type fsfs /home/groups/$1/svn~

# パスワードファイルの作成・設定~
htpasswd -bc /home/groups/$1/.svnpasswd admin admin~

# /etc/apache2/mods-enabled/dav_svn.confの編集~
cd /etc/apache2/mods-enabled~
echo ""  >> dav_svn.conf~
echo ""  >> dav_svn.conf~
echo "########################"  >> dav_svn.conf~
echo "# $1"  >> dav_svn.conf~
echo "########################"  >> dav_svn.conf~
echo "<Location /svn/$1>"  >> dav_svn.conf~
echo "  DAV svn"  >> dav_svn.conf~
echo "  SVNPath /home/groups/$1/svn"  >> dav_svn.conf~
echo ""  >> dav_svn.conf~
echo "  Options Indexes"  >> dav_svn.conf~
echo "  Order allow,deny"  >> dav_svn.conf~
echo "  allow from all "  >> dav_svn.conf~
echo "  AuthType Basic"  >> dav_svn.conf~
echo "  AuthName \"Subversion repository\""  >> dav_svn.conf~
echo "  AuthUserFile \"/home/groups/$1/.svnpasswd\""  >> dav_svn.conf~
echo "  Require valid-user"  >> dav_svn.conf~
echo "</Location>"  >> dav_svn.conf~
echo ""  >> dav_svn.conf~

# Apacheを再起動~
/etc/init.d/apache2 restart~