改訂作業中

SourceForge.JP-Documents

Win32環境におけるSourceForge上のSSH、CVSの使い方

この文書は、Win32環境のユーザがSourceForge上にてSSH, CVSを使用する方法等について書かれた 以下の4つのSourceForge.netサイトドキュメントの翻訳文書です。

  • SourceForge setup tool for CVS/SSH/Win32
  • Win32/CVS/SSH HowTo
  • Win32/CVS/SSH Guide
  • Win32/CVS/SSH addendum for WinCVS

我々の手元にはWin32環境が非常に乏しい状況であるため、この翻訳文書を特に校正していません。パッと見たところ、随分と古い内容であるように見えるのですが、最近の状況が分からないため、特に手を加えることもしていません。大筋の内容は正しいと思いますので、参考として使ってください。

我々はTeraTermでのSSH拡張、scp, ssh-keygen相当のソフトウェアが存在することは知っています。ですが、我々はそれを使ったこともありませんので、Win環境におけるSourceForge.JPのSSH, CVS利用のマニュアルを書いて頂ける方がいれば、我々はそれを歓迎し、すぐにサイトドキュメントとして採用するでしょう。


Win32/CVS/SSHのSourceForgeセットアップツール

これはDelphiで書かれたツールであり、WinCVS/sshのすべての関連
機能をSoruceForge CVSの用法(Windows環境)に合わせてセットアップします。

詳細については、http://sfsetup.sourceforge.net/を参照してください。

SourceForge上におけるWin32/CVS/SSHのハウツー

バージョン: 0.3
日付: 03-Jan-2000
著者: Jay A. Key, scsiprog@geocities.com


I.はじめに

この文書は、Win32環境でSourceForge上のSSHとCVSを使用するためのクイック
アンドダーティなガイドを提供することを目的としています。これらの手順は
私が実践してうまく行ったものであり、私はこれが他の方々にとっても起点と
なることを望んでいます。SSHとCVSの2つのディストリビューションの中から、
連動してSourceForge上のCVSリポジトリにアクセスできるものを見つけるまで、
何度も試行錯誤を繰り返しました。次の手順に従えば、ファイアウォールを
介した接続およびダイアルアップ接続のどちらを経由してもリポジトリ
にアクセスできます。


II.ファイル

以下は、連動することが現在確認されているCVSとSSHのバージョンです。

 ssh:  ftp://ftp.cs.hut.fi/pub/ssh/contrib/ssh-1.2.14-win32bin.zip
  (現在、このリンクは壊れています。完全なssh-win32のミラーサイトが
  見つかるまでは
     http://download.sourceforge.net/sfsetup/sfsetup-v1.2.zip
  の一部として入手できます。)

 cvs:  CVS 1.10(またはおそらくそれ以降)は、http://www.cvshome.org/ 
       から入手できます。

さらに、SSHキーペア(オプション)を作成するには、別のSSHのアーカイブを
ダウンロードする必要があるかもしれません。その1つは、
http://dome.weeg.uiowa.edu/sos/ssh-without-cygwin.htmlから入手できます。


III.セットアップ

