目次へ

NetBeans4.0でSourceforgeをチェケラー!  

NetBeans4.0からは, IDE上で外部のレポジトリをSSH経由でインポートしたりチェックアウトしたりできるようになったようだ。インポートは試してないがチェックアウトを,我がSourceforge.jp上のプロジェクトのレポジトリで試してみた。 UNIX系OSではあまり問題なかったのだが問題はWindowsだった。だってSSHとかCVSが標準で入ってないんだモーン。だがNetBeans.JP武闘派を気取る以上,逃げられぬぞのに子! これは上から下に読む形式デス。

NetBeans4.0は2004年10月31日付けのDaily Buildを使っています。Beta2はバグバグつかあんなハンパもんをベータで出してんなゴルァー!


アイタタタ

最近NetBeans.JPのメーリングリストなどで,まるで自分が開発したツールであるかのようにフカしまくっていた主婦,のに子のもとにある日一通のメールがきた。

「WindowsでPuTTYとWinCVSを使った環境でNetBeansからsourceforge.jpのレポジトリに接続しチェックアウトやインポートをしたいのですがうまくいかないんです」

アイタタ,と思った。
それは,これまでわたしが逃げまくっていたことである。
だって,Windowsって標準でCVSとかSSHとか,入ってないじゃないですか。こりゃあむしろUNIX系のほうがカンタンだ。
さらに,わたしがNetBeans3.6を研究したところでは,この時点ではインポートやチェックアウトはどうもSSH経由では行えないようだった。3.5.1では明確に「インポートやチェックアウトはコマンドでやっといてくれ,NBの仕事はそのモジュールをマウントするところからサ」というようなことがヘルプにもドキュメントにも書いていた。う〜ん,「残念ながらNetBeansではそうみたいですのヨ,ワタシのせいじゃなくて仕様でして」と書いて済ませようかと思った。しかし,

「NetBeans4.0 beta2でやっているんですが・・・」

おお。NB4。そういえば,蟻馴らしにばかりかまけていて,全然試していなかった。もしかしたらできるようになっているかな。でも,Windowsじゃなあ・・・

「Eclipseではあんまりサックリできたので・・・」

なに。

それは,のに子をなだめようというときには言ってはならぬ言葉であり,逆に奮起させようというときには大いに言うべき言葉である。なんだっけ昔ドラマがあってさー。そう,

思い出した。「噂の刑事トミー&マツ」。

あー。しょうもなさすぎる。恥ずかしいほどしょうもない。

松崎しげるさんと国広富之さんのコメディータッチの刑事ドラマだった。うんうん。あれでちょっとナヨっぽいトミー(国広さん)のほうが,相棒のマツ(松崎さん)に必ず,危ないところで

「だらしねえぞ,おまえなんか男じゃない,女だよ,トミ子ー!」

と言われると,いきなりトミーが「なにをーッ」と奮起してすごい力を出すという,今だったら女性差別で問題になりそうなドラマだった。中学生くらいだったかな当時私はそれを見て,あんな毎週毎週言われたら慣れちってパワーも出なくなるんじゃないの,と考えたものだが,実はそうでもないらしい。つまり,

「Eclipseではできるんだけど」「なにヲーッ」

ということでよくわたしも奮起するからである。特に今回は,

あれだけ日食野郎みてえに変わったNB4で,日食野郎にできることをできねえままいけしゃあしゃあとすましてるわけがねえよなオイ

と,NB4に対しても思った。

なお,このメールをくださった方も,NetBeansが好きなのでくやしいと言ってくださっていた。

ものすげえ冗長なイントロになってしまったが

奮起しないわけにはいくまい。


PuTTYとその仲間

PuTTYというのはWindowsでSSH通信を扱うようにできるツールだ。その使い方についてはPuTTYでググれば本当に多くのすばらしい日本語ドキュメントが得られる。ここではカンタンに記すが,日本の方によるPuTTYの日本語版というものが紹介されていたので,いただいてきた。

http://hp.vector.co.jp/authors/VA024651/download.html

以下掲載するのはその日本語版のスクショであるが,それらにつき疑問な点があったら作者さんじゃなくてのに子本人にチョクできいてチョ。

実はNetBeansでPuTTYをプットする(実はパッティと読むらしい)には他に

puttygen.exe
plink.exe
pageant.exe

という3つのツールも必要である。これらは,PuTTYの本家からいただいてきた。

http://www.chiark.greenend.org.uk/‾sgtatham/putty/

上の「pageant」というのは「pagent」ではないのである。なんか,エージェントなんだから後者であるような気がするのだが。ページアント?ちなみに作者さんはケンブリッヂにお住まいで大学もそこだ。クェーンズエングリッシュか?

