CVS (Concurrent Versions System)

超快速架設

[適用對象]

1. 必須對Linux有相當的熟悉程度,至少知道inetd在做什麼,還有Shadow password等檔案。
2. 必須有Linux系統或可模擬Linux的平台。
3. 必須安裝好CVS,或到網站上下載該發行版本的Package安裝,不然用SourceCode安裝也可,反正去生一個唄。
4. 安裝之環境必須是可靠度高的,最好是內網,畢竟快速架站是不考慮資訊安全的,只用普通的安全機制= =
5. 必須知道root密碼~~~~~廢話~"~!

 

[預設狀態]

1. 已建立    /cvsroot    目錄,以供程式碼存取。
2. 安裝之CVS執行檔位於    /usr/local/bin/cvs
3. 使用pserver認證。
4. 使用inetd啟動服務。
5. 範例用加入之使用者為Arthur,密碼1234
6. 全程以root權限操作唷。

 

[超速架站步驟]

1. 先確認一下/etc/services裡是否已有定義cvspserver,
    有的話應該會有這一行,預設的port=2401:
    cvspserver     2401/tcp
2. 加入inetd服務,編輯/etc/inetd.conf
    假設執行檔在/usr/local/bin/cvs,並使用pserver認證,
    要寫成一行喔,按照格式,該TAB就TAB,最後的指令列中間是空白。
    cvspserver stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/cvsroot pserver
3. 以下照著打@@",不用解釋了吧,不會請查指令表:
    # groupadd cvs
    # useradd -g cvs -s /sbin/nologin cvsroot
    # chown -R cvsroot /cvsroot

4. 初始化 /cvsroot,照打就對啦:
    # cvs -d /cvsroot init
    # chown -R cvsroot.cvs /cvsroot
    # chmod -R ug+rwx /cvsroot
    # chmod 644 /cvsroot/CVSROOT/config
5. 設置cvs群組使用者,必須先把/cvsroot/CVSROOT/config裡的
    SystemAuth = no前的#去掉,再來設定以下必驟:
    # useradd -g cvs -M Arthur
    # passwd Arthur
    # cp /etc/shadow /cvsroot/CVSROOT/passwd
    # chmod 0644 /cvsroot/CVSROOT/passwd
    接著把/cvsroot/CVSROOT/passwd裡面的不是Arthur的人砍掉,
    在最後面補上cvsroot如下,格式:「使用者名:加密密碼:cvsroot」
    Arthur:XXXXXXXXXXXXX:cvsroot
    程度好的同學不妨寫個Shell script去偷/etc/shadow的加密密碼,就可以更輕鬆的加使用者了^^
    目前不太用到,所以我沒寫,有好心人寫好的話借我用唄~~~~~~~~~~^O^


~"~架好了啦!懷疑丫?趕快下 inetd restart指令重新啟動internet super server吧,即可用Arthur進入CVS系統。

 

[常常用CVS指令]

缺靠Module範例:
    cvs -d ":pserver:Arthur:1234@192.168.1.100:2401:/cvsroot" checkout d3dsample1

什麼?!上面的指令太長了嗎?那可以改用登入登出的方式,中間過程中就可省下這麼長的登入資料了。
而在登入後會建立./.cvspass檔,登出後./.cvspass會被清掉,不過建議用完還是登出一下比較安全。
    cvs -d ":pserver:Arthur:1234@192.168.1.100:2401:/cvsroot" login
    cvs checkout d3dsample1
    cvs logout

如果真的是懶到不行的地步,也可設在自已的~/.bash_profile裡面啦@@",這樣都不用輸入了。
    export CVSROOT=:pserver:Arthur:1234@192.168.1.100:2401:/cvsroot

其他的指令不介紹了(作者時間不夠用),下達man cvs看一下大概就明白了,如果是Win32平台還有很多圖形介面的CVS可用,如:Eclipse(Java IDE), TortoiseCVS...等等不勝枚舉,大家可試試。