Svn-environment
SVN-環境設定
SVNのインストール
Subversionは、人気のあるオープンソースのバージョン管理ツールです。 オープンソースであり、インターネット経由で無料で利用できます。 ほとんどのGNU/Linuxディストリビューションにはデフォルトで付属しているため、すでにシステムにインストールされている可能性があります。 インストールされているかどうかを確認するには、次のコマンドを使用します。
[jerry@CentOS ~]$ svn --version
Subversionクライアントがインストールされていない場合、コマンドはエラーを報告します。そうでない場合、インストールされたソフトウェアのバージョンを表示します。
[jerry@CentOS ~]$ svn --version
-bash: svn: command not found
RPMベースのGNU/Linuxを使用している場合は、インストールに yum コマンドを使用します。 インストールが正常に完了したら、 _ svn --version_ コマンドを実行します。
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install subversion
[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03
DebianベースのGNU/Linuxを使用している場合は、インストールに apt コマンドを使用します。
[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:
[jerry@Ubuntu]$ sudo apt-get install subversion
[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49
Apacheセットアップ
GNU/LinuxにSubversionクライアントをインストールする方法を見てきました。 新しいリポジトリを作成し、ユーザーへのアクセスを許可する方法を見てみましょう。
サーバーに Apache httpd モジュールと svnadmin ツールをインストールする必要があります。
[jerry@CentOS ~]$ su -
Password:
[root@CentOS ~]# yum install mod_dav_svn subversion
*_mod_dav_svn_* パッケージを使用すると、HTTPを使用して、Apache httpdサーバー経由でリポジトリにアクセスでき、 *_ subversion_* パッケージによってsvnadminツールがインストールされます。
Subversionは、その構成を /etc/httpd/conf.d/subversion.conf ファイルから読み取ります。 設定を追加すると、 _ subversion.conf_ ファイルは次のようになります。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location/svn>
DAV svn
SVNParentPath/var/www/svn
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile/etc/svn-users
Require valid-user
</Location>
Subversionユーザーを作成して、リポジトリへのアクセスを許可します。 _htpasswd_コマンドは、HTTPユーザーの基本認証のために_usernames_および_passwords_を保存するために使用されるプレーンテキストファイルを作成および更新するために使用されます。 '-c’オプションは_password_ファイルを作成します。_password_ファイルが既に存在する場合は上書きされます。 これが、 '-c’オプションを初めて使用する理由です。 「-m」オプションは、パスワードのMD5暗号化を有効にします。
ユーザー設定
ユーザー tom を作成しましょう。
[root@CentOS ~]# htpasswd -cm/etc/svn-users tom
New password:
Re-type new password:
Adding password for user tom
ユーザー jerry を作成しましょう
[root@CentOS ~]# htpasswd -m/etc/svn-users jerry
New password:
Re-type new password:
Adding password for user jerry
[root@CentOS ~]#
すべての作業を保存するSubversion親ディレクトリを作成します(_/etc/httpd/conf.d/subversion.conf_を参照)。
[root@CentOS ~]# mkdir/var/www/svn
[root@CentOS ~]# cd/var/www/svn/
リポジトリのセットアップ
_project_repo_という名前のプロジェクトリポジトリを作成します。 _svnadmin_コマンドは、メタデータを格納するための新しいリポジトリとその中にいくつかの他のディレクトリを作成します。
[root@CentOS svn]# svnadmin create project_repo
[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug 4 22:30 db
-r--r--r--. 1 root root 2 Aug 4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug 4 22:30 locks
-rw-r--r--. 1 root root 229 Aug 4 22:30 README.txt
リポジトリのユーザーとグループの所有権を変更しましょう。
[root@CentOS svn]# chown -R apache.apache project_repo/
SELinuxステータスツールを使用して、_SELinux_が有効になっているかどうかを確認します。
[root@CentOS svn]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 24
Policy from config file: targeted
サーバーでは、SELinuxが有効になっているため、SELinuxセキュリティコンテキストを変更する必要があります。
[root@CentOS svn]# chcon -R -t httpd_sys_content_t/var/www/svn/project_repo/
HTTP経由のコミットを許可するには、次のコマンドを実行します。
[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t/var/www/svn/project_repo/
Apacheサーバーを再起動すると、Apacheサーバーの構成が完了します。
[root@CentOS svn]# service httpd restart
Stopping httpd: [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
[root@CentOS svn]# service httpd status
httpd (pid 1372) is running...
[root@CentOS svn]#
Apacheサーバーを正常に構成しました。次にリポジトリーを構成します。 正規のユーザーのみにリポジトリへのアクセスを提供し、デフォルトの認証ファイルを使用するには、 _project_repo/conf/svnserve.conf_ファイルに次の行を追加します。
anon-access = none
authz-db = authz
従来、すべてのSubversionプロジェクトには、プロジェクトのルートディレクトリの直下に trunk、tags、 および branches ディレクトリがあります。
_trunk_は、すべての主要な開発が行われるディレクトリであり、通常、開発者がプロジェクトに取り組むためにチェックアウトします。
_tags_ディレクトリは、プロジェクトの名前付きスナップショットを保存するために使用されます。 実稼働リリースを作成するとき、チームはリリースに入るコードにタグを付けます。
_branches_ディレクトリは、さまざまな開発ラインを追求するときに使用されます。
プロジェクトリポジトリの下に、トランク、タグ、およびブランチのディレクトリ構造を作成します。
[root@CentOS svn]# mkdir/tmp/svn-template
[root@CentOS svn]# mkdir/tmp/svn-template/trunk
[root@CentOS svn]# mkdir/tmp/svn-template/branches
[root@CentOS svn]# mkdir/tmp/svn-template/tags
ここで、ディレクトリを /tmp/svn-template からリポジトリにインポートします。
[root@CentOS svn]# svn import -m 'Create trunk, branches, tags directory structure'/tmp/svn-template/
Adding /tmp/svn-template/trunk
Adding /tmp/svn-template/branches
Adding /tmp/svn-template/tags
Committed revision 1.
[root@CentOS svn]#
これは完了です! リポジトリが正常に作成され、 _ Tom_ および Jerry へのアクセスが許可されました。 これ以降、サポートされているすべての操作をリポジトリに対して実行できます。