* SSHのセットアップ

 1. SSHの実行可能ファイルと設定ファイル用のディレクトリを作成します。
       md c:\usr\local\bin
       md c:\etc
 2.自分の「ホーム」ディレクトリがない場合は、この時に作成します。
   たとえば、私のホームディレクトリはc:\users\akです。ホーム
   ディレクトリに.sshディレクトリを作成します。このディレクトリには
   SSHキーが保管されます。
       md c:\users
       md c:\users\ak
       md c:\users\ak\.ssh
 3. ssh-1.2.14-win32bin.zipアーカイブをc:\usr\local\binディレクトリに
   解凍します。
 4. c:\usr\local\binを自分のパスに追加します。これをautoexec.bat
   ファイルに追加する必要があるかもしれません。
       set path=%path%;c:\usr\local\bin
 5.好みのテキストエディタを使用してc:\etcディレクトリにPASSWDファイ
   ルを作成します。このファイルには、次のようなフォーマットの行を記述
   します。
       keyja:x:1:10:Key, Jay A.:/users/ak/:/windows/command.com
   重要な項目は、1番目と6番目です。1番目は、ローカルマシン上のログイン
   名です。6番目は、自分のホームディレクトリです。7番目は、システム上
   のコマンドシェルです(Win95上ではcommand.com、NT上ではcmd.exe)。
   ただし、*NIXシェルではないので、おそらくここに入れても役には立ちません。
 6. HOME環境変数(autoexec.batにも忘れずに追加してください)に、
   /etc/passwdファイルの6番目の項目に入力したディレクトリと同じディレ
   クトリを設定します。
       set HOME=c:\users\ak
 7.オプション: SSHキーペアを作成します。残念ながら、
   ssh-1.2.14-win32bin.zipアーカイブのssh-keygenは、動作しないようです。
   幸い別のSSHアーカイブのssh-keygen実行可能ファイルを使用できます。
   このssh-keygenを使用するたびにパスワードまたはパスフレーズを入力す
   る必要があるので、この手順は厳密には必要ではありません。
       ssh-keygen
   このコマンドの実行後、identityとidentity.pubが.sshディレクトリに存
   在することを確認します。
 8. SourceForgeとの接続をテストします。
       ssh -l username projectname.sourceforge.net
    当然のことですが、usernameとprojectnameにはSourceForgeでの自分の
    ユーザ名とプロジェクト名を指定してください。
 9. SourceForgeからのキーを承認します。要求され場合はSourceForge用の
   自分のパスワードを入力します。

  ここまできたら、SSHはシステム上で動作し、設定が完了しています。


* CVSのセットアップ:

 1. CVSディストリビューションに入っているREADMEファイルの指示に従ってください。
  オプションの手順(必要でもなければ、必ずしも有利とも限りません。):
 2. SourceForgeの自分のユーザページ上にSSHの公開鍵をアップロードする
  場所があるはずです。identity.pubファイルをそのページ上のテキスト
  エントリボックスにコピーします。改行しないように気をつけてください。
  そうしなければ、正常に動作しません。
 3.しばらく待つと、パスワードを使用しなくてもSSH経由でCVSを使用できる
  ようになるはずです。もちろん、私は正常動作するWin32用のssh-agentを
  まだ見つけていないので、Windows環境では代わりにパスフレーズを入力す
  る必要があります。私のパスフレーズはパスワードよりずっと長いので、
  私の場合は代わりにパスワードを使用したほうが簡単です。



IV.ソースコードのインポート

現在、SourceForge上のCVSのマニュアルに記述されている手順に従えば
ソースをチェックインできます。

 1.ローカルハードドライブ上にあるプロジェクトのルートディレクトリに
  移動します。
 2.ソフトウェアの初期バージョンをCVSにチェックインします。
    cvs -d:ext:username@cvs.projectname.sourceforge.net:/cvsroot/projectname import directoryname vendor start
  前述のように、usernameとprojectnameは自分の設定に置き換えてくだ
  さい。directorynameはCVSリポジトリに作成される新しいディレクトリ名
  です。おそらく、これにも自分のプロジェクト名を使用したくなるでしょう。



変更履歴:
2000-10-27  : SSHへの代替リンクを追加しました。
v0.3, 03-Jan-2000: CVSの初回インポートの-dパラメータに「:ext:」を追加しました。
v0.2, 15-Dec-1999:抜けていたHOME環境変数を追加しました。
v0.1, 15-Dec-1999:初版


Win32/CVS/SSHのガイド

SourceForgeをWindows開発に使用するための入門ガイド


はじめに

これは、Windowsベースのプロジェクトを開発するためにSourceForgeを
セットアップ、設定、および使用できるようにするためのガイドです。

オープンソースプロジェクトは、一般的に*NIX(UNIXフレーバー、Linux、
FreeBSDなど)をベースにする傾向があります。これは、UNIXが通常は標準
システム以外に何もインストールしなくてもSourceForgeと通信できる
完全なツールセットを提供するようになってから顕著です。自分のプロ
ジェクトがWindowsの世界をベースにしている場合、またはWindowsへの移植
を持っている場合は、CVSをどのように動作させるのか、SSHとは何か、
そしてWebサイトを正しくアップロードするにはどのようにしたらよいのか、
などの疑問で頭がいっぱいになるでしょう。それを解決するのがこのガイド
の目的です。

