/**温馨提示,该Linux操作系统为CentOS6.5版本的内核,不同Linux操作系统的内核可能有差别*/
检测SVN是否安装
- 在Linux下执行命令:rpm -qa subversion,如果出现了svn相关的信息,说明该Linux操作系统上已经安装有SVN了;
- 如果没有安装,执行命令:yum -y install subversion
配置并启动SVN
-- 本人习惯性的喜欢将应用程序安装在/usr/local目录下,大家可以根据自己的喜好创建相应的目录及目录名
-
建立svn版本库存储根目录(svndata)及用户名、密码权限目录(svnpasswd)
- 执行命令:cd /usr/local
- 执行命令:mkdir -p svn/svndata
- 执行命令:mkdir -p svn/svnpasswd
-
启动svn服务并指定存储的根目录(即前面创建的目录)
- 启动svn服务,执行命令:svnserve -d -r /usr/local/svn/svndata
- 查看svn服务是否启动,执行命令:ps -ef | grep svn 或者ps -aux | grep svn
- svn默认启动端口是3690,可执行命令:netstat -lntup | grep 3690 或者lsof -i :3690 来查看端口的使用情况
-
创建一个svn的版本库,即某个项目的存放位置
- 执行命令:svnadmin create /usr/local/svn/svndata/project1,进入该目录,可以看到其中还有很多svn相关的目录结构;
- 配置svn的访问权限
- 执行命令:cd /usr/local/svn/svndata/project1/conf
- 将该目录下的authz与passwd文件拷贝至svnpasswd目录下,方便后期对每个项目的权限统一管理,否则每个svn项目有自己的一份权限管理,相当麻烦,命令执行:cp authz passwd /usr/local/svn/svnpasswd
- 在该目录下有一个svnserver.conf这样一个配置文件,修改该配置文件,执行命令:vim svnserver.conf
- 修改后如下,将修改后的文件进行保存即可:
- 将权限文件的访问权限设置为只有root用户能够进行操作
- 执行命令:cd /usr/local/svn/svnpasswd
- 可以看到auth与passwd两个文件已经复制过来了,执行命令:chmod 700 *
- 修改passwd这个文件,即创建用户,执行命令:vim passwd,如下图所示:
- 修改authz这个配置文件,即进行权限的设置
- 其中,1个用户组可以包含1个或多个用户,用户间以逗号进行分隔
- 版本库格式为:
- [<版本库>:/项目/目录]
- @<用户组名> = <权限>
- <用户组> = <权限>
- [/],表示根目录及以下,根目录是svn启动时指定的,我指定的就是"/usr/local/svn/svndata",[/]就是表示对全部版本库设置权限;
- [project1:/],表示对版本库project1设置权限
- [project1:/xx],表示对版本库中xx目录进行权限设置,因为一个版本库中可以有多个项目,这样可以对不同的项目进行不同的权限设置,同样可以更具体的目录级别;
- 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户
- 权限可以是 w、r、wr和空,空表示没有任何权限,r、w分别代表读、写权限,如下图:
/**注:修改svnserver.config需要重启svn服务器,修改authz、passwd这个两个文件不需要重启svn服务器*/
- 重启svn服务器先关闭svn服务器,执行命令:pkill svnserve,然后再启动svn服务器即可。
测试svn服务器是否搭建成功
/**连接svn服务器有多种方式,windows上有相应的svn客户端,eclipse中也有相应的插件,此处就不过多的讲解了,安装了svn客户端的朋友可以根据我的方式进行测试一下*/
- 因为svn服务器默认端口为3690,linux上默认有防火墙,临时关闭linux上的防火墙,执行命令:service iptables stop
- 在windows桌面上新建一个名为test的文件夹,右键,CkeckOut,如下图所示
- 接着填入用户名密码即可:
- 成功: