Développer et de télécharger de Logiciel Open Source

View ソース取得Tips(UNIX like OS編)

category(Tag) tree

file info

category(Tag)
root
file name
unix_tips.txt
dernière mise à jour
2003-01-01 10:29
type
Plain Text
editor
ARAI Mikio
description
ソースを取得する方法、設定などを一通り文書化
language
Japanese
translate

	◎ HOS 開発者のためのソース取得Tips (UNIX like OS編) ◎

					V0.06 (2003/01/01 版)


この文書は、HOS開発者としてソースを取得するための情報を提供することを
目的としています。本来、UNIX like OSユーザであるあなたに、このような文
書は不要であることは十分承知しております。しかも内容的には最低限であり、
不完全な部分を含んでいるかもしれません。しかし、もしかしたらこのような
文書を必要とする後進が現れることもあるでしょう。その為にも、誤りを発見
した場合には報告していただけると幸いです。

この文書は、FreeBSD 4.6-RELEASE 上のcshを前提として実例をあげています。


目次:

1. ただ単にソースが欲しい
2. ソースだけでいいんですか?
3. anonymous CVSを利用してソースツリーを取得したい
4. 開発者としてSSH経由でソースツリーを取得したい
   (プロジェクトメンバーとして)
5. CVSを更に知る




1. ただ単にソースが欲しい

この場合、CVSの設定は全く必要ありません。お手元のPCがインターネット
に接続され、WEB閲覧が可能になっている状態で準備は完了しています。

次のURLにアクセスしてください。
  http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/hos/hos/

ご希望のファイルをクリックし、ご希望のバージョンの(download)をクリック
することで目的は果たせます。

ディレクトリ一覧の状態でDownload tarballをクリックすると、そのディレ
クトリ以下をtar+gzipしたものを取得することも出来ます。

Show files using tag:で、お望みのタグを指定すれば、何時のsnapshot/
releaseでも閲覧、一括取得が可能です。



2. ソースだけでいいんですか?

あなたが開発者としてHOSのソースツリーを追う場合、

  a. 今、すぐに(最新|特定の過去)の(ファイル|ソース全体)が欲しい。
  b. タグの打たれていない、ある2時点間の差分が取得したい。
  c. 自分の加えた修正や追加項目を最新状態との差分にしてプロジェクトに
     送りたい。

こんな欲求が起きるかもしれませんね。その時、一々WEBブラウザを使って色
んなところをさ迷って、ネタ元になるファイル(群)をやっとのことでダウンロー
ドして、なんだかんだ作業を行なうんですか?

sourceforge.jpに登録し、我々のプロジェクトに参加した場合、

  d. 複数のメンバーと同時に一つのソースツリーに対して作業をする。
  e. snapshotやreleaseの作成作業を担う。

こんなことをやるんですよね?

Viewcvs.cgiは確かに便利ですが、実際の開発作業とシームレスに繋ぐには、
いくらなんでもちょっと無理があります。a〜cの作業を容易にし、d,eに関し
ては必須となっているシステム、CVSを使ってみませんか?

CVSは大変多機能なシステムで、その詳細について解説することは筆者の能力
も、本文書の目的も超えてしまいます。ここでは、CVSリポジトリへのアクセ
スへの最初の一歩、checkout(co)までの流れを紹介し、あなたにまず、扉を開
けてもらう事を最終目的とします。部屋の中に入るのか、中で何をするのか…
それはあなたにお任せします。



3. anonymous CVSを利用してソースツリーを取得したい

さて、CVSについて極めて簡単に紹介させていただいたところで、anonymous
CVSを利用したソースツリーの取得を実際にやってみましょう。

それではCVSソフトウェアを…入手に手間は必要ありません。あなたのOSは
それを標準で備えている筈です。備えていない筈がありません。

まずはソースツリーを展開するディレクトリに移動しましょう。

以下に操作とその結果を示します。尚、「%」はシェルのプロンプトであるこ
とを確認しておきます。

%cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos login
Logging in to :pserver:anonymous@cvs.sourceforge.jp:2401/cvsroot/hos
CVS password: ← リターンキーを押します 
cvs login: failed to open ~/.cvspass for reading: No such file or directory
cvs [login aborted]: fatal error: exiting

おや、~/.cvspassが読み込めないというエラーが発生したようです。これは空
のファイルを作っておくことで回避できます。


%touch ~/.cvspass
%cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos login
Logging in to :pserver:anonymous@cvs.sourceforge.jp:2401/cvsroot/hos
CVS password: ← リターンキーを押します 
%

anonymousとしてのpserverへのloginはつつがなく完了しました。それではソー
スツリーをcheckoutしてみましょう。

checkoutには、モジュール名、あるいはディレクトリ名が必要です。
当プロジェクトのWEBサイトのディレクトリやメンバーのためのCVSテスト用
ディレクトリまで含んだ全体を落したいなら、"."を。

HOS-V4のモジュールのみを落したいなら、hos/hos-v4を指定します。

ここでは仮に全体をcheckoutしてみましょう。

%cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co .
cvs server: Updating .
cvs server: Updating CVSROOT
U CVSROOT/checkoutlist
…略…
%

取得出来ました。簡単ですね。



4. 開発者としてSSH経由でソースツリーを取得したい
   (プロジェクトメンバーとして)

あなたがプロジェクトメンバーとなって開発に参加する場合、この作業を欠か
すことは出来ません。安全にSOURCEFORGE.jpにある我々のCVSリポジトリにア
クセスしなければならないのです。

その安全をはかる根幹となるツールがSSHです。SSHツールも勿論、あなたのOS
には標準で導入されています。…え!無い?今時、SSHが標準かそれに準じた
状態で導入されていないようなUNIX like OSを使うのは、不便であるばかりで
なく危険です!バージョッンアップ又は他のOSへの乗換をお薦めします。私見
ですが、FreeBSDはそう悪くない選択だと思いますよ。


それではまず、SSHの設定を行ないましょう。認証に欠かせない、公開鍵/秘
密鍵のペアを生成します。

%ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/m-arai/.ssh/identity):
Created directory '/home/m-arai/.ssh'.
Enter passphrase (empty for no passphrase): ←パスフレーズ入力(エコー無)
Enter same passphrase again: ←パスフレーズ再入力(エコー無)
Your identification has been saved in /home/m-arai/.ssh/identity.
Your public key has been saved in /home/m-arai/.ssh/identity.pub.
The key fingerprint is:
b6:c3:9d:b6:7d:64:0d:f0:5c:c2:5c:39:9a:fc:f0:54 m-arai@samwise

入力されたパスフレーズから、秘密鍵(クライアント側で保持)として
~/.ssh/identity、公開鍵(ログインするリモートに~/.ssh/authorized_keyに加
える)として~/.ssh/identity.pubが生成されました。

さて、この公開鍵をSOURCEFORGE.jpの方に登録しなければなりません。この登
録には、SSLに対応したWEBブラウザが必要です。Xを上げて、mozillaを起動。
SOURCEFORGE.jpのトップページ→ログイン→アカウント名、パスワードの入力
→ログイン!

それでは、アカウント管理→鍵の編集 で、テキストエリアにidentify.pubの
内容をペーストしましょう。

1024 35 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
をコピー&ペースト。

テキストエリアでは、

1024 35 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
…
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
…XXX user_name@host

この様に見えるかもしれませんが、実際には一行で入っていますので心配は要
りません。

「更新」のボタンを押します。これで公開鍵の登録は完了しました。

次は、使用しているシステムのSSHクライアントのデフォルトプロトコル
を確認します。

