Setup Ubuntu Server


CVSサーバ の変更点

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • CVSサーバ へ行く。

#contents
バージョン管理ソフトCVSを導入し、pserverを立ち上げる。

*インストール [#se7d0a88]

 $ sudo apt-get install cvs

cvsはxinetdで管理するようにする。xinetdとはスーパサーバなどと呼ばれ、管理するサーバのすべてのポートを待ち、接続が来たら管理しているサーバを起動してそっちにデータを流す。これによりサーバを常駐させなくてすむようになる。

*xinetdのインストール [#bf18278f]

 $ sudo apt-get install xinetd

*ユーザの追加 [#xa087292]
**cvsを管理するユーザcvsuserを追加する。 [#l6b90ba6]
 $ sudo adduser cvsuser

**リポジトリ作成 [#xba1baf2]
/home/cvsuser/cvsrootにリポジトリをつくる。
 $ sudo su - cvsuser
 $ mkdir /home/cvsuser/cvsroot
 $ cvs -d /home/cvsuser/cvsroot/ init
 $ exit

**もうログインできないようにする [#ldf05303]
 $ sudo chsh cvsuser 
 Changing the login shell for cvsuser
 Enter the new value, or press ENTER for the default
      Login Shell [/bin/bash]: /usr/sbin/nologin
 $ 

**cvsを利用するユーザのためのパスワードを作成する [#d1dc7dae]
 $ sudo htpasswd -c /home/cvsuser/cvsroot/CVSROOT/passwd cvsuser

*xinetdの設定にcvsを追加する。 [#n98b0c6b]
 $ sudo vi /etc/xinetd.d/cvspserver

以下を作成
 service cvspserver
 {
         disable = no
         port = 2401
         socket_type = stream
         protocol = tcp
         wait = no
         user = cvsuser
         passenv = PATH
         server = /usr/bin/cvs
         evn = HOME=/home/cvsuser
         server_args = -f --allow-root=/home/cvsuser/cvsroot pserver
 }

**xinetdをリスタート [#gf5c3bc5]
 $ sudo /etc/init.d/xinetd restart

**ufwを有効にしている場合は2401を許可する [#td02044a]
 $ sudo ufw allow 2401

*WindowsのCygwinから実行する [#v22f637b]
**テストプロジェクト作成 [#j83ec6c6]
 $ mkdir testproj
 $ cd testproj
 $ cat > testfile.txt
 aaa
 bbb
 ccc[Ctrl+D]
 $ 
**cvsにログイン [#xd6a9abb]
 $ cvs -d :pserver:cvsuser@192.168.0.100:/home/cvsuser/cvsroot login
パスワードはhtpasswdで作ったものを入れる。
**インポートする [#gab10c42]
 $ cvs -d :pserver:cvsuser@192.168.0.100:/home/cvsuser/cvsroot import testproj mycompany firsttest
 N testproj/testfile.txt
 
 No conflicts created by this import

**チェックアウト、コミットができるかテスト [#a7185670]
 $ cd
 $ mkdir aaa
 $ cd aaa
 $ cvs -d :pserver:cvsuser@192.168.0.100:/home/cvsuser/cvsroot co testproj
 cvs checkout: Updating testproj
 U testproj/testfile.txt
 $ cd testproj
 $ echo ddd >> testfile.txt
 $ cvs diff testfile.txt
 Index: testfile.txt
 ===================================================================
 RCS file: /home/cvsuser/cvsroot/testproj/testfile.txt,v
 retrieving revision 1.1.1.1
 diff -r1.1.1.1 testfile.txt
 3a4
 > ddd
 $ cvs ci -m 'add ddd'
 cvs commit: Examining .
 /home/cvsuser/cvsroot/testproj/testfile.txt,v  <--  testfile.txt
 new revision: 1.2; previous revision: 1.1

*WindowsのEclipseでテスト [#l85d52d7]
[File]->[New]->[Project...]
>&ref(newproj.png,center,30%,nowrap,添付ファイルの画像);
>&ref(cofromcvs.png,center,30%,nowrap,添付ファイルの画像);
>&ref(cotestproj.png,center,30%,nowrap,添付ファイルの画像);

[Team]->[Commit]も動くか確かめる。