このガイドは、私自身の経験とSourceForgeフォーラムに散在する情報
をもとに編集されたものです。このガイドに使用された情報の編集に
携わっていただいたJay Key氏とJoel Utting氏、そしてSourceForgeに
対してメッセージを送っていただいた皆様に感謝の意を表します。この
ガイドの内容に関しては万全を期しておりますが、誤字、脱字などが
ありましたら、どうぞご自由に私にEメールをお送りください
(注:ガイドは実質上はその後で編集されたものです)。
注:このガイドには、SSHキーペアの作成と使用に関する説明は含まれて
いません。SSHキーペアはオプションであり、Windows環境では完全には
正常動作しません。


セットアップ

この文書は、次の作業が完了していることを前提にしています。

 1. SourceForge上に新規ユーザとして登録した。
 2. SourceForge上でプロジェクトを作成し、プロジェクトがセットアップ
   されたという確認メッセージを受け取った。

上記の作業をまだ行っていない場合は、次に進む前に行ってください。


仲間のツール

Bob Vilaが自分の信頼できるBlack & Deckerツールを使わずに家を建てるの
を見ましたか?SourceForgeでも自分自身のツールが必要になります。

CVS

CVSは、SourceForgeで使用されているバージョン管理システムです。ここに
プロジェクトの全リビジョンのソースコードを保管します。ユーザはローカル
コンピュータ側でCVSクライアントを使用してSourceForge側のCVSサーバ
(リポジトリ)と通信します。

CVSは、ソースコードに対するすべての変更履歴をその変更に関するコメント
と共に保持します。リポジトリ内にある以前のバージョンのすべてのファイ
ルをいつでも参照できます。また、複数のユーザが同時に同じファイルを
扱えるようにしています。これが可能なのは、変更を「コミット」時に
マージし、2つの変更が矛盾している場合はユーザに知らせて矛盾を
なくしてもらい、その後でファイルの新しいバージョンをリポジトリに置く
ことを許可しているからです。

しかし、これに慣れるのはなかなか難しいかもしれません。開発サイクルは
基本的には次のようになっています。

 1.コードがリポジトリにインポートされます。
 2.プロジェクトに取り組んでいるメンバー全員がソースツリー(または
  その一部)の作業コピーを自分のローカルドライブに「チェックアウト」
  します。
 3.各メンバーは自分のコンピュータ環境で快適に作業し、新機能が開発
  されると自分のローカルコピーを「アップデート」してできるだけ最新の
  バージョンと同期させます。そしてファイルを変更したら「コミット」して
  リポジトリに戻します。

CVSでファイルのコミットに関する問題が発生した場合について、少し触れて
おきます。ユーザは問題のファイルをよく調査して矛盾点を手で解決する
必要があります。ファイル内では、変更されたセクションに<<<<< >>>>>で
印がつけられ、両方のバージョンが示されます。古いバージョンを削除
(または予定どおりに動作するように編集)して再度ファイルをコミット
するだけです。CVSに問題がなくなったら、ステップ2に戻って作業を続けます。

CVSに関するマニュアルは、http://www.fsf.org/manual/cvs-1.9/cvs.html
にあります。機会があればこれを一読することをお奨めします。後できっと
役に立つでしょう。

SSH

SSHは、SourceForgeのサーバと安全に接続するためのメカニズムです。
telnetによく似ていますが、SSHは第三者に盗み聞きされない安全な接続を
提供します。利用可能なSSHのソフトウェアについては、このガイドの
終わりにあるリンクを参照してください。

SCP

SCPは、Telnetに代わるSSHと同じように、FTPに代わる安全な機能です。
SCPを使用すれば、SourceForgeシステムとファイルをやり取りできます。
SCPは通常はSSHにバンドルされているので、下のリンクから両方のプログラム
を入手できます。

セットアップ

ファイルをすべて入手したら、自分の環境をSourceForgeと接続するように
セットアップできます。セットアップに必要な操作はほんの少しですが、
自分で行うことが大切です。そうしなければ、自分で接続するときにおそ
らく動作しないでしょう。

