Subversionの導入(Debian etch)
apt-get update apt-get install subversion DAVを使用する場合、必要なモジュールをインストールapt-get install libapache2-svn 文字化け対策用のモジュールをインストールapt-get install libapache2-mod-encoding svnのユーザ作成# useradd svn # passwd svn /etc/inetd.confに1行追加するsvn stream tcp nowait svn /usr/sbin/tcpd /usr/bin/svnserve -i svnディレクトリの作成# mkdir /var/svn # svnadmin create /var/svn svnフォルダのパーミッションを変更# chown -R www-data:www-data /var/svn # chmod -R og+w /var/svn WEB-DAV接続時のパスワードを設定するhtpasswd -c /var/svn/.svnpasswd mydavuser /etc/apache2/mods-enabled/dav_svn.confの編集<Location /svn> DAV svn SVNParentPath /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 </Location> /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/myproject /var/svn/conf/svnserve.confの編集[general] anon-access = none auth-access = write password-db = passwd /var/svn/conf/passwdの編集[users] svn = 設定したパスワードを入力 initdの再起動/etc/init.d/openbsd-inetd restart |
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~