UNIX的なアレ

UNIX的なこととかいろいろ

10分で作る、Subversionレポジトリ

バージョン管理システムにはCVSやsubversionなど様々なものがありますが、サーバーのセットアップに抵抗がある人もいるのではないでしょうか?
しかしながら実際のところ、パッケージ化されているので驚くほど簡単にできてしまいます。
今回は、もっとも簡単な手順でSubversionのレポジトリサーバーを構築する方法を紹介したいと思います。

動作環境

今回の手順の動作環境は下記のとおり。OSをインストールしたままの、まっさらな状態を想定しています。

OS Debian Linux etch
Protocol http
Web Server Apache2.2.3

それでは早速いきましょう。本当に10分間で構築できます。

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

下記の作業はすべてrootで作業をするものとします。(まっさらな状態を想定しているため、sudoは利用していません。)
それでは必要なパッケージをインストールしましょう。

 $ apt-get install apache2-mpm-worker libapache2-svn subversion

apacheのconf設定

それではapacheのconfを設定します。Debianのaptで入れたapacheの設定は、httpd.confに記述はせずに用意されているディレクトリにファイルを置くように作られています。それに従って作成します。
それではconfファイルの作成を行います。

 $ tee /etc/apache2/sites-enabled/subversion << EOF
<Virtualhost *:80>
    <Location /svn>
        DAV svn
        SVNParentPath /var/svn
        AuthType Basic
        AuthName "Basic Auth"
        AuthGroupFile  /dev/null
        AuthUserFile   /etc/apache2/.htpasswd
        Require valid-user
    </Location>
</Virtualhost>
EOF

次はデフォルトの設定をoffにし、新規で追加した設定をonにします。 

 $ a2dissite default
 $ a2ensite subversion

認証ファイルの作成

今回はBasic認証を使っているので、認証用のファイルを生成する必要があります。入力後にパスワードを求められるので、利用したいパスワードを入力してください。

 $ htpasswd -c /etc/apache2/.htpasswd ${username}

subversionレポジトリの作成

それでは、subversionレポジトリの作成を行います。svnadminというコマンドを使って作成をします。apacheからアクセスする必要があるので、オーナーも変更しておきます。

 $ mkdir /var/svn
 $ svnadmin create /var/svn/repo
 $ chown -R www-data:www-data /var/svn/repo

apacheの再起動

それでは最後にapacheの再起動をかけましょう。

 $ /etc/init.d/apache2 restart

apacheが起動してくればこれで完了です!

動作確認

それでは早速、Webブラウザからアクセスしてみましょう。
http://${hostname}/svn/repo にアクセスをして、下記の画面が表示されれば成功です!

便利なパッケージ

さて、初めて見た人は簡単すぎて拍子抜けしたのではないでしょうか。慣れている方であれば、10分もかからないと思います。
今後も10分でつくれるシリーズをいろいろと紹介していきたいと思います。