(1)第一步:检测当前系统是否安装过svn
svn --version //检测svn版本
如果安装了会显示svn的版本信息,如我的所示
svn,版本 1.6.11 (r934486)
编译于 May 14 2012,05:36:26
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
可使用以下的版本库访问模块:
* ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。
- 处理“http”方案
- 处理“https”方案
* ra_svn : 使用 svn 网络协议访问版本库的模块。 - 使用 Cyrus SASL 认证
- 处理“svn”方案
* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案
(2)第二步:如果没安装..就准备安装(在线安装,离线版安装,稍后会贴上)
yum install subversion
(3)第三步:svn配置(svn可以建立多个版本库)
新建文件夹:
# mkdir -p /opt/svndata/repos
建立版本库:
# svnadmin create /opt/svndata/repos
修改svn版本库配置文件
# cd /opt/svndata/repos/conf
# ls -l(会有authz,passwd,svnserve.conf)
--配置svnserve.conf文件
#vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db =passwd
authz-db = authz
realm = repos
解释下上面配置的意思:
[general]是必须要写的:
anon-access = none //定义非授权用户的访问权限,有三种方式: none 、 read 、 write ,设置为 none 限制访问, read 为只读, write 为具有读写权限,默认为 read 。
auth-access = write //定义授权用户的访问权限,有三种方式: none 、 read 、 write ,设置为 none 限制访问, read 为只读, write 为具有读写权限,默认为 write 。
password-db =passwd //定义保存用户名和密码的文件名称,这里为 passwd ,和该文件位于同一目录。就是上面ls出现的passwd
authz-db = authz //定义保存授权信息的文件名称,这里为 authz ,和该文件位于同一目录。同上
realm = repos //定义客户端连接是的“认证命名空间”, Subversion 会在认证提示里显示,并且作为凭证缓存的关键字。 svn库的目录repos
--配置passwd文件
[users]
# harry = harryssecret //username=password
# sally = sallyssecret
liuyi = liuyi
--配置authz文件
[groups]
admin = liuyi
[/]
@admin = rw
解释authz的配置信息如下:authz是svn权限配置
[groups] #设置组
group1 = user1,user2 #多用户用逗号隔开
[/] #根目录权限设置(就是“kuming”这个文件夹)
user3 = rw #用户1权限是:可读写
user4 = r #用户2权限是:可读,不可写
user = #什么都没写代表没有任何权限
@group1 = rw #设置组权限
(4)第四步:添加用户svn并启动svn
# useradd svn //添加svn这个用户
# passwd svn //设置svn用户密码
# su - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata" //启动svn详细参数说明
其中:
su - svn表示以用户svn的身份启动svn //用户svn在
-d表示以daemon方式(后台运行)运行
–-listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
-r /opt/svndata指定根目录是/opt/svndata
检查:
ps -ef|grep svnserve
如果显示如下,即为启动成功:
svn 1783 1 0 21:39 ? 00:00:00 svnserve -d --listen-port 9999 -r /opt/svndata
(5)测试svn
服务器测试:
# cd /tmp
# mkdir test
# touch test.txt
# svn import /tmp/test/ file:///opt/svndata/repos -m “this is thie first import”
# mkdir -p /tmp/test2
# cd /tmp/test2
# svn co file:///opt/svndata/repos /tmp/test2/
或者:
# svn co svn://{your-server-ip}:9999/repos/
这时应该可以看到文件test.txt.
另外的测试方法:
# telnet {your-server-ip} 9999 检查端口是不是通的
如果 上面检查不通,有可能是iptables中没有打开,设置iptables就可以:
# vi /etc/sysconfig/iptables
添加:
-A OUTPUT -p tcp -m tcp --dport 9999 -j ACCEPT
也可以用windows svn客服端来测试
svn://192.168.19.128:9999/repos 用户liuyi 密码liuyi
就可以看到里面的test.txt文件,可以checkout等
至此,Linux安装svn及测试的工作已经全部完成,希望大家多多指点