Subversion環境をCentOSで構築

CentOSのインストール、ネットワーク設定が出来た所で、いよいよ、Subversionの設定です。

※設定にあたり、こちらのサイトを参考にさせて頂きました、というか焼きましの内容になりますが、自分なりにつまづいた所もあるのでとにかくメモです。

10分で作る、Subversionレポジトリ (CentOS 版)

パッケージのインストール

設定に必要なパッケージは以下になります。

Apache Web Server(httpd) Webサーバソフト
Subversion バージョン管理システム
mod_dav_svn Subversionリポジトリを提供する、Apache設定ディレクティブ*1
# yum -y install httpd subversion mod_dav_svn

リポジトリ作成

リポジトリの作成と、Subversionの決まりといえる、初期フォルダを作成します。

trunk 開発の本流
tags 特定のツリーのスナップショット
branches 本流とは異なる更新をする支流

というのが一般的のようですが、Subversionの本家では、branchesで開発を進め、OKとなったものをtrunkに放り込むというような使い方をしている模様です。多分。
各人が色々試しているような環境だとそういうのがいいのかなー。この辺りは考慮していきたいです。

/var/www/svnで、svnリポジトリ管理フォルダを作成し、そこにsampleリポジトリを作成。
"svn mkdir"でsubversionの初期構成を作成した後に、"chown"で編集権限を与えます。

# mkdir /var/www/svn ←svnリポジトリ設置場所を作成
# svnadmin create /var/www/svn/sample ←リポジトリ作成
# svn mkdir file:///var/www/svn/sample/trunk \ ←この行を含む以下4行でディレクトリを作成。
# file:///var/www/svn/sample/tags \
# file:///var/www/svn/sample/branches \
# -m 'Initial import.' ←''内がコミット時のログとして残るようになる。
# chown -R apache:apache /var/www/svn ←編集権限を設定

認証ファイルの作成

今回は、Basic 認証*2を行うので、認証用のファイルを作成します。

# htpasswd -c /etc/httpd/.htpasswd {USERNAME1}*3

実行すると以下のように、パスワードの入力が求められますので、パスワードを決定して下さい。

# New password:pass123
# Re-type new password:pass123
# Adding password for user mario

これで、marioというIDで、パスワードがpass123というユーザが作成できました。
ユーザ作成時の -c を外して実行すると、ユーザを追加することができます。(-c を付けると再作成され、元のが消えます。)

Subversion設定ファイルの編集

次に、Subversionの設定ファイルを編集していきます。

# vi /etc/httpd/conf.d/subversion.conf

設定ファイルを開いたら、以下のように編集してください。


 DAV svn
 SVNParentPath /var/www/svn

# 
#   SSLRequireSSL

   AuthType Basic
   AuthName "Authorization"
   AuthUserFile /etc/httpd/.htpasswd
   Require valid-user
# 

Apache の再起動

設定が終了したら、Apacheを再起動します。

# /etc/init.d/httpd start

動作確認

別PCから、ブラウザで下記のアドレスを開き、認証画面が表示されますので、IDとパスワードを入力後に認証OKとなり、リポジトリ内が見える状態だとOKです。

http://{servername}/repos/sample/ 

ここの"repos"が、subversion設定ファイルの、 の"repos"になりますので、svnとしたり、お好きなものに設定して下さい。*4


一度手順を理解すると、centosのインストールから、30分ぐらいで、CentOSによるSubversion環境が作成できちゃいます。外部に公開して云々となると、これではダメでしょうが、ローカルで使うにはこれで十分だと思います。実際に一番時間がかかるのは、イメージファイルのダウンロードかも(笑)
まぁ、これも参考にさせて頂いたサイトを含めて、先人達がメモを残してくれているからですね。感謝。

*1:指示ファイル。まぁ、設定ファイルですね。

*2:IDとパスワードによる認証です。

*3:htpasswd -c /etc/httpd/.htpasswd mario という風に入力します。

*4:ここは知ってたのに忘れてて、値が一致しておらずに全然つながらない・・・とハマりました(笑)