Linux建立本地cvs伺服器

2021-08-24 19:03:27 字數 4810 閱讀 6963

在rh linux上快速建立本地cvs伺服器的小指南

rpm包進行安裝。

下面的工作,集中精力在建立多使用者、單cvs倉庫的本地cvs伺服器。對於如何擴充它,使之成為區域網多使用者、多cvs倉庫的cvs伺服器, 是以後的討論範圍。

簡要的步驟:

1、建立cvs使用者組

#groupadd cvs

2、建立cvs組的cvsroot使用者和所屬的目錄

#useradd -g cvs -g cvs -d /home/cvsroot cvsroot

3、用cvsroot使用者登入,然後改變使用者目錄的許可權,讓所有cvs組的成員對它有讀寫權、初始化cvs倉庫

#su - cvsroot

$chmod 775 .

$cvs init

4、使用root或者cvsroot使用者登入,新增cvs使用者,新增cvs成員的加密密碼

#vi /home/cvsroot/cvsroot/passwd

在這個檔案中新增如下形式的多行內容:

usrname1:******:cvsroot

usrname2:******:cvsroot

其中的******是使用者usernamex加密的密碼,用來生成的perl程式如下:

#vi passwdgen.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 "$n";

這個指令碼的使用方法是:perl passwdgen.pl 《預定密碼》,然後將生成的加密密碼拷貝到passwd檔案中。

修改passwd檔案屬性,使之只對於cvsroot使用者唯讀

$chmod 400 passwd

5、修改/etc/services檔案,加入cvs服務

#vi /etc/services

cvspserver 2401/tcp #pserver cvs service

cvspserver 2401/udp #pserver cvs service (可以不要的,因為我們在這裡僅僅使用到了tcp協議)

6、修改inetd提供的服務,由於linux版本之間的差異,在你的系統中可能使用inetd,或者使用xinetd,

比如在rh linux 7.3中使用的就是xinetd,你可以使用如下的命令來查詢

#ps -a |grep inetd

如果使用的是inetd,則僅僅需要修改/etc/inetd.conf,加入如下的內容

cvsserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver

如果使用的是xinetd,則需要如下操作:

#cd /etc/xinetd.d

#touch cvspserver

#vi cvspserver

[quote]service cvspserver

[/quote]

可以注意到上面各個引數與單行內容的對應關係。

7、重新啟動inetd或者xinetd:

#/etc/init.d/xinetd restart

8、檢查cvspserver服務是否已經啟動

#netstat -l |grep cvspserver

應該有如下結果:

tcp 0 0 *:cvspserver *:* listen

好了,至此已經在本地建立了乙個可以使用的cvs伺服器了。

cvs相關網路資源列表

2、 (這裡有很多關於cvs的資源鏈結)

參考了網上很多cvs建立的方法,其中有一篇《cvs使用速成配置》寫得很實用,然而如果按部就班的操作後卻總是不成功。後來仔細看了一下,呵呵,有乙個很明顯也是很小的錯誤,或者不能稱之為錯誤,應該是網頁排版造成的錯誤,不同之處我用紅色字型標出。過程如下:

我使用的是magiclinux2.0, cvs版本是cvs-1.11.17-4mgc

一、建立cvs服務

1、建立cvs使用者組

#>groupadd cvs

2、建立cvs組的使用者cvsroot和所屬的目錄

#>useradd -g cvs -g cvs -d /cvsroot cvsroot

3、為cvsroot使用者新增密碼

#>passwd cvsroot

4、改變/cvsroot目錄的屬性

#>chmod -r 770 /cvsroot

5、改變使用者登入

#>su cvsroot

6、建立專案,此處建立兩個專案project1和project2

#>cd /cvsroot

#>mkdir project1

#>mkdir project2

7、建立倉庫

#>cvs -d /cvsroot/project1 init

#>cvs -d /cvsroot/project2 init

#>chmod -r 770 ./project1/ ./project2/

