手记:Linux下成功安装SVN独立服务器
2012-06-03 14:12:48 来源:熊熊看世界 评论:0 点击:
项目与代码管理少不了版本控制,特别是多分部,多团队成员协作的情况下,更少不了版本管理。Subversion(以下简称SVN)就是满足这个需求而于近年兴起的版本管理工具软件,它是开源软件,而且目前基本上都替代了旧的开源软件CVS。
下面就介绍一下我安装SVN服务器与客户端的手记。(注:本人只对LINUX下的服务器比较感兴趣,下文没有涉及WINDOWS下SVN服务器的安装,请有需要的读者自己看文档)。
一、下软软件包
服务器SVN软件:最新版本subversion可以在http://subversion.tigris.org/getting.html 下载。
客户端SVN软件:TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.rar 网上搜索一下即可。
二、服务器端安装(解压,编译,安装)
tar xfvz subversion-1.4.5.tar.gz
tar xfvz subversion-deps-1.4.5.tar.gz
cd subversion-1.4.5
./configure –prefix=/opt/svn –without-berkeley-db –with-zlib
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db,软件包安装于/opt/svn下)
make clean
make
make install
vi /etc/profile,在/etc/profile最后加入:
PATH=$PATH:/opt/svn/bin
export PATH
svn测试
svnserve –version
如果显示以下类似信息,表示svn安装成功:
svnserve, version 1.4.5 (rxxxxx)
compiled Oct 12 2008, 10:18:56Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
三、进行svn配置
建立svn版本库目录
可建多个,例如:
mkdir -p /opt/svndata/project1
mkdir -p /opt/svndata/project2
建立svn版本库
svnadmin create /opt/svndata/project1
svnadmin create /opt/svndata/project2
修改svn版本库配置文件
版本库1:
vi /opt/svndata/project1/conf/svnserve.conf
内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/passwd
authz-db = /opt/svn/conf/authz
realm = project1
版本库2:
vi /opt/svndata/project2/conf/svnserve.conf
内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/passwd
authz-db = /opt/svn/conf/authz
realm = project2
即除realm = project2外,其他与版本库1配置文件完全相同。如果有更多的版本库,依此类推。
(注意:这里的示例是2个project都是同一个团队成员开发。如果是不同的团队,建议建立各自的password-db及authz-db)
配置允许访问的svn用户
vi /opt/svn/conf/passwd
这里为了简化配置,2个版本库共用1个用户配置文件passwd。如有必要,也可以分开。
(注意:对用户配置文件的修改立即生效,不用重启svn。)
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
frank = password
eric = helloworld
配置svn用户访问权限
vi /opt/svn/conf/authz
同样,为了简化配置,2个版本库共用1个权限配置文件/opt/svn/conf/authz。如有必要,也可以分开。文件中定义用户组和版本库目录权限。
(注意:* 权限配置文件中出现的用户名必须已在用户配置文件中定义。* 对权限配置文件的修改立即生效,不用重启svn。)
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。
project1:/,表示对版本库1设置权限
project2:/abc, ,表示对版本库2中的abc项目设置权限
project2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = frank
[/]
@admin = rw
[project1:/abc/aaa]
frank = rw
[project2:/pass]
eric =
svn配置完毕,删除下列无用文件(注意:若你对单个项目设定不同项目团队成员,则使用下列分开的密码与权限控制文件)
rm /opt/svndata/project1/conf/authz
rm /opt/svndata/project1/conf/passwd
rm /opt/svndata/project2/conf/authz
rm /opt/svndata/project2/conf/passwd
四、 启动svn服务
建立启动svn的用户
useradd svn
passwd svn
根据提示为用户svn设置密码
允许用户svn访问版本库
chown -R svn:svn /opt/svndata
chown -R svn:svn /opt/data
启动svn
su - svn -c “svnserve -d --listen-port 3999 --listen-host 192.168.1.1 -r /opt/svndata”
其中:
su - svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
--listen-port 3999表示使用3999端口提供服务,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
--listen-host 192.168.1.1 表示使用这个IP来提供SVN服务
-r /opt/svndata指定根目录是/opt/svndata
检查:
ps -ef|grep svnserve
如果显示类似如下,即为启动SVN服务器端成功:
svn 25441 1 0 15:07 ? 00:00:00 svnserve -d --listen-port 3999 --listen-host 192.168.1.1 -r /opt/svndata
五、客户端连接配置
在客户端,安装TortoiseSVN。成功后即可使用。
右击点TortoiseSVN-》Repo_Browser在弹出的URL中输入svn://服务器IP:端口(比如上一例就应用输入:svn://192.168.1.1:3999/project1),点击OK,这时会要求你输入用户名和密码,你将你在passwd中设置的用户和密码在这里输入就可以了,然后你就可以看到版本库的内容,当然刚开始是新的,具体的客户端使用请查看其他文档。
六. 说明
服务器端防火墙应适当修改,开放SVN的服务端口,否则,将直接影响访问速度或不可访问。
关于通过WEB方式访问SVN服务,就不在这里介绍了,有兴趣的朋友可以参阅websvn配置或相关文档。
相关热词搜索:Linux svn subversion
上一篇:第一页
下一篇:Linux环境SVN命令行使用经验总结
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)