2007年3月23日 星期五

[系統開發] CVS 安裝, 設定, 測試 !

我的系統環境 : Fedora Core 1

一. 安裝 CVS
 apt-get install cvs

二. 設定 CVS
  1. 以 root 身份登入系統

  2. 建立一個user & group, 名稱為cvs

  3. 建立檔案庫 ( repository):

    cvs -d /usr/local/cvsroot init

    (如果要建立多個檔案庫就重覆這個動作, 來建立不同的檔案庫, 如 : /usr/local/cvsroot2, /usr/local/cvsroot3, ...), 每一個檔案庫都能設定不同的授權使用者群 !

  4. 將檔案庫內所有檔案的擁有者及群組, 改為 cvs :

    chown -R cvs.cvs /usr/local/cvsroot
  5. 在 /etc/xinetd.d 目錄下, 建立一個檔案名稱為 cvspserver :
    cd /etc/xinetd.d
    vi cvspserver

    其內容如下 :
    service cvspserver
    {
    disable = no
    socket_type = stream
    wait = no
    user = root
    log_type = FILE /var/log/cvspserver
    protocol = tcp
    # env = HOME=/home/cvsroot
    log_on_failure += USERID
    port = 2401
    server = /usr/bin/cvs
    server_args = -f --allow-root=/usr/local/cvsroot pserver
    }

  6. 重新啟動xinetd :

    service xinetd restart
  7. 以 cvs 帳號登入系統, 我們要開始設定 cvs 使用者帳號密碼了

  8. 首先我們需要一支 Perl 程式來產生加密過的密碼 :

    vi crypt.pl

    內容如下 :

    #!/usr/bin/perl

    srand (time());
    my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
    my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
    my $plaintext = shift;
    my $crypttext = crypt ($plaintext, $salt);

    print "${crypttext}\n";

    存檔後, 將crpty.pl權限改為755 :
    chmod 755 crypt.pl
  9. 在/usr/local/cvsroot/CVSROOT/目錄, 建立一個名稱passwd的檔案, 我們要將使用者帳號密碼放在這個檔案中 (格式為 : userid:encrypted-password:cvs ) :

    username1:x$5itFdsw123:cvs
    username2:3fgRH4p3443:cvs

    注意 : encrypted-password 使用上面的crypt.pl來產生, 例如我要用abc這個密碼, 那我就下命令為 ./crypt.pl abc , 最後輸出的碼, 將之填入encrypted-password欄位中

  10. 設定 passwd 的權限:

    chmod 400 /usr/local/cvsroot/CVSROOT/passwd
三. 測試 CVS
  1. 設定環境變數:
    su - [你的user帳號]
    vi .bash_profile

    加入下面內容 :

    export CVSROOT=:pserver:username1@your_server_name:/usr/local/cvsroot

    (username 是/usr/local/cvsroot/CVSROOT/passwd中設定的帳號, your_server_name 為cvs主機的 dns or ip)

  2. 登入測試 :

    cvs login

    接著會問密碼, 輸入密碼, 沒有任何訊息, 表示成功 !

  3. 建立一個小的專案 (測試用) :

    cd
    mkdir testproj
    echo "//Main Class">testproj/Main.java
  4. 將這小專案放入cvs檔案庫中.

    cd testproj
    cvs import -m "My initial project message" testproj mycompany start
  5. 可以看 /usr/local/cvroot/testproj 中, 有沒有Main.java檔案, 即知道有沒有成功

  6. 在cvs檔案庫中, 移除testproj :

    rm --R /usr/local/cvsroot/testproj


大功告成 !!!

0 意見: