CVSサーバーを作成する上での個人的メモ
LastUpdate : 08/04/07
CentOS5.1(64Bit版)にて、CVSサーバー(pserver)を構築する際の、作業メモです。
デフォルトでcvsはインストールされないみたいです。
[root@cvs_server ~]# yum list installed | grep cvs [root@cvs_server ~]# |
なので、yumを使ってインストールします。
[root@cvs_server ~]# yum install cvs |
直接アクセスする場合、2401番ポートを空けておく設定をしないといけません(ここでは省略)。
yumによって、インストール直後、/etc/xinetd.d/cvsファイルは以下のようになっていました。
/etc/xinetd.d/cvs |
[root@cvs_server ~]# cat /etc/xinetd.d/cvs # default: off # description: The CVS service can record the history of your source \ # files. CVS stores all the versions of a file in a single \ # file in a clever way that only stores the differences \ # between versions. service cvspserver { disable = no port = 2401 socket_type = stream protocol = tcp wait = no user = root passenv = PATH server = /usr/bin/cvs env = HOME=/var/cvs server_args = -f --allow-root=/var/cvs pserver # bind = 127.0.0.1 } [root@cvs_server ~]# |
デフォルトでは、リポジトリのディレクトリは /var/cvs を使う様子です(server_argsで指定されている)。
変更したい場合はここを変更します。
今回は、特に/var/cvsではダメな理由がないため、デフォルトの設定に従います。
また、disable = yes になってる場合は、cvsが動作しない設定なので、disable = no にしておきます。
また、userの指定がrootになっています。変更したい場合は変更してください。
●まずは、リポジトリを初期化します。
[root@cvs_server cvs]# ls -al ←初期化前に、/var/cvsディレクトリの中を表示させてみる total 16 drwxr-xr-x 2 root root 4096 Mar 17 2007 . drwxr-xr-x 23 root root 4096 Apr 13 18:44 .. ←空っぽです [root@cvs_server cvs]# cd ←なんとなく移動してしまいました(意味は無いです [root@cvs_server ~]# cvs -d /var/cvs init ←初期化を行う [root@cvs_server ~]# [root@cvs_server ~]# ls -al /var/cvs ← 初期化後、/var/cvsディレクトリの中を表示 total 24 drwxr-xr-x 3 root root 4096 Apr 13 19:30 . drwxr-xr-x 23 root root 4096 Apr 13 18:44 .. drwxrwxr-x 3 root root 4096 Apr 13 19:30 CVSROOT ←が追加されている [root@cvs_server ~]# |
-d の後に、リポジトリなどを保管するためのディレクトリを指定します。
●次に、cvs内での識別・認証に使う、ユーザの追加&パスワードの設定を行います。
ファイルの読み書きを行う際、使用されるアカウントを作成します( cvsuserというユーザを追加 )。この設定により、cvsサーバの利用ユーザがリポジトリへアクセスを行う際の、操作権限はcvsuserとしてアクセス可能になります(linux上にアカウントがなくても、cvsを介してチェックアウト・コミットができるようになります)。
[root@cvs_server CVSROOT]# adduser cvsuser [root@cvs_server CVSROOT]# passwd cvsuser Changing password for user cvsuser. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@cvs_server CVSROOT]# |
cvsサーバがアクセスしてきたユーザを識別・認証するための、cvs内で使用される、ユーザID&パスワードファイルを作成する。
[root@cvs_server CVSROOT]# pwd ←cvsのリポジトリ内のCVSROOTディレクトリに移動する /var/cvs/CVSROOT [root@cvs_server CVSROOT]# htpasswd -c passwd nyannyan ←最初はpasswdファイルは存在しないため-cオプションをつける。nyannyanというのはユーザ名 New password: ←パスワードを入力 Re-type new password: ←パスワードを再入力 Adding password for user nyannyan [root@cvs_server CVSROOT]# htpasswd passwd wannwann ←二人目のユーザを追加。以下、上と同じ New password: Re-type new password: Adding password for user wannwann [root@cvs_server CVSROOT]# |
htpasswdはapacheとかと一緒にインストールされるツールみたいです。
htpasswdを使い、とりあえず、passwdファイルを作成します(↑)。そして、仕上げに、手作業で以下のような、変更を加えます。
[root@cvs_server CVSROOT]# cat passwd nyannyan:tglnltP1VsVnE wannwann:Tdz2zZesXHZe6 [root@cvs_server CVSROOT]# |
↓以下のように、行の最後に、「:ユーザ名」を付け加えます(コロンの後のユーザ名は、先ほど、ファイルの読み書きを行う時に使う用に作成したlinuxのアカウントを指定します)
[root@cvs_server CVSROOT]# cat passwd nyannyan:tglnltP1VsVnE:cvsuser ←「:cvsuser」を追加 wannwann:Tdz2zZesXHZe6:cvsuser ←「:cvsuser」を追加 [root@cvs_server CVSROOT]# |
これで、ここに乗っかっているユーザ(nyannyanとwannwann)は、cvsのリポジトリアクセスの際、cvsuserとしてアクセス可能となり、リポジトリからファイルの読み出しなどが可能になります。
●今度は、リポジトリのディレクトリのパーミッションを設定します。
[root@cvs_server var]# ls -al |grep cvs drwxr-xr-x 3 root root 4096 Apr 13 19:30 cvs [root@cvs_server var]# chown -R cvsuser cvs ←cvsディレクトリ以下すべてのディレクトリの所有者をcvsuserに変更 [root@cvs_server var]# ls -al |grep cvs drwxr-xr-x 3 cvsuser root 4096 Apr 13 19:30 cvs [root@cvs_server var]# |
とりあえず、cvsuserが読み書きできるように設定すればいいと思います。
●設定を有効にする(xinetdの再起動)
cvsをインストールし、設定を行った直後の場合、設定が有効になっていないため「 service xinetd restart 」とでもして、xinetdを再起動させてください(xinetd経由で使用する場合。CentOSでyumでインストールすると、これがデフォルトっぽい?)。これで、設定が有効になります(上で書いた、/etc/xinetd.d/cvsファイルの設定)。
※また、ファイヤーウォールが設定されている場合、cvsのポート(2401番)をオープンにしておいてください。
●Eclipseからリポジトリを参照する
Eclipseより、「リポジトリエクスプローラ」から、リポジトリロケーションの追加を行います。
ロケーションのところでは
「ホスト」には、サーバのアドレスを入力します。
「リポジトリー・パス」には リポジトリのパスを入力します。
認証のところでは
「ユーザー」には、cvsにpasswdファイルを作成し、登録を行ったユーザー名前を入力します。
「パスワード」には、↑に対応するユーザーのパスワードを入力します。
接続のところでは
「接続タイプ」をpserverに選択します。
これで「終了」ボタンを押せば、リポジトリに接続できるはずです。