SSH

1. SSHのディストリビューションファイルをローカルパスのどこかに解凍
する必要があります。すでに存在するディレクトリに解凍するか、新しい
パスを作成してそれをAUTOEXEC.BATファイルに追加します。たとえば
C:\usr\binに解凍した場合は、このパスを次のようにAUTOEXEC.BATファイル
に追加します。

 PATH C:\usr\bin;%PATH%

以後、このディレクトリを「バイナリディレクトリ」と呼びます。

2. SSHおよびその他ソフトウェアがユーザの設定を保管するための
「ホーム」ディレクトリが必要です。ホームディレクトリはどこにでも置け
ますが、次のように環境変数をAUTOEXEC.BATファイルに追加して設定して
ください。

 SET HOME=C:\home
(またはホームディレクトリを置きたい場所)

3. HOMEディレクトリと同じドライブ上に、\etcディレクトリを作成する必要
があります。上の例では、C:ドライブ上にetcという名前のディレクトリを
作成します。

 c:
 mkdir \etc


4.この新しいディレクトリに、「passwd」という名前のテキストファイルを
作成します。ファイルには次のような1行を含める必要があります。

 bsimser:x:1:10:Simser, Bil:d:/home:c:/windows/command.com

各エントリはコロン(":")で区切ります。最初のエントリは、自分の
SourceForgeユーザ名です。すべて小文字にしてください。次の4つのエントリ
は気にしないでください。6番目のエントリは、ステップ2で設定したHOME
ディレクトリへのパスです。このエントリにはドライブ文字を指定できます
が、以前のDOSの「\」ではなく「/」を必ず使用してください。次のエントリ
は、コマンドインタプリタ(Windows 95/98上ではcommand.com、Windows NT
上ではcmd.exe)を指します。これは使用されませんが、ここにエントリする
必要があります。

5.環境変数とパスを更新するため、システムを再起動します。

6.これでSourceForgeとの接続をテストする準備が整いました。DOSプロン
プトで次のようにコマンドを入力します。

 ssh -l <user_name> projectname.sourceforge.net

<user_name>は自分のSourceForgeユーザ名に置き換えてください。初めて
接続する場合は、SSHが自分の既知のホストに新たにホストを追加している
という内容のメッセージが表示されます。

7.プロンプトでパスワードを入力します。おめでとうございます!これで
SourceForgeにSSH経由でログインできました。

SourceForgeに初めてログインした場合は、SSHにより「.ssh」という名前の
新しいディレクトリがホームディレクトリに作成されます。このディレク
トリには、2つのファイル、「random_seed」と「known_hosts」が含まれて
います。「random_seed」はバイナリファイルなので、気にする必要はあり
ません(このファイルが何に使われるかご存知の方は教えてください)。
SourceForge上のプロジェクトにSSH経由でログインするたびに、
「known_hosts」というバイナリファイルにエントリが追加されます
(ログインしたときに表示されたメッセージを思い出してください)。
このファイルも何に使われるかわかりません。

CVS

標準のコマンドラインのCVSクライアントを使用するか(推奨)、
GUIフロントエンドを選べます。

コマンドライン

1.ここからWindows用CVSのコマンドラインバージョンをダウンロードします。

2.コマンドラインバージョン(cvs.exe)をバイナリディレクトリに解凍
します。便宜上、SSHと同じディレクトリに置くこともできます。

3.次の環境変数をAUTOEXEC.BATに追加します。

 SET CVSROOT=username@cvs.projectname.sourceforge.net:/cvsroot/projectname
 SET USERNAME=username
 SET HOMEDRIVE=d:
 SET HOME=\home
 SET HOMEPATH=\home
 SET CVS_RSH=ssh

コンテキストを自分のSourceForgeユーザ名に、HOMEとHOMEPATH変数を
SSHのセットアップで使用したパスに変更します。projectnameはSourceForge
プロジェクト名を短縮したものにします。

