Subversionのインストールについて

プログラマのnmaridaです。

バージョン管理システム『Subversion』のLinuxへのインストールの手順をまとめます。
WebDAV経由でリポジトリを公開するものとして進めます。
先にApache、BerkekyDBをインストールしておく必要があります。

【1】必要なファイルをダウンロード

ソースコードからインストールします。
次のサイトからソースコードをダウンロードします。
http://subversion.apache.org/source-code.html
http://www.sqlite.org/download.html
ここでは、次を使用しました。
・subversion-1.6.5.tar.gz
・sqlite-amalgamation-3.6.19.tar.gz

【2】Subversionのインストール

Subversionをイントールします。
Subversionのイントール時にSQLiteも必要になるので合わせて展開します。

$ tar zxvf subversion-1.6.5.tar.gz
$ cd subversion-1.6.5
$ tar zxvf sqlite-amalgamation-3.6.19.tar.gz
$ mkdir ./sqlite-amalgamation
$ cp ./sqlite-3.6.19/sqlite3.c ./sqlite-amalgamation/
$ ./configure
–with-apr=/usr/local/apache2/bin/apr-1-config
–with-apr-util=/usr/local/apache2/bin/apu-1-config
–with-apxs=/usr/local/apache2/bin/apxs
–with-berkeley-db=/usr/local/BerkeleyDB.4.8
–with-ssl
$ make
$ su
# make install

【3】SSLの設定

リポジトリをWebDAV経由(https)で公開しますので、SSLを設定します。
まず、サーバー側の秘密鍵(server.key)を作成します。

$ su
# cd /usr/local/apache2
# mkdir ssl_key_and_crt
# cd ssl_key_and_crt

# /usr/bin/openssl genrsa -des3 -out server.key 1024

※/usr/local/apache2/ssl_key_and_crt/ に
server.key
が生成されます。

次に、署名証明書(server.crt)を作成します。
ここでは、自己署名証明書を作成します。

$ su
# cd /usr/local/apache2/ssl_key_and_crt
# /usr/bin/openssl req -new -x509 -days 3650 -key server.key -out server.crt
Enter pass phrase for server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [GB]: ←適切に入力します。
State or Province Name (full name) [Berkshire]: ←適切に入力します。
Locality Name (eg, city) [Newbury]: ←適切に入力します。
Organization Name (eg, company) [My Company Ltd]: ←適切に入力します。
Organizational Unit Name (eg, section) []: ←適切に入力します。
Common Name (eg, your name or your server’s hostname) []: ←適切に入力します。
Email Address []: ←適切に入力します。

※/usr/local/apache2/ssl_key_and_crt/ に
server.crt
が生成されます。

最後にApacheの設定をします。

■Apache起動時にSSLパスフレーズの入力を省略する設定

$ su
# cd /usr/local/apache2/ssl_key_and_crt
# cp server.key server.nosigned.key
# /usr/bin/openssl rsa -in server.nosigned.key -out server.key

■httpd-ssl.confの設定

$ su
# emacs /usr/local/apache2/conf/extra/httpd-ssl.conf
SSLCertificateFile “/usr/local/apache2/ssl_key_and_crt/server.crt”
SSLCertificateKeyFile “/usr/local/apache2/ssl_key_and_crt/server.key”

■httpd.confの設定

$ su
# emacs /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-ssl.conf

【4】リポジトリの公開

WebDAV経由でリポジトリを公開します。

まず、SVN用のルートディレクトリを作成し、そこにリポジトリを作成します。

$ su
# cd /usr/local/
# mkdir -p svn/var/repos
# cd /usr/local/svn/var/repos/
# svnadmin create –fs-type fsfs /usr/local/svn/var/repos/test_rp
# svn mkdir file:///usr/local/svn/var/repos/test_rp/trunk -m ‘setup trunk’
# svn mkdir file:///usr/local/svn/var/repos/test_rp/branches -m ‘setup branches’
# svn mkdir file:///usr/local/svn/var/repos/test_rp/tags -m ‘setup tags’
# chown -R apache:apache /usr/local/svn/var/repos/test_rp
# chmod -R u+rw /usr/local/svn/var/repos/test_rp

次に、リポジトリに対してのアクセス制限をかけます。
ここでは、Digest認証を設置します。

$ su
# cd /usr/local/apache2/
# mkdir svnauth
# cd svnauth
# /usr/local/apache2/bin/htdigest -c /usr/local/apache2/svnauth/.digest “Subversion Repository” username
# emacs /usr/local/apache2/conf/httpd.conf
<Location “/repos”>
DAV svn
SVNParentPath /usr/local/svn/var/repos
SVNListParentPath On
SSLRequireSSL
Require valid-user
AuthType Digest
AuthName “Subversion Repository”
AuthDigestDomain /repos
AuthUserFile /usr/local/apache2/svnauth/.digest
</Location>

最後に、Apacheを起動しリポジトリを公開します。

$ su
# /usr/local/apache2/bin/apachectl start
https://ドメイン/repos/test_rp/

以上になります。

この記事は

Interest Speaker > How to / Tips > Subversionのインストールについて

この記事と類似または関連した記事

BINDのインストールについて
Redmineのインストールについて
PHPの開発環境構築(Aptana XAMPP Xdebug)
PHPの開発環境構築(Aptana XAMPP Xdebug)