CygwinでCVSサーバーを立てる - EclipseWiki
詳しい方法は
インストールプログラムは、ネット上から必要なモジュールを選択してインストールする仕様になっているので、NETカテゴリにあるinetutilsとDEVELにあるcvsを忘れずにチェックしておく。
初期設定 †
環境変数でCygwinのインストールフォルダにPATHを通しておく。
- PATHを通すのは「インストールフォルダ/bin」のようです。
- 2000/XPでinetdをサービス化する場合は要マシン再起動 (PATHの変更を反映するため)
Win9xならautoexec.batを編集。 2000/XPは「コントロールパネル」-「システム」の詳細タブから環境変数。
$ mkpasswd -l > /etc/passwd $ mkgroup -l > /etc/group $ /usr/bin/iu-config
順にパスワードの設定、グループの設定、/etc/inetd.confの作成。
最後の一行はこんな質問がくる。全部yesでいいと思う。
Overwrite existing /etc/ftpusers file? (yes/no) yes Creating default /etc/ftpusers file Overwrite existing /etc/ftpwelcome file? (yes/no) yes Creating default /etc/ftpwelcome file Overwrite existing /etc/inetd.conf file? (yes/no) yes Creating default /etc/inetd.conf file Overwrite existing /etc/motd file? (yes/no) yes Creating default /etc/motd file Overwrite existing /etc/shells file? (yes/no) yes Creating default /etc/shells file
ちなみにオプションで
Options: --debug -d Enable shell's debug output. --yes -y Answer all questions with "yes" automatically. --no -n Answer all questions with "no" automatically.
とある。全部yesなら「-y」をつけると少し幸せになれるかも。
inetdの起動 †
2種類やり方が選べます。
ラップトップはLinux RedHat 9でフルスクリーン表示されません。
サービスとして起動する。(2000/XP向け) †
$ /usr/sbin/inetd --install-as-service((サービスから消したいときはinetd --remove-as-service))
その後、「管理ツール」−[サービス]のCYGWIN inetdを起動する。*1*2*3
スタートアップに登録する。(9x向け) †
inetd が C:\cygwin\usr\sbin\inetd.exe にあるとする。 inetd.exe のショートカットを作成し、ショートカットのプロパティのリンク先を 'C:\cygwin\usr\sbin\inetd.exe -d' と、オプション '-d' を付け加える。
スタートアップフォルダに追加する。
確認 †
適当にtelnetでもしてみて下さい。
CVSの設定 †
初期設定 †
まずは、レポジトリのルートディレクトリを決める。 今回はとりあえず、/var/cvsとして話を進める。
$ export CVSROOT=/var/cvs((当然~/.bashrcあたりに記述しておいてもかまいません。)) $ mkdir /var/cvs $ cvs init
パスワードの作成 †
$CVSROOT/CVSROOT/passwdに
ユーザー名:暗号化されたパスワード
といったリストを記述する。
パスワードの暗号化はcryptコマンドを用いる。
例えば、ユーザー名が「hoge」、パスワードが「piyopiyo」なら
echo -n "hoge:" >> $CVSROOT/CVSROOT/passwd crypt Zz piyopiyo >> $CVSROOT/CVSROOT/passwd
「Zz」は任意のアルファベット2文字。(ランダムで作った方がいいのですけどね・・・)
スクリーンセーバー]タブを非表示にする方法
このときユーザー名は初期設定の時に登録してあるユーザー名を使わないとinetdにつっぱなれるらしいので、注意。とりあえずは、すでにある自分のユーザーアカウントを使うのが安全。(cvsanoyを作りたかったら、同名のユーザーを登録して、ユーザーグループを分けた後にパーミッションを区切らないといけないと言うことですね。) 2003-01-24追記
passwdファイルの改行コードはLFになるように設定してください。CRLFで保存してしまうとうまくユーザの認識をしてくれません。つまり、passwdファイルには下記のような形でユーザ名を保存しなければ、EclipseのCVSの認証で、no such userというエラーではじかれてしまいます。2003-02-03 追記
<任意のユーザ名>:<暗号化したパスワード>:[LF]
passwdファイルの例は下記のとおり
Administrator::Administrator[LF] hoge:ZzEpcdUPaSLTs:Administrator[LF] [EOF]
サーバー関係の設定 †
%WINDOWS%/system32/drivers/etc/servicesに以下の1行を追加。(%WINDOWS%はWindowsをインストールしたディレクトリ。)
cvspserver 2401/tcp
次に/etc/inetd.confに以下の1行を追加。
cvspserver stream tcp nowait root /bin/cvs cvs --allow-root=/var/cvs pserver
その後、inetdを再起動すれば、とりあえずpserverが動いているはず。
inetdのかわりにxinetdを使う場合の設定 †
サーバ関係の設定として、CVSラッパを記述する必要があります。 ディレクトリ /etc/xinetd.d の下に cvspserver という名前のファイルを作り、次のように書いてください。
PHP-核8.0をインストールする方法
service cvspserver { socket_type = stream user = SYSTEM wait = no server = /usr/bin/cvs server_args = -f --allow-root=/var/cvs pserver }
コマンド行から
$ cvs -d :pserver:hogの中にある cvsweb.cgi, cvsweb.conf を Apache の cgi-bin(cgi の実行可能なディレクトリ。cygwin での標準は /var/www/cgi-bin)にコピーします。
- CVS Root のディレクトリの位置を設定します。cvsweb.conf の 以下の行を編集します。(/var/cvs に CVS リポシトジが格納されている場合の例)
@CVSrepositories = ( 'local' => ['Local Repository', '/var/cvs'],
- cvsweb-?.?.?.tar.gz の中にある icons/ のファイルを、HTTPサーバで使われるアイコン表示のための画像を格納するディレクトリ(cygwin の標準では /var/www/icons)へコピーします。
(リポシトジに格納されたファイルを閲覧する際、セキュリティの関係で chdir がうまくいかない、という主旨のメッセージが出る Perl 拡張ライブラリのバージョンがあります。その際は、cvsweb.cgi の先頭の行の Perl の起動オプションに「U(危険な動作の警告を解除する)」を付けます。)
#!/usr/bin/perl -wTU
cygwin の Apache をサービスとして追加する †
- /etc/apache/httpd.conf のユーザ、グループのエントリを変更します。
User Guest Group Guests
- /usr/sbin/apachectl start でウェブサーバが動作することを確認します。
- 以下のコマンドでサービスを登録します
$ cygrunsrv --install cygwin_apache \ --path /usr/sbin/httpd \ --args -F \ --env "CYGWIN=ntsec nosmbntsec binmode tty"
- サービスを起動します。
$ net start cygwin_apache
その他 †
不足していると思ったことを書き足してあげて下さい。 とりあえずは
- cvswrapperのこと。
- sshでポートフォワーディング。
くらいでしょうかね?
ネットワーク越しに使うならばhosts.allowの設定も書いておいた方がよさそうですよね。
taro
0 コメント:
コメントを投稿