本文详细的介绍了在centos 6 64位服务器上搭建svn服务器的详细过程。
工具/原料
-
环境linode vps centos6 64bit
-
svn是版本管理控制工具 安装简单方便;
-
svn独立服务器安装方式
svn独立服务器的搭建
-
1
环境准备
yum groupinstall "X Software Development" "Development Libraries" "Development Tools"
-
2
下载所需的源码包
subversion-deps-1.6.17.tar.gz svn 的支持库之类的文件
wget http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.gz
subversion-1.6.17.tar.gz svn 的主程序
wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz -
3
源码编译安装
这两个要解压在同一个目录下
tar zxvf subversion-deps-1.6.17.tar.gz
tar xvf subversion-1.6.17.tar.gz
cd subversion-1.6.17
./configure --prefix=/opt/svn
make && make install -
4
修改环境变量
-
5
vi /etc/profile , 在/etc/profile 最后加入:
PATH=$PATH:/opt/svn/bin
export PATH
检测是否安装成功
svnserve --version
显示如下信息则表示安装成功。
svnserve, version 1.6.17 (r1128011)
compiled Mar 23 2012, 16:57:41END
配置svn
-
1
系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在
版本库的conf 目录下。所以每次开始一个新项目都必须新建一个版本库,并重新配置各配
置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,本地路
径等信息。 -
2
创建svn库testsvn
mkdir /var/svn
cd /var/svn
svnadmin create testsv
cd testsv
[root@nagios testsv]# ls
conf db format hooks locks README.txt
[root@nagios testsv]# cd conf/
[root@nagios conf]# ls
authz passwd svnserve.conf -
3
配置版本库信息
[root@nagios conf]# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authzauthz-db = authz
realm = testsv(库的名字)
[sasl]
# use-sasl = true
# min-encryption = 0
# max-encryption = 256 -
4
定义版本库访问权限
[root@nagios conf]# vi authz
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe
Average
[groups]
# harryharry_and_sally = harry,sally
# harryharry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
#添加下面两句
[/]
testuser = rw
[testsv]
testuser = rw -
5
定义用户密码
[root@nagios conf]# cat passwd
[users]
# harry = harryssecret
# sally = sallyssecret
testuser = testsv123456END
启动svn服务
-
1
建立启动svn 的用户
useradd svn
passwd svn
根据提示为用户svn 设置密码
允许用户svn 访问版本库
chown -R svn:svn /var/svn
启动svn
(1)用设定帐户启动
su svn -c "svnserve -d --listen-port 9999 -r /var/svn"
其中:
su svn 表示以用户svn 的身份启动svn
-d 表示以daemon 方式(后台运行)运行
–listen-port 9999表示使用9999 端口,可以换成你需要的端口。但注意,使用1024以下的端
口需要root 权限
-r /var/svn 指定根目录是/var/svn
(2)对于单个代码仓库: -
2
启动命令:
svnserve -d -r 文件夹路径--listen-host 192.168.100.131
其中-d 表示在后台运行, -r 指定服务器的根目录,这样访问服务器时就可以直接用svn://
服务器ip 来访问了。
如果服务器有多ip 的话–listen-host 来指定监听的ip 地址.
我们可以在svn 客户端中通过svn://192.168.100.131 来访问svn 服务器
(3)对于多个代码仓库:
我们在启动时也可以用-r 选项来指定服务器根目录, 但访问时需要写上每个仓库相对于svn
根目录的相对路径.
比如, 我们有两个代码仓库/var/svn/testsv
svnserve -d -r /var/svn --listen-host 192.168.1.100
来启动,
那么在客户端访问时可以用svn://192.168.100.100/testsv 来分别访问两个项目启动完成以
后
我启动的方法:
[root@austit fabian]# svnserve -d -r /var/svn --listen-host 192.168.100.131
注意:
svn 默认端口是3690 ,你需要在防火墙上开放这个端口。也可以通过svnserve 的–listen-port
选项来指定一个已经开放的其他端口, 不过这样的话客户端使用也必须家上端口, 如
svn://192.168.100.200:8888/ -
3
检查是否启动成功
(查看是否存在svnserve 进程)
ps -ef|grep svnserve
如果显示如下,即为启动成功:
svn 6941 1 0 15:07 ? 00:00:00 svnserve -d –listen-port 9999 -r /var/svn
我是用root 帐户启动的:
[root@austit fabian]# svnserve -d -r /var/svn --listen-host 192.168.100.131
[root@austit fabian]# ps -ef|grep svnserve
root 4513 1 0 21:07 ? 00:00:00 svnserve -d -r /var/svn --listen-host 192.168.100.131
root 4515 4409 0 21:07 pts/1 00:00:00 grep svnserveEND
svn使用
然后用户下载客户端访问即可,推荐使用TortoiseSVN。
注意事项
-
尽量不要使用centos自带的svn版本服务器
-
安装过程不要断掉ssh链接,否则容易出现未知错误