OS + Linux SVN / CVS / ClearCase
IBM Rational ClearCase
mod_dav_svn是apache连接svn的模块
yum install subversion mod_dav_svn httpd
配置文件简单说明,
SVNParentPath 说明可以在指定的目录下,创建多个SVN项目
-----------------------
vim /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn". Each repository
# must be readable and writable by the 'apache' user. Note that if
# SELinux is enabled, the repositories must be labelled with a context
# which httpd can write to; this will happen by default for
# directories created in /var/www. Use "restorecon -R /var/www/svn"
# to label the repositories if upgrading from a previous release.
#
#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
#
<Location /repos>
DAV svn
SVNParentPath /var/www/svn
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/passwdfile
Require valid-user
# </LimitExcept>
</Location>
-----------------------------
用apache自带的命令添加密码
[root@master1 www]# htpasswd -c /etc/subversion/passwdfile admin
New password:
Re-type new password:
Adding password for user admin
创建SVN的版本库
cd /var/www/svn
svnadmin create mytest0531
配置版本库相关文件
[root@master1 conf]# pwd
/var/www/svn/mytest0531/conf
[root@master1 conf]# ll
总计 24
-rw-r--r-- 1 root root 1080 05-31 16:05 authz
-rw-r--r-- 1 root root 309 05-31 16:05 passwd
-rw-r--r-- 1 root root 2279 05-31 16:05 svnserve.conf
配置文件说明
svnserve.conf 文件, 该文件配置项分为以下5项:
anon-access: 控制非鉴权用户访问版本库的权限。
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
passwd文件
password-db = passwd
authz-db = authz
authz文件
[users]
harry = harryssecret
sally = sallyssecret
authz文件
[groups]
harry_and_sally = harry,sally
[testsvn:/]
@harry_and_sally = rw
* = r
testsvn对应版本库名称,/对应svn的目录,/var/www/svn
启动svn
svnserve -d -r /var/www/svn
测试访问
http://192.168.0.209/svn/mytest0531
=======================================================================
SVN关于权限的测试
一个疑问:web访问的用户,具有什么权限??
httpd目录下关于svn的配置文件,admin测试用户只具有浏览权限。
subversion.conf,提供svn客户端访问svn的方式。
权限测试:
web用户
admin
svn客户端用户(svn配置文件中设置的用户)
user01
user02
user03
配置内容如下
[root@master1 conf]# cat svnserve.conf |grep -v '^#'|sed /^$/d
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
------------------------------
anon-access: 控制非鉴权用户访问版本库的权限。可以设置为write、read、none
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
[root@master1 conf]# cat passwd |grep -v '^#'|sed /^$/d
[users]
user01 = user01
user02 = user02
user03 = user03
格式:用户名 = 密码
[root@master1 conf]# cat authz |grep -v '^#'|sed /^$/d
[aliases]
[groups]
user01 = user01
user02_03 = user02,user03
[mytest0531:/]
@user01 = wr
@user02_03 =r
[groups]分组选项
[mytest0531:/]对于mytest0531下的所有目录,user01具有读写权限,user02、user03具有读权限。
测试工具TortoiseSVN
1·安装TortoiseSVN
2·连接,在文件夹中右键,选择SVN Checkout...
3·选择OK
4·提示输入用户名和密码
5·输入不正确,不会有提示,但是也连接不上。可以重新输入。
6·用测试账号user02登录
7·将SVN的文件下载到本地的C:\Users\Ninglianjie\mytest0531目录下
8·将“新建文本文档.txt”删除,然后用user02上传,看结果如下:
选择SVN Commit,输入user02密码user02
9·用user01密码user01提交之后,结果如下
则可以正常删除。
10·用web浏览器浏览,如下
输入地址http://192.168.0.209/svn/mytest0531/
用户名admin,密码admin,“新建文本文档.txt”已经删除
4.建立启动svn的用户
1
2
3
4
[root@moshi ~]# useradd svn #如果提示svn账户已存在,则执行以下命令
[root@moshi ~]# passwd svn ##根据提示修改下密码,不能过于简单,可使用常用密码
[root@moshi ~]# chown -R svn:svn /home/svn/ ##允许用户svn访问版本库
[root@moshi ~]# chmod –R o+rw /home/svn ##解决windows检出提交提示/home/svn/db/txn-current-lock’错误
5.配置svn的端口
1
[root@moshi ~]# vi /etc/httpd/conf/httpd.conf
找到
#Listen 12.34.56.78:80这一行,
Listen 9999 ##9999就是svn的端口,默认是80,你可以修改成你自己想要的。不建议使用默认80端口
5.配置httpd
1
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf
修改文件内容为:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /home/svn/conf/pwd.conf ##对应你的用户配置文件
AuthzSVNAccessFile /home/svn/conf/authz.conf ##对应你的权限配置文件
Require valid-user
</Location>
保存退出!
重启httpd服务。
1
2
3
[root@moshi ~]# service httpd restart
停止 httpd: [确定]
正在启动 httpd: [确定]
出现以上字样,表名httpd的配置已经成功启动成功。
6.启动svn
1
[root@moshi ~]# svnserve -d -r /home/svn/
7.查看svn服务是否正常
1
2
3
4
[root@moshi ~]# ps aux|grep svn
##出现以下内容说明svn服务已经成功启动
root 8610 0.0 0.0 152864 740 ? Ss 11:25 0:00 svnserve -d -r /home/svn/repos1/
root 13128 0.0 0.0 103252 876 pts/0 S+ 14:00 0:00 grep svn
8.进入浏览器访问。
在浏览器中输入:服务器Ip+端口+httpd配置中的<Location /svn>。
如:http://192.168.1.1:9999/svn
会提示你输入用户名密码。
9.总结
嗯,没啥太多总结,这些内容都是我从网上综合多个帖子试验出来的结果,希望能给你一些帮助。
分类: Linux
标签: svn, httpd, linu
|
Linux上配置Apache+Subversion+Trac
http://blog.chinaunix.net/u/11995/showart_1011475.html
Subversion是新一代的版本控制工具,它是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。Subversion是近年来崛起的版本管理工具,被誉为是cvs的接班人。 最近帮公司在一台服务器上安装了Subversion和Trac,由于服务器是公司前几年买的比较老,型号是HP ML350,拿到手一看,操作系统竟然还是Fedora Core release 2,所以在安装过程中好多需要的rpm包都要自己下载,还不能用最新的rpm, 新的都没发安装,让我到网上找了好久才找到。真有点不习惯,以前一直用Ubuntu, 只要用apt-get来安装,就很方便的帮你自动处理了所需的依赖关系,那是一个爽啊!! 想重装OS,可是没办法啊服务器的OS安装比较麻烦,重装了的话可能涉及到驱动方面的安装,太老了搞不好就毁了,到时再找HP的技术支持那就搞大了,不好向老大交代 首先:下载Apache, Subversion 和 Trac 的安装包, Apache2.2.8, subversion1.4.6和trac-0.10.4。Apache是web服务器,用来通过web访问subversion。安装包都可以从官方网站上下载。 下载地址: 1. 编译安装Apache : //解压apache2安装包 2. 编译安装Subversion: PS:在安装之前先确认你的OS上已经安装了python和swig,如果没有安装的话可以下载source code或rpm包来安装,因为我的OS上原本已经安装了所以我没有去重新安装,我安装的版本是:python-2.3.3和swig-1.3.19 //解压subversion安装包 经过上面的步骤mod_dav_svn.so and mod_authz_svn.so 将会被copy到/usr/local/apache2/modules/下, 注意一下运行. /configure时加的这几个参数PYTHON=/usr/bin/python --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python,开始的时候编译svn的时候没有加这几个参数,单独使用svn 都没问题,但是后面安装好trac后却怎么也不行,打开网页一直有错误,从Browser访问Trac的时候,出现了下面的错误: 同时执行了上面的make && make install后还要编译安装Subversion SWIG Python bindings #cd subversion-1.4.6 #make swig-py #make install-swig-py 那么你可以看到swig-py的install目录是/usr/local/subversion/lib/svn-python。用如下命令讲这个扩展包扩展到python: 剩下的就是测试svn的swig-py包是不是能work了,很简单。 #python <-- 启动python >>>import svn.repos <-- 按ctrl+d退出 如果不报错,就完事大吉了。 如果报错,那么检查几件事情: I. subversion的configure是不是enable了shared和static,是不是带--with-swig; II. libsvn_swig_py-x.so是否存在于/usr/local/subversion/lib目录; III. /usr/local/subversion/lib是否已经增加到ld.so.conf文件 (/etc/ld.so.conf) IV. 请使用ldconfig -v |grep swig来检查是否有swig的下列动态库 libsvn_swig_py-1.so.0 -> libsvn_swig_py-1.so.0.0.0 如果一切正常,这个安装就完成了。 安装完成后,运行svnserver --version确认版本为1.4.6。 3. 配置svn 最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,所以我们建立一个用户(如svn) 在root权限下用下面的命令创建用户和组: //接下来修改Apache配置文件 <Location /svn> //这里设置SVNParentPath而不是SVNPath的好处是可以几个repository同时访问 另外要修改 apache进程的权限:因为所有跟版本库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没 有访问版本库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行: //重启apache 接下来可以import代码文件了,可以在其他机子上完成: 应该说svn和apache就处理好了!接下来就是安装配置Trac.... 4. 安装配置Trac Trac 是一个非常优秀的源代码浏览工具,现在也很流行。在安装前,需要注意的是,Trac需要以下几个软件的支持,安装前一定要先安装好。 要预先安装的软件包在trac-0.10.4的INSTALL文件里有列出,copy如下: * Python, version >= 2.3. 以上各包,一个也不能少,除非你不用apache来做web(而使用tracd,这是trac本身都不建议使用的httpd),当然我们用CGI方式来运行python脚本,所以省掉一个mod_python. 补充说明下,光有PySQLite而没有SQLite显然是不行的 由于我使用的是Fedora 2的OS,我直接安装的是针对它的rpm包: sqlite-2.8.16-1.1.fc2.rf.i386.rpm 这几个软件包可以在http://www.rpmfind.net 和http://www.rpmfind.com 上找到适合自己系统的版本,下载后直接安装即可。当然你也可以通过下载源码编译安装这些包。 然后开始安装trac: #tar zxvf trac-0.10.4.tar.gz #cd trac-0.10.4 #python ./setup.py install 关于trac本身的安装就这么简单,详情请参考trac-0.10.4/INSTALL文档。其中还有后续章节所涉及内容的详述,包括如何使用 trac-admin初始化一个trac项目,如何启动tracd服务,以及如何配置使用apache来提供trac的web服务。 trac安装的缺省路径是/usr,trac-admin和tracd都在/usr/bin目录,trac的模版等都在/usr/share/trac目录。 使用trac-admin命令可以初始化一个trac项目,一个trac项目对应一个SVN repository,这是应用中应该注意的。 #trac-admin /home/trac/ my_project initenv 这个命令即可启动初始化/home/trac/my_project项目的交互进程,是建立trac项目,运行后提示如下: 初始化完成后,可以通过修改/home/trac/my_project/conf/trac.ini来改变设置,甚至可以改变svn repository的设置,你需要做的只是在改完后使用trac-admin /home/trac/my_project resync来重新同步trac项目和svn repository。 更细节的配置内容请参考trac相关文档。 顺便修改一下权限 trac有两种方式提供web服务,其一是trac自带的tracd,它本身就是一个httpd,启动方式如下: tracd --port 8000 /home/trac/my_project 或者你有两个项目,则在后面加一个目录: tracd --port 8000 /home/trac/my_project1 /home/trac/my_project2 这种方式很简单,但问题是trac本身都不建议你用,因为tracd不够完善. 但不管怎么样,你可以试用一下tracd,看看你的安装配置是不是都可以work了,毕竟加上apache,是件相对复杂很多的事情,所以,在这之前用tracd来检验一下还是必要的。 启动服务后,你就可以在一台客户机上使用浏览器来来浏览你开启的web服务了。比如: http://localhost:8000/my_project 如果可以看到trac的默认首页,就说明是OK的,然后就开始将trac集成到apache. 把trac集成的到apache有很多方法,可以使用mod_python模块,可以使用cgi模块或者fast-cgi模块 我这里使用了cgi模式,这个方法比较简单。如果你需要速度快一点,那使用fast-cgi好了. 然后修改apache的配置文件httpd.conf vi /usr/local/apache2/conf/httpd.conf 然后添加以下内容: # Alias /trac/chrome/common "/usr/share/trac/htdocs" ScriptAlias /trac /usr/local/apache2/cgi-bin/trac.cgi <Location "/trac/*/login"> 密码文件svntrac.htpasswd 我们和svn共享,这样就只需要管理一套密码了. 这里需要注意的是: SetEnv TRAC_ENV "/home/trac/my_project" #单个项目时用这样写 还有如果多个项目使用一个密码文件可以这样配置"trac/*/login",单个的话就"tra/login" 对于多个项目的话当在浏览器里输入http://localhost/trac 时显示的是一个简单的Available Projects页面,如果希望修改这个页面,请编辑/usr/share/trac/templates/index.cs, 下面是我根据我们项目需要而更改的index.cs文件 <!DOCTYPE html <div id="metanav" class="nav"><ul><li class="first"><a href=""> </a></li></ul></div> <div id="content" class="wiki"> <br><h1>XXX Team's Projects</h1> <ul><h2><ul><li> <h2><ul><li> <h2><ul><li> <h2><ul><li> <h2><ul><li> <div id="footer"> 上述只是一个例子,个人可以根据需要修改。 管理Trac访问许可 备份和恢复Trac 到此trac也配完了。 关于svn的备份可以参考http://hi.baidu.com/zhangwf/blog/item/f94ca8518a5aa38a8d54305b.html 我因为是要从一台原来的svn server 更换到新的server, 所以我是把原来svn server上的svn 仓库直接进行备份动作后拷贝到新的svn server的仓库中来的。
http://www.subversion.org.cn/bbs/viewthread.php?tid=1393&extra=&page=1
Trac+SVN+Apache终极配置手册(PDF)
|
Ubuntu Linux操作系统CVS安装与配置详解
http://unix-cd.com/vc/www/22/2007-09/8301.html
1. 安装 cvs
$ sudo apt-get install cvs
2. 安装 cvsd
$ sudo apt-get install cvsd
cvsd安装以后, 会提示设置“repository” 的位置location, type in "/cvsroot".
“RootJail” is setted in “/etc/cvsd/cvsd.conf”, the default value is /var/lib/cvsd.
This means, your repository location could be just “/cvsroot”
3. 创建 /myrepos。
$ cd /var/lib/cvsd
$ sudo mkdir cvsroot
4. 初始化 /cvsroot
$ sudo cvs -d /var/lib/cvsd/cvsroot init
5. 设置cvsd用户鉴定(user authentication)
normal it’s system level, and the cvs users should be configured independently.
$ sudo vi /var/lib/cvsd/cvsroot/CVSROOT/config
添加下面行:
SystemAuth=no
PamAuth=no
LockDir=/tmp/cvsroot
Look out! “/tmp/cvsroot” 和RootJail的位置是相关的.
6. 创建 LockDir
$ sudo mkdir /var/lib/cvsd/tmp/cvsroot
7. 创建 users
$ sudo cvsd-passwd /var/lib/cvsd/cvsroot cvs-user
8. 编辑 cvsd configuration
$ sudo vi /etc/cvsd/cvsd.conf
The default one should be:
RootJail /var/lib/cvsd
Repos /cvsroot
NOTICE! Repos路径也是和RootJail相关的.
9. Set directory’s popedom
$ sudo chown cvsd:cvsd /var/lib/cvsd -R
10. Restart cvsd
$ sudo /etc/init.d/cvsd restart
test cvs
cvs -d :pserver:mcl@localhost:/cvsroot login
cvs -d :pserver:mcl@localhost:/cvsroot checkout
pserver认证方式使用缺省端口,不使用代理.
若使用ssh认证方式,需要进行如下设置:
配置.ssh/config 和 .bashrc文件
$ cd ~
$ vi .ssh/config
添加内容为:
Host localhost
HostKeyAlias cvsserver
Hostname 192.168.11.134
Port=22
$chmod 600 .ssh/config
$ vi .bashrc
添加内容:
CVS_RSH=ssh
CVSROOT=:ext:mcl@localhost:/cvs
export CVSROOT
export CVS_RSH
有可能还需要进行PATH设置,然后export PATH
$source .bashrc
然后就可以使用了
cvs co 目录文件名
http://www.blogjava.net/bnlovebn/archive/2008/05/23/202374.html
[Linux]安装,配置Subversion 1.3.1
| 1. | 本文需要两个文件,httpd和subversion。 ·httpd是web服务器,用来通过web访问subversion,这里 是官方网站,这里 是它的下载网页, 这里 可以下载到httpd-2.2.2.tar.bz2。 ·subversion就是本文的主角,这里 是他的官方网站,这里 是它的下载网页, 这里 可以下载到subversion-1.3.1.tar.bz2 |
||
| 2. | 新建一个用户:svnroot 最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,但是下面的一些安装和配置操作还是 需要root用户来完成的,因为有些操作只有root才能做。 |
||
| 3. | 编译安装httpd (root用户操作):
|
||
| 3. | 安装Subversion
|
||
| 4. | 修改Apache配置文件
|
||
| 5. | 重启apache
|
||
| 6. | 权限管理 1)增加用户
http://localhost/svn/test 这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限 |
||
| 7. | 一些备忘: 1. svn checkout http://localhost/svn/hello.world 2. svn commit 时的默认编辑器的环境变量$SVN_EDITOR=vi需要手动设定,用kate好像有问题 3. 如果linux的登录用户名密码都和svn的其中一个用户名密码相同时,在checkout的时候不会要求输入用户名密码直接就可以checkout出 来。比如:linux有个用户wooin,svn也有一个用户wooin,并且密码都是一样的,当用wooin登录linux后,执行checkout, 可以直接提取出源码文件,不用输入认证信息。 4. 在svn使用过程中牵扯到几种权限:文件系统的权限,linux系统权限,svn用户的权限,apache进程的权限。 文件系统的权限,linux系统权限:这里相同的意思,就是平时大家使用linux时文件夹和文件的访问权限。在 svn建立仓库,文件夹,配置文件的时候用svnroot用户,并将仓库权限设置为700,不允许其他用户直接通过文件系统查看,只能由svnroot进 行管理。 apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有 访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
svn用户的权限:就是在repository/authz.conf文件中设置的权限信息,是svn用来管理仓库访问权限的。 5. svn服务器设置有两种方式:http 和 svnserve。这里介绍的是http方法 6. 在/etc/profile的结尾设置一些svn启动时要做的工作
end |
<script type="text/javascript"><!-- --></script> <script type="text/javascript"><!-- -->
end

,那就只好老老实实的自己编译安装吧,说了一大堆废话,下面把我的安装步骤讲一下吧,呵呵~~
浙公网安备 33010602011771号