それは全然いいとして,とにかく以下のようなファイル構成にした。PuTTY日本語版はzip形式のファイルであり,解凍すると,puttykjbin-...というひとつのフォルダになるので,これをc:¥puttyという名前でコピーした。そこにあとからゲットした三つの実行ファイルも入れた。puttyjp.exe, puttygen.exe, plink.exe, pageant.exeが全てc:¥puttyのディレクトリの下に入ることになる。


WinCVS

これは本家サイト

http://www.wincvs.org/

からいただいてくる。有志の方が日本語版を出しておられるが,まあ英語のにした。WinCVSには実際にcvsコマンドなどを扱う「CVSNT」が一緒に入っている。もしかしたら今回はCVSNTだけを

http://www.cvsnt.com/cvspro/

などからもらってくればよかったのかもしれない。だとしたらゴメーヌ。

これも,zip形式のファイルを解凍すると,中にはインストーラが入っていて,それをダブクリすればチャチャとインストール可能だ。


秘密鍵と公開鍵

 puttygen.exeはWindows上でSSHのための秘密鍵アーンド公開鍵ファイルを作ってくれるためのソフトだ。

ダブルクリックするとこんな画面に。

どうやら最近SourceforgeはSSH1もSSH2も両方サポートするようになったらしい。でもわたしが最初にレポジトリにアクセスしたときはSourceforgeはSSH1なんだヨ1なんだヨと言われていたような気がする。ということで「Parameters」欄の鍵生成のタイプはSSH1にしてしまいました

では,Windowsでゼロから暗号鍵を生成することにしよう。「Generate」てヤツをクリックしてもいいし,メニュー「Key」から選ぶこともできる。

暗号の作り方はなかなか楽しい。こんな画面になる。

ステータスバーのまわりをマウスでうろうろすると,それに応じて乱数が作成されるらしく,ステータスバーが延びていく。これが伸びきると暗号ファイルが作成される。

これは途中でやめちった暗号だから公開しても問題ないもーんもーん。さて,ここの「Key passphrase」という欄に適当なパスフレーズを入力する。まあー英数字にしておくのがいいだろう。
そして,「Save public key」及び「Save private key」を一回ずつ押してそれぞれ公開鍵ファイル秘密鍵ファイルを保存する。別々に押すのは,それぞれ名前も,保存場所も,変えられるからのようだ。もっとも,公開鍵ファイルの拡張子は「..pub」,秘密鍵ファイルの拡張子は「.ppk」にそれぞれしておく。ここでは素直にそれぞれ

c:¥putty¥identity.pub(公開鍵ファイル)
c:¥putty¥identity.ppk(秘密鍵ファイル)

にした。

これで暗号鍵ファイルはできた。


公開鍵の中身をSourceforgeに登録

sourceforge.jp に行って,かねてから登録しておいたアカウントでログインする。それから「アカウント管理」のページに入る。

うーんと下のほうに「鍵の編集」というリンクがある。この例では生意気にも鍵を2丁登録しているが,まだその2つの鍵を使い分けられるかどうかは確かめていない。

すると鍵の編集テキストエリアが表示されるので,そこにidentity.pubの内容をコピペする。identity.pubはテキストエディタで開けるテキストデータなのだ。

「更新」ボタンで鍵が登録される。一説には登録した鍵が有効になるまで6時間くらいかかるというがそうでもなさそうだ。


さてようやくPuTTYを操作する

ここまでやっておいて,PuTTYを操作する。ここでは日本語バージョンを使わせていただいているので実行ファイル名はputtyjp.exeだ。

ダブルクリックするとこんな画面になる。まず,「セッション」というものを定義する。

「ホスト名」を「cvs.sourceforge.jp」にする。
プロトコルがSSHだったりポートが22だったりというのはデフォルトだ。
「保存されたセッション」というのは,以下の設定をするセッションにわかりやすい名前をつけて保存するということだ。ここではsourceforgeという名前にした。ホントはホスト名と同じく「cvs.sourceforge.jp」にしておいたほうがわかりやすいんだそうだが設定しちゃったものはショガないね。なおここではまだ「開く」というすごく誘惑的なボタンは押さないー。

次。「接続」の「SSH」をクリック。ここで,さらにSSHは1なんだニョと設定する。「プロトコルオプション」の「優先するSSHプロトコルバージョン」というところだ。「1 only 」でもいいんだけどまあ,「1」にラヂヲをくれてやれば十分。

さらに,「SSH」の下の「認証」をクリック。

「認証のためのプライベートキーファイル」にc:¥putty¥identity.ppkファイルを指定しておくと,すぐに接続が試せる。ここでその誘惑的なボタン「開く」をクリックすると,コンソールが立ち上がってさきほど設定したパスフレーズをきいてくる。そこで入力してやるとナニが起こるかというと,コンソールが閉じるのだ。あたかも落ちたかのように。エラーになったほうがむしろエラーメッセージが出たままコンソールは維持される。ちょっと虚しい。

