- 浏览: 886363 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (198)
- Linux/Unix (38)
- TinyOS / NS-2 for『WSN』 (44)
- 思想的拼图 (5)
- 开源 OpenSource (2)
- Framework 开发框架 (0)
- Software Engineering 软件工程 (2)
- IT项目管理 (6)
- Networking 网络技术 (2)
- Java (6)
- C语言 ANSI C (22)
- .NET / C# (9)
- C++ (12)
- Web 语言 Html/Xml (5)
- Groovy on Grails (1)
- Algorithm 算法 (1)
- Database 数据库技术 (5)
- Tools (21)
- VM 虚拟机 (3)
- WSN (wireless sensor network) (2)
- Linux 命令专辑 (3)
- PHP (0)
- 办公软件 (3)
最新评论
-
cfczdws:
感谢楼主,查了半天终于发现居然是htmlentities()做 ...
htmlentities()函数把中文转成了乱码 -
decoxiaohan:
这本书的名字 有谁知道????~~~
OMNeT++中文用户手册(完全版) -
huonie:
怎么下载啊
OMNeT++中文用户手册(完全版) -
huonie:
没有内容啊
OMNeT++中文用户手册(完全版) -
kyx0413:
谢谢先 先看看
OMNeT++中文用户手册(完全版)
在RH Linux上快速建立本地CVS服务器的小指南
前提,在安装RH linux的时候,选择了cvs软件包。如果没有安装,当然也可以从网路上下载最新的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:xxxxxx:cvsroot
usrname2:xxxxxx:cvsroot
其中的xxxxxx是用户usernamex加密的密码,用来生成的perl程序如下:
#vi passwdgen.pl
这个脚本的使用方法是: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
可以注意到上面各个参数与单行内容的对应关系。
7、重新启动inetd或者xinetd:
#/etc/init.d/xinetd restart
8、检查cvspserver服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
好了,至此已经在本地建立了一个可以使用的cvs服务器了。
cvs相关网路资源列表
1、http://www.cvshome.org (cvs本家,这里有最新的cvs下载)
2、http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel (这里有很多关于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方式,各位使用MagicLinux的朋友需要注意了,系统服务默认xinetd是没有运行的,需要运行它。 没有的话还需要安装xinetd
#>[Ctrl]+[d]切换到root用户身份
#>cd /etc/xinetd.d
#vi cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
env = HOME=
server = /cvsroot/cvs.run
}
注意:
(1)env = HOME=这一行是为了解决一些cvs操作时产生的读取/root/.cvssignore文件的错误,意思指运行cvs服务时将环境变量HOME置空,这样虽然执行的cvs用户是root,但是没有了HOME环境变量,所以cvs就不会去读/root/.cvssignore这个文件
(2)/cvsroot/cvs.run是一个脚本文件,因为xinetd的server_args长度限制,所以如果想运行很多单个仓库的话,就不如脚本来的方便,脚本如下:
#>vi /cvsroot/cvs.run
#!/bin/bash
/usr/bin/cvs -f --allow-root=/cvsroot/project1 --allow-root=/cvsroot/project2 pserver
此处又要注意了,原文在此处是分行写的(可能是排版的问题,应该连在一起),所以会执行错误,但是xinetd的执行是没有输出信息的,所以我在这里郁闷了有一段时间:(,如果太多的话,可以使用分行符 \
#>chmod +x /cvsroot/cvs.run
最好,执行一下
./cvs.run
如果没有什么特别的信息,应该就没有问题了,[CTRL]+[c]中止它吧
(3)cvspserver这个服务名称要与/etc/services里的名称一致
9、此时可以启动cvs服务了
#>/etc/init/xinetd restart
10、检查是cvspserver服务是否正常启动
#>netstat -al |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
二、用户管理
此时我们已经建立了project1和project2两个仓库,下面我们分别给两个仓库建立cvs用户,此处我们使用cvs的用户认证方式,而不采用Linux的用户。
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 "${crypttext}
";
#>chmod a+x /cvsroot/passwd.pl
15。如果你想生成一个密码是“123456”,则:
#> /cvsroot/passwd.pl “123456”
回车即可得到加密密码,用其替换passwd文件中的****
12、完成了,应该可以了:)
测试一下
#>cvs -d :pserver:brad@192.168.0.39/cvsroot/project1 login
(我的服务器IP为192.168.0.39)
按照提示输入密码,回车
如果没有特别提示信息,呵呵。。。。。OK
感謝《CVS使用速成配置》一文的作者!
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21471/showart_145489.html
前提,在安装RH linux的时候,选择了cvs软件包。如果没有安装,当然也可以从网路上下载最新的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:xxxxxx:cvsroot
usrname2:xxxxxx:cvsroot
其中的xxxxxx是用户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 "${crypttext}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
引用
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
可以注意到上面各个参数与单行内容的对应关系。
7、重新启动inetd或者xinetd:
#/etc/init.d/xinetd restart
8、检查cvspserver服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
好了,至此已经在本地建立了一个可以使用的cvs服务器了。
cvs相关网路资源列表
1、http://www.cvshome.org (cvs本家,这里有最新的cvs下载)
2、http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel (这里有很多关于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方式,各位使用MagicLinux的朋友需要注意了,系统服务默认xinetd是没有运行的,需要运行它。 没有的话还需要安装xinetd
#>[Ctrl]+[d]切换到root用户身份
#>cd /etc/xinetd.d
#vi cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
env = HOME=
server = /cvsroot/cvs.run
}
注意:
(1)env = HOME=这一行是为了解决一些cvs操作时产生的读取/root/.cvssignore文件的错误,意思指运行cvs服务时将环境变量HOME置空,这样虽然执行的cvs用户是root,但是没有了HOME环境变量,所以cvs就不会去读/root/.cvssignore这个文件
(2)/cvsroot/cvs.run是一个脚本文件,因为xinetd的server_args长度限制,所以如果想运行很多单个仓库的话,就不如脚本来的方便,脚本如下:
#>vi /cvsroot/cvs.run
#!/bin/bash
/usr/bin/cvs -f --allow-root=/cvsroot/project1 --allow-root=/cvsroot/project2 pserver
此处又要注意了,原文在此处是分行写的(可能是排版的问题,应该连在一起),所以会执行错误,但是xinetd的执行是没有输出信息的,所以我在这里郁闷了有一段时间:(,如果太多的话,可以使用分行符 \
#>chmod +x /cvsroot/cvs.run
最好,执行一下
./cvs.run
如果没有什么特别的信息,应该就没有问题了,[CTRL]+[c]中止它吧
(3)cvspserver这个服务名称要与/etc/services里的名称一致
9、此时可以启动cvs服务了
#>/etc/init/xinetd restart
10、检查是cvspserver服务是否正常启动
#>netstat -al |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
二、用户管理
此时我们已经建立了project1和project2两个仓库,下面我们分别给两个仓库建立cvs用户,此处我们使用cvs的用户认证方式,而不采用Linux的用户。
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 "${crypttext}
";
#>chmod a+x /cvsroot/passwd.pl
15。如果你想生成一个密码是“123456”,则:
#> /cvsroot/passwd.pl “123456”
回车即可得到加密密码,用其替换passwd文件中的****
12、完成了,应该可以了:)
测试一下
#>cvs -d :pserver:brad@192.168.0.39/cvsroot/project1 login
(我的服务器IP为192.168.0.39)
按照提示输入密码,回车
如果没有特别提示信息,呵呵。。。。。OK
感謝《CVS使用速成配置》一文的作者!
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21471/showart_145489.html
发表评论
-
ksh 使用手记
2009-12-03 20:52 18401. 实现像bash那样上下方向键显示^[[A,^[[B,不能 ... -
如何在 Linux 中执行命令?
2009-08-12 21:01 23721、怎样在后台执行命令 ... -
linux查看命令/文件所在路径的命令及修改
2009-08-12 21:01 36117whereis 用来查看一个命令或者文件所在的绝对路径,而 w ... -
我的 emacs 配置文件
2009-08-11 18:29 3516; Set up nesC syntax highligh ... -
emacs的缩进和自动添加新行
2009-07-27 22:22 6876emacs很强大,但是强大是以复杂的配置为前提的!没有配置好的 ... -
linux share文件
2009-07-27 20:57 2173安装好samba并在share folder中设置好想要共享的 ... -
Emacs学习笔记
2009-07-24 23:09 17531. 如何安装el文件 A:单个文件直接放入 ... -
Ubuntu中emacs23 的字体设置和emacs初始窗口位置的小经验
2009-07-24 19:09 7757Debian users, if your emacs sta ... -
scim 智能拼音消失的恢复办法
2009-07-06 19:48 1468完全删掉~/.scim后重启scim -
Linux 字符操作指令
2009-07-03 01:19 1254awk awk 用来从文本文件中提取字段。缺省地,字段分割符 ... -
Shell编程学习摘录十三--shell函数
2009-07-02 01:16 4114shell允许将一组命令集 ... -
Linux Shell脚本编写详解
2009-07-01 23:56 58161. Linux 脚本编写基础 1.1 语法基本介绍 1 ... -
Grep用法
2009-06-25 23:40 24421. grep简介 grep (global search ... -
ubuntu不能识别U盘的问题
2009-06-19 01:57 21101ubuntu插入u盘后,系统没 ... -
linux编程环境配置
2009-06-16 21:29 1044Gedit 1. 在Edit->Perferen ... -
Ubuntu英文版中显中文
2009-06-16 00:13 2494添加中文语言包 方法1. 在system->找到 ... -
linux之less/more命令
2009-06-11 19:46 3973名称:less 使用权限:所有使用者 使用方式:les ... -
Ubuntu 修改默认启动项
2009-06-05 16:22 1830sudo cp /boot/grub/menu.lst /bo ... -
Emacs 显示行号
2009-04-11 21:52 4507显示行号 把linum.el放到加载路径~/.emacs.d ... -
Emacs Mode for GDB
2009-04-11 01:41 1679Emacs Mode for GDB A graphical ...
相关推荐
CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序。这样,就好象只有一个人在修改文件一样。避免了冲突。每个用户在使用仓库之前,...
本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容...
5.4.4 本地模式 155 5.4.5 特殊控制字符 155 5.4.6 终端速度 158 5.4.7 其他函数 159 5.5 终端的输出 162 5.5.1 终端的类型 163 5.5.2 识别终端类型 163 5.5.3 使用terminfo功能标志 165 5.6 检测击键动作 ...
5.4.4 本地模式 155 5.4.5 特殊控制字符 155 5.4.6 终端速度 158 5.4.7 其他函数 159 5.5 终端的输出 162 5.5.1 终端的类型 163 5.5.2 识别终端类型 163 5.5.3 使用terminfo功能标志 165 5.6 检测击键动作 ...
方法二:通过命令来建立cvs -d /usr/local/cvsroot init 2)配置服务器缓存目录(-T) windows平台下默认:c:\windows\temp linux平台下默认:/tmp 3)配置验证方式: 建立好默认管理目录后,会在其目录里产生...
与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来说...
Linux davfs2 D. 第三方工具 E. Copyright 索引 插图清单 1. Subversion的架构 1.1. 一个典型的客户/服务器系统 1.2. 需要避免的问题 1.3. 锁定-修改-解锁 方案 1.4. 拷贝-修改-合并 方案 1.5. 拷贝-修改-合并 方案...
25.6 建立 Android 代码库本地镜像/ 363 25.7 repo 的命令集/ 365 25.8 repo 命令的工作流/ 370 25.9 好东西不能 Android 独享/ 371 25.9.1 repo+Gerrit 模式/ 371 25.9.2 repo 无审核模式/ 371 25.9.3 改进的 repo ...
Linux davfs2 D. 第三方工具 客户端和插件 语言绑定 版本库转化 高级工具 版本库浏览工具 E. 版权 术语表 插图清单 1.1. Subversion的架构 2.1. 一个典型的客户/服务器系统 2.2. 需要避免的问题 2.3. 锁定-修改-...
Linux davfs2 D. 第三方工具 客户端和插件 语言绑定 版本库转化 高级工具 版本库浏览工具 E. 版权 术语表 插图清单 1.1. Subversion的架构 2.1. 一个典型的客户/服务器系统 2.2. 需要避免的问题 2.3. 锁定-修改-...