公司内部须要配置局域网SVN,须要在在内部虚拟机服务器搭建,搭建过程作个记录,供参考。
注:若是条件容许,尽可能在windows下搭建svn服务器,很省事,尤为是权限配置很是方便又易懂,效果相同mysql
若是确认没有svn能够直接进入安装步骤sql
保证当前系统没有安装svn
使用命令,尝试查看是否已经安装了svnwindows
rpm -qa subversion
或者,咱们直接在所有文件中查找svn文件夹就能够,使用以下命令查找,任意文件目录下输入服务器
find / -name svn
若是发现svn文件夹首先要确认是否为svn的文件夹,有些软件内置svn文件夹及相关服务,注意不要看错了。
如:svn
下面几行的svn是在redmine下的svn因此它是不须要进行处理的,若存在svn,则进行删除或者卸载。
若是是压缩包安装只许删除全部相关文件spa
rm -rf [目标文件夹]
若是使用的是yum安装则:code
yum remove subversion
出现确认输入y 便可,直至卸载完成
使用命令ip
rpm -qa subversion
没有出现svn版本说明卸载成功内存
分别执行以下命令(安装必须在联网状况下完成)安装svn和相关依赖包开发
yum install subversion
yum install mod_dav_svn
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
安装完成后进行确认是否安装成功,根目录下输入
cd /etc/httpd/modules
执行
ls | grep svn
出现以下内容便可
mod_authz_svn.so
mod_dav_svn.so
到此为止svn服务器基本安装完成
新建一个目录用于版本库,存放版本库信息(这一步能够省略)
mkdir -p /usr/local/svn/repo
建立一个版本库
svnadmin create /usr/local/svn/repo
上面的位置就是版本库的位置,文件内存放该版本库的相关信息
进入配置文件目录
cd /usr/local/svn/repo/conf
[general] anon-access = read auth-access = write password-db = passwd authz-db = authz
分别解释一下上面四行的意思
打开文件添加帐户信息
[user] admin = 123456 root = root
admin为登录的用户名,123456是密码,使用回车分割用户
在[/]下添加
[/] admin = rw root = rw * = r
解释一下啊上面的配置
admin用户具备根目录下全部文件的rw(read,write)读写 权限,其余用户用*代替,其余用户只有读的权限
至此svn服务器的基本配置和用户配置已经完成
能够在svn客户端访问地址
svn://ip
注意咱们使用的是svn协议来完成svn库的访问
实际开发中会使用不一样的分组来分类svn帐号,进而实现权限控制
对用户进行分组,authz文件中的[groups]下添加,多个组员之间用 “,” 隔开
[groups] group1 = admin group2 = root
上面就是把amdin分到group1组,root分到group2组
在[/]下添加
[/] @group1= rw @group2 = rw * = r
能够批量对组的权限进行控制
假设咱们在版本库根目录下有两个文件夹分别为 user 和 project文件夹
如今设置user文件夹只有group1组的人员能够进行读写,其余用户组只可读,project文件夹只有group2组能够读写,group1组只有读权限,而且其余用户不可见(注意最后一行)
咱们能够在authz文件中添加以下配置
[/user] @group1 = rw * = r [/project] @group2 = rw @group1 = r * =
注意:对文件夹权限进行配置的时候,仓库里有多少个文件夹, 就得为每个文件夹都分配权限,否则不起做用
完~