• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • CVS使用經驗談

    發表于:2008-02-03來源:作者:點擊數: 標簽:配置管理CVS
    CVS 是 Concurrent Version System(并行版本系統)的縮寫,用于版本管理。在多人團隊 開發 中的作用更加明顯。CVS 的基本工作思路是這樣的:在一臺服務器上建立一個倉庫,倉庫里可以存放許多不同項目的源程序。由倉庫管理員統一管理這些源程序。這樣,就好象
    CVS 是 Concurrent Version System(并行版本系統)的縮寫,用于版本管理。在多人團隊開發中的作用更加明顯。CVS 的基本工作思路是這樣的:在一臺服務器上建立一個倉庫,倉庫里可以存放許多不同項目的源程序。由倉庫管理員統一管理這些源程序。這樣,就好象只有一個人在修改文件一樣。避免了沖突。每個用戶在使用倉庫之前,首先要把倉庫里的項目文件下載到本地。用戶做的任何修改首先都是在本地進行,然后用 cvs 命令進行提交,由 cvs 倉庫管理員統一 修改。這樣就可以做到跟蹤文件變化,沖突控制等等。
      由于CVS是建立在在原先 Unix 體系里很成熟的 SCCS 和 RCS 的基礎上,所以CVS多是LinuxUNIX)系統中所使用,本文中服務器端設置也是以Linux為例。
      一、CVS服務器的安裝
      首先確認系統中是否安裝CVS服務:
      [root@localhost /]# rpm -qa|grep cvs
    cvs-1.11.2-cvshome.7x.1
      如果命令輸出類似于上面的輸出則說明系統已經安裝有cvs,否則就需要從安裝光盤中安裝cvs的rpm包,或者到http://www.cvshome.org下載。
      1、建立 CVSROOT
      目錄,因為這里涉及到用戶對CVSROOT里的文件讀寫的權限問題,所以比較簡單的方法是建立一個組,然后再建立一個屬于該組的帳戶,而且以后有讀寫權限的用戶都要屬于該組。假設我們建一個組叫cvs,用戶名是cvsroot。建組和用戶的命令如下
    #groupadd cvs
    #adduser cvsroot
      生成的用戶宿主目錄在/home/cvsroot(根據自己的系統調整)
      2、用cvsroot 用戶登陸,修改 /home/cvsroot (CVSROOT)的權限,賦與同組人有讀寫的權限: 
      $chmod 771 . (或者770應該也可以)
      注意:這一部分工作是按照文檔說明做的,是否一定需要這樣沒有試驗,我會在做試驗后在以后版本的教程說得仔細一點。如果您有這方面的經驗請提供給我,謝謝。
      3、建立CVS倉庫,(仍然是 cvsroot 用戶),用下面命令:
      $cvs -d /home/cvsroot init
      4、以root身份登陸,修改 /etc/inetd.conf(使用 xinetd 的系統沒有此文件)和 /etc/services
      如果用的是 inetd 的系統,在 /etc/inetd.conf 里加入:
      
      cvsserver  stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
      說明:上面的行是單獨一整行,/usr/bin/cvs 應該是你的cvs版本的命令路徑,請根據自己的系統調整./home/cvsroot是你建立的CVSROOT的路徑,也請根據上面建立目錄的部分的內容做調整。
      如果是使用 xinetd 的系統,需要在 /etc/xinetd.d/ 目錄下創建文件 cvspserver(此名字可以自己定義),內容如下:
      # default: on
      # description: The cvs server sessions;
      service cvsserver
      {
      socket_type = stream
      wait = no
      user = root
      server = /usr/bin/cvs
      server_args = -f --allow-root=/cvsroot pserver
      log_on_failure += USERID
      only_from = 192.168.0.0/24
      }
      其中only_from是用來限制訪問的,可以根據實際情況不要或者修改。修改該文件權限:
      # chmod 644 cvspserver
      在/etc/services里加入:
      cvsserver 2401/tcp
      說明:cvsserver 是任意的名稱,但是不能和已有的服務重名,也要和上面修改 /etc/inetd.conf 那行的第一項一致。
      5、添加可以使用 CVS 服務的用戶到 cvs 組:
      以 root 身份修改 /etc/group,把需要使用 CVS 的用戶名加到 cvs 組里,比如我想讓用戶 laser 和gumpwu 能夠使用 CVS 服務,那么修改以后的 /etc/group 應該有下面這樣一行:
      cvs:x:105:laser,gumpwu
      在你的系統上GID可能不是105,沒有關系。主要是要把laser和gumpwu用逗號分隔開寫在最后一個冒號后面。當然,象RedHat等分發版有類似linuxconf這樣的工具的話,用工具做這件事會更簡單些。
      6、重起inetd使修改生效:
      #killall -HUP inetd
      如果使用的是 xinetd 的系統:
      # /etc/rc.d/init.d/xined restart
    然后察看cvs服務器是否已經運行:
    [root@localhost /]# netstat -lnp|grep 2401
      tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 1041/xinetd
    則說明cvs服務器已經運行。

      二、管理CVS服務器
      服務器可以用了,現在大家最關心的就是如何管理服務器,比如,我想讓一些人有讀和/或寫 CVS 倉庫的權限,但是不想給它系統權限怎么辦呢?
      不難,在 cvs 管理員用戶(在我這里是 cvsroot 用戶)的家目錄里有一個 CVSROOT 目錄,這個目錄里有三個配置文件,passwd, readers, writers,我們可以通過設置這三個文件來配置 CVS 服務器,下面分別介紹這幾個文件的作用:
      passwd:cvs 用戶的用戶列表文件,它的格式很象 shadow 文件:
      {cvs 用戶名}:[加密的口令]:[等效系統用戶名]
      如果你希望一個用戶只是 cvs 用戶,而不是系統用戶,那么你就要設置這個文件,剛剛安裝完之后這個文件可能不存在,你需要以 cvs 管理員用戶手工創建,當然要按照上面格式,第二個字段是該用戶的加密口令,就是用 crypt (3)加密的,你可以自己寫一個程序來做加密,也可以用我介紹的偷懶的方法:先創建一個系統用戶,名字和 cvs 用戶一樣,口令就是準備給它的 cvs 用戶口令,創建完之后從 /etc/shadow 把該用戶第二個字段拷貝過來,然后再把這個用戶刪除。這個方法對付數量少的用戶比較方便,人一多就不合適了,而且還有沖突條件(race condition)的安全隱患,還要 root 權限,實在不怎么樣。不過權益之計而已。寫一個小程序并不難,可以到 linuxforum 的編程版搜索一下,有個朋友已經寫了一個貼在上面了。
    第三個字段就是等效系統用戶名,實際上就是賦與一個 cvs 用戶一個等效的系統用戶的權限,看下面的例子你就明白它的功能了。
    readers:有 cvs 讀權限的用戶列表文件。就是一個一維列表。在這個文件中的用戶對 cvs只有讀權限。
    writers:有 cvs 寫權限的用戶的列表文件。和 readers 一樣,是一個一維列表。在這個文件中的用戶對 cvs 有寫權限。
    上面三個文件在缺省安裝的時候可能都不存在,需要我們自己創建,好吧,現在還是讓我們用一個例子來教學吧。假設我們有下面幾個用戶需要使用 cvs:
    laser, gumpwu, henry, betty, anonymous。
    其中 laser 和 gumpwu 是系統用戶,而 henry, betty, anonymous 我們都不想給系統用戶權限,并且 betty 和 anonymous 都是只讀用戶,而且 anonymous 更是連口令都沒有。那么好,我們先做一些準備工作,先創建一個 cvspub 用戶,這個用戶的責任是代表所有非系統用戶的 cvs 用戶讀寫 cvs 倉庫。
    #adduser
    ...
    然后編輯 /etc/group,令 cvspub 用戶在 cvs 組里,同時把其它有系統用戶權限的用戶加到 cvs 組里。(見上文)
    然后編輯 cvs 管理員家目錄里 CVSROOT/passwd 文件,加入下面幾行:
    laser:$xxefajfka;faffa33:cvspub
    gumpwu:$ajfaal;323r0ofeeanv:cvspub
    henry:$fajkdpaieje:cvspub
    betty:fjkal;ffjieinfn/:cvspub
    anonymous::cvspub
    注意:上面的第二個字段(分隔符為 :)是密文口令,你要用程序或者用我的土辦法生成。
    編輯 readers 文件,加入下面幾行:
    anonymous
    betty
    編輯 writers 文件,加入下面幾行:
    laser
    gumpwu
    henry
    注意:writers中的用戶不能在readers中,要不然不能上傳更新文件。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>