ここで,「認証パラメータ」に「エージェントフォワーディングを認める」というところにチェケラーを入れておくのがミソだ。エージェントフォワーディングとはこれから説明するものである。

ここまでの設定を保存するにはもういちど「セッション」をクリックして,「保存されたセッション」てヤツが見えるようにして,「保存」をクリックする。こりゃちょっとめんどくさいかなー?サイモ〜ン(作者)。早く結婚しろヨ(関係ない)。


pageantを準備する

さてエージェントというのは何か。それがピーエージェアーントとどうしても発音したくなるpageantだ。

しかしどうしてエージェントというと誰も彼もこの笑うせェるすまんのような帽子をかぶせようとするのだろうか。確か笑うせェるすまんは昔は黒いせェるすまんというタイトルだったはずだがやはり何か問題があったのだろうか。とにかくこれをダブクリするとせェるすまんはおとなしくタスクトレイにおさまりますのヨーッホッホッホ。

このせェるすマンに仕事をさせるには右クリックをするんですのヨーッホ(しつけえ)

1600x1200の解像度だといったいどのアイコンのメニューなのかわからねえくらいアイコンが小せえ。とにかくこれで「View Keys」を選ぶ。

最初は空白の画面が現れる。これで「Add Key」ボタンをクリック,identity.ppkファイルを指定する。そのときにさきほどのパスフレーズを求める入力ウィンドウが現れるので,入れてやる。こうして,上記のようなキーのリストが現れる。たぶん表示されるのは秘密でもなんでもない内容なんだろうけど一応隠しちった。

「Close」をクリックすると常駐モードに戻る。こいつのナニが便利なのかというと,一度ここでパスフレを入れておけば,あとはいちいちコミットだなんだかますときにこちらが入力しなくてもエージェントが入力代行してくれるということだ。それをセキュリティの低下とみなすかどうかは人次第だろう。諸解説ではむしろ,いちいち入力がめんどいというのではなく,コマンドウィンドウが立ち上がって人間にパスフレーズを要求するという過程に,これと連携するアプリケーションが対応しないことがあるという問題を解決するために導入する措置のようだ。よくわかんないけど。

このエージェントにフォワーディングするのを許すかどうか,というのがさきのPuTTYの設定である。だからやはり心のこもった手打ちにしたい場合はさきほどのチェックボックスをオフにしておけばよいだけの話だ。


いよいよNetBeans4.0でチェケラー!

NetBeans4.0を起動する。チェックアウトモジュールの受け入れ先ディレクトリは先につくっておいてもいいし,指定のときファイル参照画面上で作ってもいい。まあ作っておこう。c:¥nonidata¥nb4new¥cvsworksというのにした。

メニューバーから「Versioning」->「CVS」->「Grobal CVS Check Out」を選ぶ。

すると設定画面になる。おお,3.6のときよりも確かに自由度が高そうだゾ。

PuTTYを使った場合の設定方法は,実はNetBeans.JPのページに,3.6用のものがある。それを見なければのに子ヘッドからは到底生み出せる設定法ではナヒ。

大事なのは「CVS Server Name」はPuTTYの場合,保存した「セッション」の名前ということだ。ここではsourceforgeというのがその名前だ。だからセッション自体の名前をcvs.sourceforge.jpにしておけばもっとわかりやすかったんだなあ,ということ。

そしてリモートシェルが「ssh」ではなく,「c:¥putty¥plink.exe」であるということも大事だ。のにのようなしろうとだとこのリモートシェルという設定欄に「ssh」とかかれていたら「ああSSHを使うってことだな」くらいにしか考えないが,実は接続にさいしsshというコマンドを打ってくれヨということだったのだ。PuTTYではその接続のコマンドがplink.exeだというわけだ。

これで「OK」をやるとVCS出力ウィンドウにインポートするもののリストが現れる。

さてこのチェックアウトされたモジュールはどこで見ればよいか。「Projects」や「Files」を見ても,現れない。これには「Window」->「Versioning」を選択して,「Projects」や「Files」と同じ場所に「Verioning」ウィンドウを表示させる。

いまだにナニを表しているのか不明なこのピンクアイコンが非常になつかしい。さて,これで一応チェックアウトはできた。やはり3.6ではローカルレポジトリとの間でしかできなかったんじゃないかなという感じの強い外部レポジトリからこれができるというのは,NB4なかなかやるぢゃあないか。でもまだここまでしかやってないゾッ。編集して追加してコミットオー!という操作については,後日。