4.これでローカルのソースコードをSourceForge上のCVSにインポート
できます。次のように、ローカルハードドライブ上のプロジェクトの
トップディレクトリに移動します。(読みやすいように数行に分割して
います。これらを1つのコマンドとして入力する必要があります。
行末の'\'は次の行に続くことを示すものであり、実際には入力しないで
ください。 )

 cd \src\myproject
 cvs -d:ext:username@cvs.projectname.sourceforge.net:/cvsroot/projectname \
     import directoryname vendor start

前述のように、usernameとprojectnameは自分の設定に置き換えてください。
directorynameはCVSリポジトリに作成される新しいディレクトリ名です。
おそらく、これにも自分のプロジェクト名を使用したくなるでしょう。

5.最新のソースのコピーをチェックアウトするには、次のコマンドを入力します。

 cvs -d:ext:username@cvs.projectname.sourceforge.net:/cvsroot/projectname \
     co projectname

最初のチェックアウトが終われば、このディレクトリに移動して-dオプション
なしでcvsコマンドを実行できます。たとえば、次のように入力できます。
 cvs update
 cvs commit -m "comments for this commit"
 cvs add myfile.c


WinCVS GUIフロントエンド

1. http://www.wincvs.org/からWindows GUIクライアントをダウンロードします。

2.ファイルを一時ディレクトリに解凍し、SETUP.EXEを実行します。

3. WinCvsクライアントを起動します。

4.システムを再起動します。

4.[Admin - Preferences]を選択し、次のように自分のプロジェクトの
  CVSROOTを入力します。

 username@cvs.projectname.sourceforge.net:/cvsroot/projectname

5.[Admin - Login]を選択し、CVSにログインします。すると、SourceForge
  のパスワードを聞かれます。

6.これで、メニューコマンドを使用してGUIからソースコードをチェック
インまたはチェックアウトできます。


Webサイト

ソースコードがインポートされたので、次にプロジェクトのWebサイトを
どのようにセットアップするか説明しましょう。

1.好みのHTMLエディタを使用してWebサイトをローカルに作成します。

2.次のコマンドを入力してファイルをアップロードします。

 scp filename.htm \
     username@shell.sourceforge.net:/home/groups/projectname/htdocs

これでおしまいです。ファイルがたくさんある場合は、gzipを使用して
それらのファイルを1つのファイルに圧縮し、1ファイルずつではなく
まとめてアップロードしたい場合があるかもしれません。このテクニック
を使うには、次の指示に従ってください。

1. InfoZIPなどの適切なZIPを実装してファイルを圧縮する必要があります
(pkzipはお奨めしません)。または、tarやgzipを使用してファイルを圧縮
できますが、zipの方が使いやすいでしょう。HTML、GIFなどのすべての
ファイルをZIPファイルに入れます。

2.そのZIPファイルをSourceForgeにアップロードします。

 scp filename.zip \
     username@shell.sourceforge.net:/home/groups/projectname/htdocs

3. SSHコマンドでSourceForgeにログインします。

 ssh -l username projectname.sourceforge.net

これでホームディレクトリにいるはずです。ここからすべてのグループ
ファイルが/home/groups/projectnameに保管されます。
/home/groups/projectnameディレクトリに移動します。Webページは
すべてhtdocsサブディレクトリに保管されます。

4. SourceForge上でファイルを解凍します。

 unzip -d filename.zip

5.ファイルの解凍が成功しているか次のコマンドで確認します。

 ls -l

6. SourceForgeからZIPファイルを削除します。

 rm filename.zip

これでおしまいです。ソースコードをインポートしたり、CVSを使ったり、
Webサイトをアップロードしたりできます。もうSourceForgeから離れられ
なくなるはずです。


リンク

・SF-Setup (http://sfsetup.sourceforge.net/)は、初心者がWindows上で
   SourceForge開発環境をセットアップするのを支援するツールです。
・PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/)は、
   Windows用SSHパッケージの再実装です。SSHをインタラクティブに使いたい
   方にお奨めします。


WinCVS用のWin32/CVS/SSHの付録

この付録は、WinCVS GUIフロントエンドの使い方に関する
「Win32/CVS/SSHのガイド」と「Win32/CVS/SSHのハウツー」の補足です。
(注:私の経験は、WinNT環境におけるものです。Win9xは、また奇妙で
不思議な動作をする可能性があります!)