8、建立cvs服務的啟動檔案,採用xinetd方式,[color=darkred]各位使用magiclinux的朋友需要注意了,系統服務預設xinetd是沒有執行的,需要執行它。[/color] 沒有的話還需要安裝xinetd

#>[ctrl]+[d]切換到root使用者身份

#>cd /etc/xinetd.d

#vi cvspserver

service cvspserver

注意:(1)[color=darkred]env = home=這一行是為了解決一些cvs操作時產生的讀取/root/.cvssignore檔案的錯誤,意思指執行cvs服務時將環境變數home置空,這樣雖然執行的cvs使用者是root,但是沒有了home環境變數,所以cvs就不會去讀/root/.cvssignore這個檔案[/color]

#>vi /cvsroot/cvs.run

#!/bin/bash

/usr/bin/cvs -f --allow-root=/cvsroot/project1 --allow-root=/cvsroot/project2 pserver

#>chmod +x /cvsroot/cvs.run

最好,執行一下

./cvs.run

如果沒有什麼特別的資訊,應該就沒有問題了,[ctrl]+[c]中止它吧

[color=darkred](3)cvspserver這個服務名稱要與/etc/services裡的名稱一致[/color]

9、此時可以啟動cvs服務了

#>/etc/init/xinetd restart

10、檢查是cvspserver服務是否正常啟動

#>netstat -al |grep cvspserver

應該有如下結果:

tcp 0 0 *:cvspserver *:* listen

二、使用者管理

此時我們已經建立了project1和project2兩個倉庫,下面我們分別給兩個倉庫建立cvs使用者,[color=darkred]此處我們使用cvs的使用者認證方式,而不採用linux的使用者。[/color]

11、建立可以登入cvs伺服器的使用者名稱和密碼

#>su cvsroot

#>vi /cvsroot/project1/passwd

wzw:****:cvsroot

brad:****:cvsroot

#>vi /cvsroot/project2/passwd

brad:****:cvsroot

注意:(1)passwd檔案是不存在的,手動建立

(2)此處有project1兩個cvs使用者wzw和brad,分別對映到linux系統使用者cvsroot,project2有乙個使用者brad,同樣對映到cvsroot,登入後的許可權即是cvsroot的許可權

(3)****為密碼,採用cypt加密,可以由下面的指令碼檔案生成

#> vi /cvsroot/passwd.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 "$

";#>chmod a+x /cvsroot/passwd.pl

15。如果你想生成乙個密碼是「123456」,則:

#> /cvsroot/passwd.pl 「123456」

回車即可得到加密密碼,用其替換passwd檔案中的****

12、完成了,應該可以了:)

測試一下

#>cvs -d :pserver:[email protected]/cvsroot/project1 login

(我的伺服器ip為192.168.0.39)

按照提示輸入密碼,回車

如果沒有特別提示資訊,呵呵。。。。。ok

感謝《cvs使用速成配置》一文的作者!

Linux下CVS伺服器

2.在 etc xinetd.d下面建立乙個檔案cvspserver,其內容如下 service cvspserver 其中cvs命令在 usr bin目錄下,而設定cvs工作根目錄是 cvs。3.重新啟動xinetd超級伺服器,使用下面命令 etc init.d xinetd restart 4....

linux下配置cvs伺服器

一 cvs伺服器的安裝 1。檢視你的作業系統上是否安裝了cvs rpm qa grep cvs 2。建立cvs使用者組 groupadd cvs 3。建立cvs組的cvsroot使用者和所屬的目錄 useradd g cvs g cvs d cvsroot cvsroot 4。為cvsroot使用者...

linux下CVS伺服器搭建

1 cvs伺服器的安裝 rpm ivh cvs 1.12.13.tar.bz2 cd rpm ivh cvs 1.12.13 configure make make install 檢視cvs安裝情況 rpm qa grep cvs 2 建立cvs使用者組 groupadd cvs 3 建立cvs組...