まずはCVSリポジトリを取得してみる。 frodo%(104)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 /home/m-arai/.cvspass for reading: No such file or directory cvs [login aborted]: fatal error: exiting パスワード要求にを空のリターンで答えたら、~/.cvspassが読めないとぬかしてきた。 frodo%(105)touch ~/.cvspass 空の~/.cvspassを作ってやる。 frodo%(106)cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos login Logging in to :pserver:anonymous@cvs.sourceforge.jp:2401/cvsroot/hos CVS password: frodo%(107) つつがなく完了。 frodo%(107)cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co cvs [checkout aborted]: must specify at least one module or directory モジュールなんて何もないんだけどな…。ディレクトリでもいいのか。 frodo%(108)cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co / cvs server: warning: cannot make directory CVS in /: Permission denied cvs [server aborted]: cannot make directory CVS in /: Permission denied hosのリポジトリのルートのつもりで / にしてみたが駄目か。 frodo%(109)cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co /cvsroot/hos/ cvs server: cannot find module `/cvsroot/hos' - ignored cvs [checkout aborted]: cannot expand modules これでも駄目。じゃぁ、"."ならどうだ。 frodo%(110)cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co . cvs server: Updating . cvs server: Updating CVSROOT U CVSROOT/checkoutlist U CVSROOT/commitinfo U CVSROOT/config U CVSROOT/cvswrappers U CVSROOT/editinfo U CVSROOT/loginfo U CVSROOT/modules U CVSROOT/notify U CVSROOT/rcsinfo U CVSROOT/taginfo U CVSROOT/verifymsg frodo%(111)ls CVS/ CVSROOT/ frodo%(114)ls -lR total 2 drwxrwxr-x 2 m-arai staff 512 Jul 2 20:47 CVS/ drwxrwxr-x 3 m-arai staff 512 Jul 2 20:47 CVSROOT/ ./CVS: total 4 -rw-rw-r-- 1 m-arai staff 2 Jul 2 20:47 Entries -rw-rw-r-- 1 m-arai staff 16 Jul 2 20:47 Entries.Log -rw-rw-r-- 1 m-arai staff 2 Jul 2 20:47 Repository -rw-rw-r-- 1 m-arai staff 51 Jul 2 20:47 Root ./CVSROOT: total 16 drwxrwxr-x 2 m-arai staff 512 Jul 2 20:47 CVS/ -rw-rw-r-- 1 m-arai staff 493 Jul 1 12:16 checkoutlist -rw-rw-r-- 1 m-arai staff 760 Jul 1 12:16 commitinfo -rw-rw-r-- 1 m-arai staff 527 Jul 1 12:16 config -rw-rw-r-- 1 m-arai staff 753 Jul 1 12:16 cvswrappers -rw-rw-r-- 1 m-arai staff 1025 Jul 1 12:16 editinfo -rw-rw-r-- 1 m-arai staff 1141 Jul 1 12:16 loginfo -rw-rw-r-- 1 m-arai staff 1151 Jul 1 12:16 modules -rw-rw-r-- 1 m-arai staff 564 Jul 1 12:16 notify -rw-rw-r-- 1 m-arai staff 649 Jul 1 12:16 rcsinfo -rw-rw-r-- 1 m-arai staff 879 Jul 1 12:16 taginfo -rw-rw-r-- 1 m-arai staff 1026 Jul 1 12:16 verifymsg ./CVSROOT/CVS: total 3 -rw-rw-r-- 1 m-arai staff 455 Jul 2 20:47 Entries -rw-rw-r-- 1 m-arai staff 8 Jul 2 20:47 Repository -rw-rw-r-- 1 m-arai staff 51 Jul 2 20:47 Root frodo%(115) 取得出来た。 今度はSSH経由の…そういえば、SSHの鍵を登録していなかった。 samwise%(124)ssh-keygen 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: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX m-arai@samwise 入力されたパスフレーズから、秘密鍵(クライアント側で保持)として~/.ssh/identity、公開鍵(ログインするリモートに~/.ssh/authorized_key に加える)として~/.ssh/identity.pubが生成された。 さて、こいつをsourceforge.jpの方に…Xを上げて、netscapeと…ログイン、 アカウント名、パスワードっと。ログイン!…何故か固まる。仕方無い。 IEからやるか。Winで再起動。よしよし。ログインはOK。アカウント管理から 公開鍵の登録と。 ~/.ssh/identify.pubを持ってきて… 1024 35 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX m-arai をコピー&ペースト。 おや、テキストエリアでは、 1024 35 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX m-arai な風に見えるな。改行が入ってはいけないのだが。DELしても繋がらない。 きっとこういうものなのだろう。 登録と。 TTSSHでログイン確認と。多少文句を言われたがOK。Linuxだ。bashはちょっと 違和感がある…しかしchshで変更できん。 さて、FreeBSDに戻って、slogin shells.sourceforge.jpと。 frodo%(102)slogin 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 Warning: Permanently added 'shells.sourceforge.jp' (RSA1) to the list of known hosts. Enter passphrase for RSA key 'm-arai@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 XXXX.XXXXX.XX.XX m-arai@sf-usr-shell:~$ m-arai@sf-usr-shell:~$ set BASH=/bin/bash BASH_VERSINFO=([0]="2" [1]="05a" [2]="0" [3]="1" [4]="release" [5]="i386-pc-linux-gnu") BASH_VERSION='2.05a.0(1)-release' COLUMNS=81 DIRSTACK=() EUID=20309 GROUPS=() HISTFILE=/home/users/m/m-/m-arai/.bash_history HISTFILESIZE=500 HISTSIZE=500 HOME=/home/users/m/m-/m-arai HOSTNAME=sf-usr-shell HOSTTYPE=i386 IFS=$' \t\n' LANG=C LINES=30 LOGNAME=m-arai MACHTYPE=i386-pc-linux-gnu MAIL=/var/mail/m-arai MAILCHECK=60 OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games PIPESTATUS=([0]="0") PPID=8048 PS1='\u@\h:\w\$ ' PS2='> ' PS4='+ ' PWD=/home/users/m/m-/m-arai SHELL=/bin/bash SHELLOPTS=braceexpand:hashall:histexpand:monitor:history:interactive-comments:emacs SHLVL=1 SSH_CLIENT='XXX.XXX.XXX.XXX XXXXX XX' SSH_TTY=/dev/pts/0 TERM=kterm UID=20309 USER=m-arai _=ls m-arai@sf-usr-shell:~$ 某ディレクトリを訪問。 m-arai@sf-usr-shell:/home/users/r/ry/ryuz/.ssh$ ls authorized_keys m-arai@sf-usr-shell:/home/users/r/ry/ryuz/.ssh$ 準備は済まされたようだね。(^^) m-arai@sf-usr-shell:/home/users/h/ha/hamayan$ cd .ssh bash: cd: .ssh: No such file or directory m-arai@sf-usr-shell:/home/users/h/ha/hamayan$ まだみたい。(^^) 今度は開発者としてリポジトリをゲットだぜ! まずはCVS_RSHを設定だ。 frodo%(112)setenv CVS_RSH=ssh frodo%(115)cvs -z3 -d:ext:m-arai@SourceForge:/cvsroot/cvs.sourceforge.jp login cvs login: can only use `login' command with the 'pserver' method cvs [login aborted]: CVSROOT: :ext:m-arai@SourceForge:/cvsroot/cvs.sourceforge.jp 開発者としてはloginは要らない訳か。 frodo%(120)cvs -z3 -d:ext:m-arai@SourceForge:/cvsroot/cvs.sourceforge.jp co . cvs [checkout aborted]: cannot exec ssh=: No such file or directory cvs [checkout aborted]: end of file from server (consult above messages if any) ウゲッ。 frodo%(121)setenv CVS_RSH ssh はずかし〜。 frodo%(122)cvs -z3 -d:ext:m-arai@SourceForge:/cvsroot/cvs.sourceforge.jp co . ssh: SourceForge: No address associated with hostname cvs [checkout aborted]: end of file from server (consult above messages if any) そういえば、ホスト名がSourceForgeだけじゃだめだよな。それにパスがおかしいよ。 frodo%(127)cvs -z3 -d:ext:m-arai@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 Warning: Permanently added 'cvs.sourceforge.jp' (RSA1) to the list of known hosts. Enter passphrase for RSA key 'm-arai@frodo': cvs server: Updating . cvs server: Updating CVSROOT U CVSROOT/checkoutlist U CVSROOT/commitinfo U CVSROOT/config U CVSROOT/cvswrappers U CVSROOT/editinfo U CVSROOT/loginfo U CVSROOT/modules U CVSROOT/notify U CVSROOT/rcsinfo U CVSROOT/taginfo U CVSROOT/verifymsg frodo%(128) いけたようだ。 それでは、htdocというディレクトリを掘って、http://hos.sourceforge.jp/の 中身を入れるとしよう。 frodo%(128)mkdir htdoc frodo%(129)ls CVS/ CVSROOT/ htdoc/ cvs add かな。 frodo%(130)cvs add htdoc/ ^Ccvs [add aborted]: received interrupt signal おおう。ここでの操作はすぐに本体に直結するんだ。びっくりしてCtrl-Cしち まったぜ。 まずはおとなしくupdateしてみるか。 frodo%(131)cvs update Enter passphrase for RSA key 'm-arai@frodo': ? htdoc cvs server: Updating . cvs server: Updating CVSROOT frodo%(132) 手元に謎のディレクトリhtdocがあって、本体の方には何の変更も無いと。 frodo%(132)ls htdoc/ htdoc: chalk.jpg index.html この二つが記念すべき最初の具。 frodo%(133)cvs add htdoc Enter passphrase for RSA key 'm-arai@frodo': ? htdoc/chalk.jpg ? htdoc/index.html Directory /cvsroot/hos/htdoc added to the repository frodo%(134)cd htdoc/ frodo%(135)ls CVS/ chalk.jpg index.html frodo%(137)cat CVS/* D htdoc :ext:m-arai@cvs.SourceForge.jp:/cvsroot/hos frodo%(138)ls CVS/ chalk.jpg index.html frodo%(139)cvs add chalk.jpg index.html Enter passphrase for RSA key 'm-arai@frodo': cvs server: scheduling file `chalk.jpg' for addition cvs server: scheduling file `index.html' for addition cvs server: use 'cvs commit' to add these files permanently frodo%(140)cd .. addの度にRSAキーの入力を求められたが、これは自動化できる。 そいじゃ、一丁commitしてみるか! frodo%(142)cvs commit cvs commit: Examining . cvs commit: Examining CVSROOT cvs commit: Examining htdoc Enter passphrase for RSA key 'm-arai@frodo': エディタ(mule)が立ち上がり、ログファイルの編集。 つつがなく編集を終え、エディタを終了。 RCS file: /cvsroot/hos/htdoc/chalk.jpg,v done Checking in htdoc/chalk.jpg; /cvsroot/hos/htdoc/chalk.jpg,v <-- chalk.jpg initial revision: 1.1 done RCS file: /cvsroot/hos/htdoc/index.html,v done Checking in htdoc/index.html; /cvsroot/hos/htdoc/index.html,v <-- index.html initial revision: 1.1 done frodo%(143) commit 完了?WEBで調べると…出来てる。OK。 つまるとことろ、開発者で落したリポジトリに対してファイルの作成や 編集、削除を行ない、それをcvs commitするだけだな。 ちょっとindex.htmlを修正だ。sourceforge.jpのロゴが入らなきゃならなかっ たのだ。 ローカルのリポジトリ内のファイルを修正。 まずはupdateしてみる。 frodo%(101)cvs update Enter passphrase for RSA key 'm-arai@frodo': cvs server: Updating . M index.html index.htmlに修正が加えられているのが分る。ではcommit。 frodo%(102)cvs commit cvs commit: Examining . Enter passphrase for RSA key 'm-arai@frodo': ログ編集。漢字コードはEUC。WindowsのCVSには、ログについては自動的に SJIS→EUC変換を行なってくれるものもあるらしい。 --------------------------------------------------------------------------- sourceforge.jpのロゴを挿入 CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: index.html CVS: ---------------------------------------------------------------------- --------------------------------------------------------------------------- 編集終了 /cvsroot/hos/htdoc/index.html,v <-- index.html new revision: 1.2; previous revision: 1.1 done frodo%(104) つつがなく変更が本元のリポジトリにも伝わる。 さてと、それじゃぁこいつを早速http://hos.sourceforge.jp/に反映させなきゃ な。 まずはshells.sourceforge.jpにsshでログインして、っと。 m-arai@sf-usr-shell:~$ cd /home/groups/h/ho/hos/ プロジェクトのディレクトリに移動して…ls。 m-arai@sf-usr-shell:/home/groups/h/ho/hos/htdoc$ ls cgi-bin htdocs ゲゲゲッ!htdoc"s"ですかぁ!間違えた…ショボイ…し、仕方ない…まずは やらねば。 あらかじめscpでshells.sourceforge.jpのホームに送っておいたスクリプト を実行する。 ------------- webup.sh ------------ #!/bin/sh cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co htdoc ----------------------------------- m-arai@sf-usr-shell:/home/groups/h/ho/hos$ sh ~/webup.sh Logging in to :pserver:anonymous@cvs.sourceforge.jp:2401/cvsroot/hos CVS password: ←エンター空打ち cvs server: Updating htdoc U htdoc/chalk.jpg U htdoc/index.html htdoc以下のリポジトリがプロジェクトのディレクトリに展開される。 このようにしてやれば、誰でも簡単にhtdoc以下をCVSリポジトリの最新状態に 更新することが出来る筈だ。 おっと、忘れずに m-arai@sf-usr-shell:/home/groups/h/ho/hos$ rmdir htdocs m-arai@sf-usr-shell:/home/groups/h/ho/hos$ ln -s htdoc htdocs しかし…これは後で何とかしたほうが良いのだろうな…。 ん…誰でも? m-arai@sf-usr-shell:/home/groups/h/ho/hos$ ls -lR. : total 8 drwxrwsr-x 2 dummy hos 4096 Jul 1 12:15 cgi-bin drwxr-sr-x 3 m-arai hos 4096 Jul 3 18:12 htdoc lrwxrwxrwx 1 m-arai hos 5 Jul 3 00:50 htdocs -> htdoc ./cgi-bin: total 0 ./htdoc: total 12 drwxr-sr-x 2 m-arai hos 4096 Jul 3 18:12 CVS -rw-r--r-- 1 m-arai hos 1472 Jul 2 23:18 chalk.jpg -rw-r--r-- 1 m-arai hos 1125 Jul 3 00:47 index.html ./htdoc/CVS: total 12 -rw-r--r-- 1 m-arai hos 87 Jul 3 18:12 Entries -rw-r--r-- 1 m-arai hos 6 Jul 3 18:12 Repository -rw-r--r-- 1 m-arai hos 51 Jul 3 18:12 Root これじゃ、私(m-arai)しか更新できんな… m-arai@sf-usr-shell:/home/groups/h/ho/hos$ chmod g+w * chmod: changing permissions of `cgi-bin': Operation not permitted cgi-binまで変更しようとして怒られちまった。でも、とにかく。 m-arai@sf-usr-shell:/home/groups/h/ho/hos$ ls -lR .: total 8 drwxrwsr-x 2 dummy hos 4096 Jul 1 12:15 cgi-bin drwxrwsr-x 3 m-arai hos 4096 Jul 3 18:12 htdoc lrwxrwxrwx 1 m-arai hos 5 Jul 3 00:50 htdocs -> htdoc ./cgi-bin: total 0 ./htdoc: total 12 drwxrwsr-x 2 m-arai hos 4096 Jul 3 18:12 CVS -rw-rw-r-- 1 m-arai hos 1472 Jul 2 23:18 chalk.jpg -rw-rw-r-- 1 m-arai hos 1125 Jul 3 00:47 index.html ./htdoc/CVS: total 12 -rw-rw-r-- 1 m-arai hos 87 Jul 3 18:12 Entries -rw-rw-r-- 1 m-arai hos 6 Jul 3 18:12 Repository -rw-rw-r-- 1 m-arai hos 51 Jul 3 18:12 Root これで、hosグループに属した者なら誰でもCVSリポジトリのhtdocの最新状 態にすることが出来るようになった(筈)。 取り敢えずのまとめ。 http://hos.soourceforge.jp/の更新手続き。 1. 開発者でhosのCVSリポジトリの最新状態を取得 2. htdoc以下を更新。 ファイル追加はcvs add ファイル削除はcvs remove を忘れずに。 3. cvs updateでコリジョンが無いかを確認("C"が発生した場合、手作業が必 要になる。どのようなものかはまだ知りません。mOm) 3. cvs commitで更新を反映させる 4. shells.sourceforge.jpにログイン 5. 以下のコマンドを実行 $ cd /home/groups/h/ho/hos/ $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos login $ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co htdoc $ chmod -R g+w htdoc 但し、以下のスクリプトを~m-arai/bin/に置いておくので、 $ ~m-arai/bin/webup.sh でもOK。 ------------- webup.sh ------------ #!/bin/sh cd /home/groups/h/ho/hos/ cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/hos co htdoc chmod -R g+w htdoc ----------------------------------- htdocをhtdocsに改名したいとか、色々文句の付け所は多いですが、暫定とい う事で納得して下され〜。