スクラッチからのセットアップ

ユーザ(SourceForgeのユーザ名は「your-username」)がSSHをうまくセット
アップし、SSH経由でSourceForgeのプロジェクト(「your-project」という
名前)にログインできるものと仮定します。また、そのユーザはWinCVSを
インストールおよび起動し、WinCVSとSourceForge CVSリポジトリを通信
させたいと思っています。これは、あまり難しいことではありませんが、
わかりにくいので試行錯誤することでしょう。

・ [CVS Admin - Preferences ...]を選択します
・ [General]タブで次のように設定します。
     □ [CVSROOT]に「:ext:
        your-username@cvs.your-project.sourceforge.net:/cvsroot/your-project」を設定します。
     □ [Authentication]に「SSH Server」を設定します。
・ [Ports]タブで[Check for an alternative rsh name]に「ssh」を設定します。

ここで[CVS Admin - Login]オプションを使用してログインしてみたくなる
でしょう。しかし、「Set the password authentication first in the 
preferences !」という紛らわしいエラーメッセージが表示されます。プリファ
レンスをうまくセットアップしたのに、パスワード認証がSSHサーバに
対して違った動作をします。したがって、[CVS Admin - Login]オプション
を使用しないでください。

代わりに、認証が必要なCVS操作を行うたびに、WinCVSはあまり役に立つ方法
ではありませんがSSHクライアントを起動します。SSHクライアントの起動
は静かで、少し時間がかかるかもしれません。やがて(私にとってはとに
かく)SSHクライアントは最小化されたブランクのDOSシェルウィンドウに
表示され、そのまま静かに私がSourceForgeのパスワードを入力するのを
反応することなく待ちます。それにでも私がこのようにすれば動作します。

WinCVSは認証を行うために少し休止しますが、その後いつものように
リポジトリと通信します。

現在の設定の修正

これは、いかにも簡単そうですが(多少不器用な方にも!)、他のオプション
をいろいろと試したことのある方は、私も確実に負うようなかすり傷をすでに
負っているかもしれません。代わりにCVSROOTに
「pserver:your-username@cvs.your-project.sourceforge.net:/cvsroot/your-project」
と楽観的に設定し、[Authentication]に[.passwd file on the CVS server]
を選択すると、うれしいことに[CVS Admin - Login]を使用して1度だけ
SourceForgeのパスワードを入力すればその後はリポジトリとうまく通信
できるということに気づくでしょう。つまり、既存のモジュールのチェック
アウトやアップデート、変更内容の調査など、快適な読み込み専用の操作が
可能になります。
しかし、WinCVSはユーザをだましてくすくす笑っています。ユーザは変更した
ファイルを誰もが使えるようにリポジトリにコミットしなおすときに、
それができないことに気づきます。つまり、
「cvs [server aborted]: "commit" requires write access to the repository」
というエラーメッセージが表示されます。

これにより特定の問題が生じるのは、上記のような正しいプリファレンス
設定への切り替えが不十分だからです。違う設定が行われたファイルを適切
にチェックアウトした結果、CVS/Rootのメタデータファイルが多数作成
されます。これらのファイルは、自身が管理するマテリアルが
:pserver: CVSROOからチェックアウトされたということを知っています。
その結果、必要に応じてプリファレンスを変更した後でも、WinCVSはSSHを
起動したりユーザに書き込みパーミッションを持っていることを証明する
機会を与えたりしません。これは、WinCVSが、ユーザはすでに自身を証明
しているものとみなしているからです。「...requires write access...」
というエラーメッセージが続けて表示されるだけです。最も簡単の解決
法は、設定を完全に元に戻し、「:ext: CVSROOT」と正しく設定して
ファイルを再びチェックアウトします。ただし、冒険好きな方は、
現在のCVS/Rootのメタデータファイルをすべて編集しても、現在の変更
内容を変えることなく同じ結果が得られます。(私の場合はうまく
行きました。ファイルの変更日付は変わりますが、問題ないようでした。)


2000.07.07
    [CVS Admin - Login]を使わないようにとの警告およびSSHの起動に
     関する説明を追加しました。Beman Dawes氏、ありがとうございました。
2000.06.06
    初版