次の手順で、仮想マシンへCentOSをインストールします。
ここでは、家庭のネットワークなどのLAN内にSubversionリポジトリを提供する仮想マシンを作成することを目的とするので、セキュリティ面はあまり考慮しないインストールをしています。要求されるセキュリティや使用しているマシンの状況に応じて、「追加タスク」を選択したり、ファイアウォールやSELinuxの設定などを指定したりしてください。
また、このマシンが使用するIPアドレスをあらかじめ決めておく必要があります。自宅のネットワーク環境について確認して、使えるIPアドレス、ネットマスク、ゲートウェイ(通常はブロードバンドルータ)のIPアドレス、DNS(通常はブロードバンドルータ)のIPアドレスをメモしておきましょう。
VirutalBox Guest Additionsのインストールをすると、さらに仮想マシンを便利に利用できます。しかし、ここではSubversionリポジトリが利用できるところまで説明するのが目的なので、省略します。
CentOSが起動したら、Subversionの設定をします。ユーザー名にroot、パスワードはインストール時に指定したものを入力してログインをします。
CentOSでは、「yum」というコマンドを使って、セキュリティアップデートやアプリケーションインストールができます。ここでは、Subversionに必要なアプリケーションと、SubversionリポジトリをApache HTTP Server(Webサーバ)経由でアクセスできるようにするモジュール「mod_dav_svn」をインストールします。
1.[アプリケーション]→[アクセサリ]→[GNOME端末]をクリック
2.時間が大きくずれていることがあるので、ntpdateコマンドで時刻同期(ntpdが稼働していると、ntpdateコマンドが使えないので実行前にntpd停止、実行後にntpd起動)
# service ntpd stop # ntpdate ntp.ring.gr.jp # service ntpd start
3.※セキュリティアップデート(もし途中で「Is this ok [y/N]:」と聞かれたら、「y」を入力し[Enter])
# yum -y update
4.Subversionのインストール(もし途中で「Is this ok [y/N]:」と聞かれたら、「y」を入力し[Enter])
# yum -y install subversion
5.Apache HTTP Server用Subversionモジュールである「mod_dav_svn」のインストール
# yum -y install mod_dav_svn
6.Subverisonリポジトリを作成
# mkdir /var/www/svn # svnadmin create /var/www/svn/workspace # chown -R apache:apache /var/www/svn
7.Apacheのパスワードファイルの作成(パスワードを変更する場合は、「-c」を付けない。ここでは、「user001」というユーザーを作成し、パスワードを指定している。「New password:, Re-type new password:」で同じ文字列をパスワードとして指定している)
# htpasswd -c /etc/httpd/.svnpasswd user001 New password: Re-type new password: Adding password for user user001
8.Apache HTTP Serverの設定ファイルとSubverisonモジュール設定ファイルをバックアップ
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original # cp /etc/httpd/conf.d/subversion.conf /etc/httpd/conf.d/subversion.conf.original
9.Apache HTTP Serverの設定ファイル(/etc/httpd/conf/httpd.conf)を修正([アプリケーション]→[アクセサリ]→[GNOME テキスト・エディタ]をクリックして表示されるエディタや、viなどGNOME端末で使えるエディタを使う)
【略】 # ServerName www.example.com:80 ServerName svn:80 【略】
10.Apache HTTP ServerのSubverisonモジュール設定ファイル(/etc/httpd/conf.d/subversion.conf)編集
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/svn AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/httpd/.svnpasswd Require valid-user </Location>
11.Apache HTTP Serverの設定について、configtestコマンドで確認。(問題がなければ、「Syntax OK」と表示される。問題がある場合は、エラーメッセージを読んで対処が必要)
# service httpd configtest Syntax OK
12.Apache HTTP Serverを起動
# service httpd start
13.Subversionアクセスの動作確認(ここでは、CentOSのIPアドレスが192.168.0.100だとして指定している。また、ユーザー「user001」でアクセスができるか確認をし、「hello」という文字列を含む「hello.txt」を作成してSubversionリポジトリへ追加してコミットできることを確認している。エラーが出た場合は、設定に問題があるので対処が必要)
# svn checkout http://192.168.0.100/repos/workspace --username user001 認証領域: Authorization Realm 'user001' のパスワード: リビジョン 0 をチェックアウトしました。 # cd workspace # echo "hello" > hello.txt # svn add hello.txt A hello.txt # svn commit -m "added hello.txt" 追加しています hello.txt ファイルのデータを送信中です. リビジョン 1 をコミットしました。
14.Subversionアクセス動作確認ができたら、httpd自動起動の設定
# chkconfig httpd on
Subversionリポジトリにあるファイルの履歴は、「リビジョン」単位で管理されているので、リビジョン番号によって、ある時点の履歴を取り出せます。最初にcheckoutした時点では、リビジョンは0でした。hello.txtを追加した時点では、リビジョンは1でした。このリビジョンは、ある時点のファイルを取り出すときに使われる重要な概念ですから覚えておきましょう。
以上で、仮想マシンCentOSに、192.168.0.100のIPアドレスで動作するホストsvnをインストールし、「http://192.168.0.100/repos/workspace」というURLのSubversionリポジトリを用意できました。Subversionリポジトリには、まだ「hello.txt」しか入っていませんが、ここに母艦とNetBookで共有したいファイルをコミットして同期を取れるようになりました。
次のページでは、いよいよNetBookにSubversionクライアントをインストールし、ファイルの同期をやってみます。
Copyright © ITmedia, Inc. All Rights Reserved.