安装说明
系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件
检查已安装版本
?
1
2
3
4
5
6
7
8
9
10
11
|
[root@zck /]
[root@zck modules]
安装SVN
[root@zck modules]
确认已安装了svn模块
[root@zck /]
[root@zck modules]
mod_authz_svn.so
mod_dav_svn.so
|
验证安装 检验已经安装的SVN版本信息
[root@zck modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 2012,00:44:03
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet( http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
代码库创建 SVN软件安装完成后还需要建立SVN库
?
1
2
|
[root@zck modules]
[root@zck modules]
|
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。
配置代码库 进入上面生成的文件夹conf下,进行配置
[root@zck modules]# cd /opt/svn/repositories/conf
用户密码passwd配置
?
1
2
|
[root@zck password]
[root@admin conf]
|
修改passwd为以下内容:
?
1
2
3
4
|
[ users ]
zhoulf=123456
|
权限控制authz配置 [root @admin conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
#设置[/]代表根目录下所有的资源
[/]
zhoulf=rw
服务svnserve.conf配置
[root @admin conf]# vi + svnserve.conf
追加以下内容:
?
1
2
3
4
5
6
7
8
9
10
11
|
[general]
anon-access=none
auth-access=write
password-db= passwd
authz-db=authz
realm= /opt/svn/repositories
|
配置防火墙端口
?
1
2
3
4
5
|
[root@zck conf]
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
[root@zck conf]
|
启动SVN
?
1
|
svnserve -d -r /opt/svn/repositories
|
查看SVN进程
?
1
2
|
[root@zck conf]
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
|
检测SVN 端口
?
1
2
|
[root@zck conf]
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
|
停止重启SVN
?
1
2
|
[root@zck password]
[root@zck password]
|
测试 SVN服务已经启动,使用客户端测试连接。
客户端连接地址:svn://192.168.15.231
用户名/密码: zhoulf/123456
测试创建文件夹等操作。
另附:
CentOS下svn的安装配置和使用
一,安装必须的软件包
$ yum install subversion
$ yum install mod_dav_svn
二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
2,新建一个版本仓库
# svnadmin create /home/svn/test
3,初始化版本仓库中的目录,导入原始代码
如果原代码已经有svn的相关文件,则切换到原代码目录,先删除这些svn相关的文件和文件夹。假定/home/user/code/src存放源代码
# cd /home/user/code/src
# find ./ -name "*.svn" | xargs rm -rf
# svn import /home/user/code/src file:///home/svn/test/ -m "init test code"
4,添加用户
在/home/svn/test/conf/passwd文件添加形如“username=password"的条目。
[users]
admin = adminpass
user1 = 123456
5,修改用户访问策略
/home/svn/test/conf/authz记录用户的访问策略:
[groups]
[test:/]
admin = rw
user1 = r
* =
[test:/modue]
admin = rw
user1 = rw
* =
以上表示admin具有所有的读写权限,user1在modue文件夹下可读可写,根目录下只读。也可以配置组的权限。
6,修改/home/svn/test/conf/svnserve.conf文件,让用户和策略配置生效.
svnserve.conf内容如下:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = test
不能有空格,空格就报错
7,启动服务器
# svnserve -d -r /home/svn
8,测试服务器
# svn co svn://192.168.1.5/test
按提示先输入用户密码,再输入svn的用户名、密码,就可以了。
# cd test
# vim main.c
# svn add main.c
# svn commit main.c -m "comment"
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
三,配置SVN服务器的HTTP支持(可以用浏览器看代码)
详细配置请参考 http://www.blogjava.net/jasmine214--love/archive/2010/09/26/332989.html
1,修改httpd.conf,添加关于SVN服务器的内容
修改/etc/httpd/conf/httpd.conf。
2,重启HTTPD服务器
# service httpd restart
3,用浏览器访问http://192.168.1.5/test
四,可能出现的问题
1. 如果外网不能正常访问,可能还需要作端口映射,对外网开放3690端口。
检查端口是否打开,可以用命令: telnet xxx.xxx.xxx.xxx 3690
2. 在windows下checkout的时候,如果出现类似以下的错误:
原因是linux下有同名但大小写不同的文件。一种解决办法是尽量避免这种情况,改成不同的名称。
转
http://my.oschina.net/junn/blog/164041