kali下搭建SVN服务器
一、下载软件和依赖包
cd root
wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.7.tar.gz
wget https://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz
wget http://archive.apache.org/dist/apr/apr-1.6.3.tar.gz
wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
注:目录可自己创建,如果有网可直接执行,没网的话,到对应网址下载安装包和依赖包
二、安装软件依赖包
1.安装 apr.tar.gz
cd root
tar -zxvf apr-1.6.3.tar.gz
cd apr-1.6.3/
./configure --prefix=/usr/local/apr
make && make install
2.安装 apr-util.tar.gz
cd root
tar -zxvf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make && make install
3.安装 zlib-1.2.11.tar.gz
cd root
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib
make && make install
4.安装 subversion-1.9.7.tar.gz
cd root
tar -zxvf subversion-1.9.7.tar.gz
unzip sqlite-amalgamation-3071501.zip
mv sqlite-amalgamation-3071501 ./subversion-1.9.7/sqlite-amalgamation
cd subversion-1.9.7
./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib=/usr/local/zlib --without-berkeley-db --with-ssl
make
make install
5.检验是否安装成功
cd /usr/local/svn/bin
./svnserve --version
三、安装时可能会遇到的一些问题
上面的安装步骤都是kali linux上安装的,再次从Ubuntu上安装时可能会遇到下面的问题
1.安装 apr.tar.gz执行./configure命令时最后出现下面的错误:
config.status: executing libtool commands
rm: cannot remove ‘libtoolT’: No such file or directory
config.status: executing default commands
解决方法:修改configure文件,找到:cfgfile" 这一行,将其注释掉
2.安装apr-util.tar.gz执行make命令时出现如下的错误:
xml/apr_xml.c:35:19: fatal error: expat.h: 没有那个文件或目录
#include <expat.h>
^
compilation terminated.
解决方法:缺少expat库,安装expat-2.1.0.tar.gz,项目主页:https://sourceforge.net/projects/expat/
cd Desktop
tar -zxvf expat-2.1.0.tar.gz
cd expat-2.1.0
./configure --prefix=/usr/local/expat
make
make install
重新编译apr-util,再进行make:
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make
make install
四、仓库的创建和配置
1:在当前路径下创建NGVONE_library文件夹,mkdir NGVONE_library
2:svnadmin create /root/NGVONE_library 命令用来创建NGVONE_library仓;多仓创建命令相同,例如在创建一个NGVONE_robot仓命令为:svnadmin create /root/NGVONE_robot
3:killall svnserve 命令用来杀死所有的SVN进程,因为如果后台有运行的SVN,那么再次启动新仓会报错,显示地址已使用
4:SVN服务启动 :
1)单仓启动命令:svnserve –d –r /root/NGVONE_library
2)多仓启动命令:svnserve –d –r / ,此命令表示启动根目录下的所有SVN,多仓启动最好使用此命令,因为如果按单仓启动命令启动,可能会报地址已使用错误
五、权限设置
需配置如下三个文件,文件路径就是开始配置SVN仓的路径
1.svnserve.conf 服务器配置文件
# 匿名用户访问版本库权限,可选值read/write/none,一般情况下匿名用户没有权限,设置为none
anon-access = none
# 授权用户访问版本库权限,可选值read/write/none
auth-access = write
用户名密码文件,可以使用绝对路径,相对路径是指相对于conf目录的位置,一般默认设置相对路径即可。注意:如果该选项不开启,用户名密码文件将失效
password-db = passwd
授权管理文件,可以使用绝对路径,相对路径是指相对于conf目录的位置,一般默认设置相对路径即可。注意:如果该选项不开启,授权管理将失效
authz-db = authz
# 版本库认证域名称,也就是需要认证的仓库名
realm = NGVONE_library
2.passwd 用户密码管理文件
[users]
zhangpeng= talent
jiao_channi = talent
3.authz 授权管理文件
# 分组设置权限
[groups]
admin =zhangpeng,jiao_channi
# 也可增加其他分组,例如:测试人员
tester=guo_zhiqiang
# 设定根目录权限,此处应注意:设置为根目录即可,如果不设置或者设置错误将导致用户对于仓的访问没有权限
[/]
# 开发人员读写权限(给组分配权限时前面加@符)
@admin= rw
# 测试人员读权限
@tester= r
# 也可以为分组外的用户配置权限
fu_qi= rw
##为用户配置其可操作的仓的具体目录,例如在NGVONE_library这个仓下有两个文件夹A和B,只想让某用户访问其中之一配置如下
[/A]
# 张三用户对于product仓库下的“A”目录具有读写权限
zhangsan= rw
# 李四具有读权限
lisi= r
# 张三无任何权限
zhangsan=
# 其他任何人没有任何权限
* =
[/B]
# 张三用户对于product仓库下的“B”目录具有读写权限
zhangsan= rw
# 李四具有读权限
lisi= r
# 张三无任何权限
zhangsan=
# 其他任何人没有任何权限
* =
注:分组授权管理是为了方便多用户授权,也可以不分组,直接给用户授权
为了方便期间可添加环境变量:vi /etc/profile
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.11
export PATH=ZOOKEEPER_HOME/bin:/usr/local/svn/bin