SSHには、Protocol 1とProtocol 2があり、両プロトコル間には互換性が
ありません。
SOURCEFORGE.jpにはProtocol 1を用いて接続しなければならないので、
デフォルトでProtocol 2を使用するようになっているシステムでは、
SSHクライアントコマンドの起動にProtocol 1を使用するオプション"-1"
が付加されるようにするか、SSHクライアントに関する設定ファイル
(個人設定は$HOME/.ssh/config、システム全体設定は/etc/ssh/ssh_config
:御利用のOS/バージョン/ディストリビューションによって異なる可能性が
あります。マニュアル等で確認してください)に"Protocol 1,2"を加え
ます。

以上でSSHクライアントの設定は完了です。それでは、実際にSSHによる
SOURCEFORGE.jpとの接続が正しく行なわれるか試してみましょう。

ここでのuser_nameは、SOURCEFORGE.jp上でのあなたのアカウント名です。

%slogin -l user_name shells.sourceforge.jp
The authenticity of host 'shells.sourceforge.jp (61.215.208.26)' can't be established.
RSA1 key fingerprint is ab:ea:b4:05:02:45:96:1a:06:f0:22:f9:a3:02:e1:33.
Are you sure you want to continue connecting (yes/no)? yes

↑これは、現在ログインを試みているshells.sourceforge.jpのエントリが、
~/.ssh/known_hostsに存在していない為、このホストとの接続
を続行しても良いのかの確認を求めています。

あなたの周りで何か重大な陰謀が進行していない限り、ここはyesと答えてお
いて問題無いでしょう。

Warning: Permanently added 'shells.sourceforge.jp' (RSA1) to the list of known hosts.

↑known_hostsにshells.sourceforge.jpとその公開鍵を加えると警告を発して
  います。これにより、次からは確認を求めなくなります。

↓鍵のペアを生成する際に入力したパスフレーズを入力します。

Enter passphrase for RSA key 'user_name@frodo': 
Linux sf-usr-shell 2.4.17-shells1 #1 SMP Tue Feb 19 18:54:11 JST 2002 i686 unknown

Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/share/doc/*/copyright

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jul  2 21:19:37 2002 from yahoobb239180192.bbtec.net
user_name@sf-usr-shell:~$ 

sloginに成功しました。これでSSHの設定が適切であることが確認できました。

それではcommit権限を持つ開発者として、ソースツリーを取得してみましょう。

環境変数CVS_RSHを設定します。

%setenv CVS_RSH ssh 

これはcsh/tcshの場合です。御使用のシェルによっては異なる場合があります。

取り敢えずここでは、WEBサイトのディレクトリや開発者向けのテストディレ
クトリをも含んだ、プロジェクト全体のソースツリーを取得してみましょう。
もし、HOS-V4のモジュールだけを取得したければ、"."の代わりに、
hos/hos-v4と指定すればOKです。

%cvs -z3 -d:ext:user_name@cvs.sourceForge.jp:/cvsroot/hos co .
The authenticity of host 'cvs.sourceforge.jp (61.215.208.25)' can't be established.
RSA1 key fingerprint is 44:41:ea:c1:91:b9:0c:0c:0d:fc:58:1e:a8:ec:89:8b.
Are you sure you want to continue connecting (yes/no)? yes

先ほどの場合と同様、cvs.sourceforge.jpとは初対面なので、確認を求めてき
ました。yesと答えます。

Warning: Permanently added 'cvs.sourceforge.jp' (RSA1) to the list of known hosts.
Enter passphrase for RSA key 'user_name@frodo': 

同じようにパスフレーズを入力します。

cvs server: Updating .
cvs server: Updating CVSROOT
U CVSROOT/checkoutlist
U CVSROOT/commitinfo
…
%

ソースツリー取得に成功しました。



5. CVSを更に知る

manを読みましょう。英語が駄目?FreeBSDには日本語manがあります。検索す
れば、CVSの使い方はいくらでも出てきます。気の利いた書店なら、良書を数
冊発見する事が出来るでしょう。あなたの前に既に扉は開かれているのです。

おっと、節のお題が切れてるじゃないですか。正しくは、

- 5. CVSを更に知る
+ 5. CVSを更に知るのは自分でやってね!

でした。




ソースと共にあらんことを!
SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.