第6回 ソースコードの管理をしよう(CVS編)SourceForge.jpではじめるオープンソースプロジェクト(1/2 ページ)

プロジェクトを立ち上げ、その初期タスクもすべて片付きました。では、実際の開発作業を始めるためのソース管理の設定を行いましょう。今回は、CVSの設定方法を説明します。

» 2007年07月13日 02時03分 公開
[安井 卓,ITmedia]

 今回はソース管理の設定を行います。これを済ませれば、ようやく実際の開発作業を始めることができます。SourceForge.jp(以下、sf.jp)では、バージョン管理ツールとしてCVS(Concurrent Versions System)を使用していますが、2007年3月からは、CVSに加えてSubversionも正式にサポートされました(関連記事参照)

 そこで今回はCVSの設定方法を説明し、Subversionについては次回解説することにします。

CVSへのアクセス方法

 sf.jpのCVSサーバは、以下の3種類の方法でアクセスできます。

  • pserver経由のAnonymoous(匿名)アクセス
  • Web経由のアクセス
  • 開発者向けのssh経由でのアクセス

 pserver/Web経由でのアクセスでは、誰でもソースコードをWebブラウザで見たり、取得して修正したりできますが、リポジトリへのコミットはできません。コミットできるのは、開発者がssh経由でアクセスしたときだけです。それぞれのコードへのアクセス方法は、プロジェクトメニューの「ソースコード」を選択すると表示されます。

 開発者がCVSリポジトリに書き込むためには初期設定を行う必要があります。この設定は一度済ませてしまえば、ほかのプロジェクトに参加したときに再度行う必要はありません。

ssh公開鍵を登録しよう

 開発者としてCVSサーバを利用するには、ssh経由でアクセスする必要があります。sf.jpでは、セキュリティ強化のために、パスワードでのsshログインを許可していません。そのため、sshアクセスには、ssh公開鍵をsf.jpに登録する必要があります。sshに関しての詳しい説明は(参考文献)をご覧ください。この記事では、openssh 4.3として進めていきます。

ssh鍵ペアの作成

 sshは公開鍵暗号方式を利用しているので、まずは鍵ペア(秘密鍵と公開鍵)を生成します。sshプロトコルにはssh version 1/2の二種類がありますが、sf.jpではどちらのキーでも利用できます。すでに鍵を持っている場合は、それを利用すればいいので、この項は読み飛ばしてもらって結構です。

 鍵ペアを生成するときは、ssh-keygenコマンドを使います。「-t」オプションで、鍵のタイプを指定できます。例えば、ssh version 2のDSA鍵を作るときは、以下のようにします。


% ssh-keygen -t dsa [ENTER]
Generating public/private dsa key pair.
Enter file in which to save the key (/home/tach/.ssh/id_dsa): [ENTER]
Enter passphrase (empty for no passphrase): パスフレーズ入力 [ENTER]
Enter same passphrase again: パスフレーズ再入力 [ENTER]
Your identification has been saved in /home/tach/.ssh/id_dsa.
Your public key has been saved in /home/tach/.ssh/id_dsa.pub.
The key fingerprint is:
91:e0:60:b6:ab:1f:4a:c3:ea:7e:3c:5d:b4:18:d6:03 tach@foobar

 ssh-keygenコマンドを実行すると、前記のように鍵を保存するファイル名とパスフレーズを聞かれます。ファイル名は変更の必要がなければそのままEnterキーを押します。パスフレーズは他人が予想しにくく、なるべく長いものを利用しましょう。パスフレーズを空にすると、パスフレーズの入力なしでログインできますが、セキュリティ上好ましくないので、必ずパスフレーズを設定しましょう。パスフレーズを設定した場合でも、ssh-agentなどの認証エージェントを利用すれば、毎回パスフレーズを打つ手間を省くことができます。

 さて、このとき.sshディレクトリにできたid_dsa.pubが公開鍵です。公開鍵は中身が見られても問題ありませんが、秘密鍵(id_dsa)の扱いには注意してください。

ssh公開鍵を登録する

 鍵ができたら、sf.jpに登録してみましょう。sf.jpにログインしてから、ユーザーメニューの「アカウント管理」を選択します。自分がなんらかのプロジェクトのメンバーであれば、このページの下に「シェルアカウント情報」の項目が出てきます。どのプロジェクトにも属していない場合は、この項目は表示されません。ここに、現在登録してある公開鍵の数が表示されています。

 当然、はじめてのときは「0」になっているはずです。「鍵の編集」をクリックして編集画面に移ります(画面1)

画面1 鍵の編集ページ

 この編集画面のテキストエリアに、先ほどのid_dsa.pubの内容をコピーします。id_dsa.pubの中身は長いですが一行なので、改行などを入れずにコピーしてください。改行を入れると正しい鍵として認識されず、sshログインできません。

 正しく入力できたら、「更新」をクリックします。更新後、「シェルアカウント情報」の鍵の数がきちんと増えていれば、更新は成功です。ただし、公開鍵を登録してもすぐにはログインできません。しばらく待つ必要があります。一時間以上待ってもログインできない場合は、途中に改行が入ってしまっていたりして、登録に失敗している可能性があります。その場合は、もう一度鍵の編集ページで登録しなおしてください。

ソースコードをCVSに入れよう

 さて、いよいよCVSにソースコードを登録します。CVSに登録するときは、開発者向けのssh経由でのアクセスを使います。CVSにはじめて登録するときは、cvsのimportサブコマンドを使います。ソースコードを編集しているディレクトリに入って以下ように実行します。


% export CVS_RSH=ssh
% cvs -d :ext:@cvs.sourceforge.jp/cvsroot/ import -m "Initial import to cvs"   start

 1行目はCVSにssh経由でアクセスするための設定で、2行目がソースコードの登録コマンドです。<user_id>、<project_unix_name>、<module_name>の部分は、それぞれ自分のユーザーID、プロジェクトのUNIX名、CVSモジュール名に置き換えて実行してください。CVSモジュール名は、そのソフトウェアの名前にするのが一般的です。例えば、ソースコードだからといって「src」というモジュール名にする方がいますが、これだと、チェックアウトしたときのデフォルトのディレクトリ名が「src」になってしまうので何のソースか分からなくなってしまいます。何らかの理由でソフトウェア名以外のモジュール名を使いたい場合でも、ほかのソフトウェアと区別できるような名前にするようにしましょう。

 CVSでは、以前の状態に戻したりすることがとても簡単に行えるので、こまめにCVSにコミットしていくようにしましょう。間違えてもすぐに元に戻せますから、コミットを怖がる必要はありません。例えば、間違ってファイルを登録したとしても、それを(CVS上で)削除すればいいだけです。

 なお、ソースコードの管理はcvsコマンドを介したリモート操作ですべて行えるので、sf.jpのCVSサーバでは、セキュリティ上の配慮からシェルログインを禁止しています。しかし、例えば、間違って公開してはいけないようなファイルを登録してしまったような場合は、サーバ上でCVSリポジトリを直接編集しなければなりません。cvsコマンドでファイルを消しても、以前のリビジョンを指定してチェックアウトすれば、消したファイルが復元できてしまうためです。同様に、ファイルの実行属性を間違えて登録してしまったようなときも、CVSリポジトリを直接編集する必要があります。

 このような(cvsコマンドで対応できない)作業を行う必要があるときは、sf.jpのサポートに連絡するようにしましょう。

関連キーワード

オープンソース | SourceForge


       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