【linux】linux:CentOS 7 搭建部署SVN服务器

版权声明:本文为博主原创文章,欢迎转载,转载须注明出处:By 故三殇 https://blog.csdn.net/qq_39720249/article/details/84875302

目录

一、安装subversion

二、建立版本库

三、配置

四、SVN服务​

五、 创建 svn 版本文件

六、添加目录文件到版本库

七、设置服务器自动提交文件

八、客户端测试



一、安装subversion

(1) subversion安装,输入命令:

cd /bin
sudo yum install subversion


(2)subversion安装成功,查看安装在/usr/bin目录里,输入命令:

which svnserve


(3)检查一下subversion是否安装成功,输入命令:



二、建立版本库

subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。

(1)查看svnserve文件所在路径,输入命令:

 systemctl cat svnserve.service


(2)查看当前subversion的数据根目录路径,输入命令:

cat /etc/sysconfig/svnserve


(3)我们修改/etc/sysconfig/svnserver将默认目录指定到/opt/svn:

①修改当前subversion的数据根目录路径到/opt/svn,输入命令:

cat /etc/sysconfig/svnserve
vi /etc/sysconfig/svnserve

 

②使用svnadmin建立版本库CarManagement,输入命令:

sudo mkdir -p /opt/svn
sudo svnadmin create /opt/svn/CarManagement

③查看创建版本库明细,输入命令:

ll /opt/svn/
ll /opt/svn/CarManagement/



三、配置

(1)编辑用户文件passwd,新增两个用户:admin和shang,输入命令:

cat /opt/svn/CarManagement/conf/passwd
vi /opt/svn/CarManagement/conf/passwd


(2)编辑权限文件authz,用户admin设置可读写权限,shang设置只读权限,输入命令:

cat /opt/svn/CarManagement/conf/authz
vi /opt/svn/CarManagement/conf/authz

要设置权限组,添加以下内容:
【develop、admin:自己命名权限组名字即可】
【如果1个权限组里,有多个用户,则用户与用户之间用英文逗号隔开,比如:develop = shang,admin】

# 研发人员/测试人员账号权限组
develop = shang
# 管理员账号权限组
admin = admin

[\]
@develop = r
@admin = rw
不设置权限组,添加以下内容:
【只需在末尾添加,无需在文件其他部分修改和添加任何东西】
【rw表示赋予此账号可读写的权限,请注意[]中的斜杠,一定是反斜杠,有些教程说,需添加版本库名称在括号内,我直接建议就这样写,这样写允许访问的权限更大,避免一些错误】

[\]

账号1 = rw

账号2 = rw

......

 


(3)编辑svnserve.conf,输入命令:

cat /opt/svn/CarManagement/conf/svnserve.conf
vi /opt/svn/CarManagement/conf/svnserve.conf
[general]添加的内容【每行代码前面一定不要有空格,每行全部顶置】:

anon-access = read                     #控制非鉴权用户访问版本库的权限
auth-access = write                    #控制鉴权用户访问版本库的权限
password-db = passwd                   #指定用户名口令文件名
authz-db = authz                       #指定权限配置文件名
realm = 服务器ip地址                    #指定版本库的认证域,即在登录时提示的认证域名称



四、SVN服务

(1)启动SVN服务,输入命令:

sudo systemctl start svnserve.service

或者:

svnserve -d -r /opt/svn

(2)检查服务是否启动成功,输入命令:

ps aux | grep svn

(3)通过netstat可以看到SVN打开了2606端口,输入命令:

sudo netstat -tnlp

(4)设置成开机启动,输入命令:

sudo systemctl enable svnserve.service


五、 创建 svn 版本文件

(1)输入命令,进入版本库:

svn checkout file:///opt/svn/CarManagement ./

 (2)输入指令查询是否成功创建 svn 版本文件:

ls -a

如果出现 .   ..   .svn 的话,就说明创建成功 :



六、添加目录文件到版本库

svn add *
svn commit -m "[随便你写什么日志]"
比如:svn commit -m "mulu.log"

 



七、设置服务器自动提交文件

 (1)修改 hooks 文件 post-commit(设置了服务器自动更新提交的文件,告别 svn up  手动指令更新):

cd /opt/svn/CarManagement/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit
vi post-commit


 (2)在最后加上 (/data/wwwroot 以你版本库根目录路径为准):

#!/bin/sh
export LANG=en_US.UTF-8
/usr/bin/svn up /data/wwwroot --username hahaha --password hahaha --no-auth-cache --non-interactive
比如:
#!/bin/sh
export LANG=en_US.UTF-8
/usr/bin/svn up /opt/svn/CarManagement/data/wwwroot --username admin --password admin --no-auth-cache --non-interactive



八、客户端测试

客户端可以通过TortoriseSVN测试。

(1)确认本地已安装SVN客户端,未安装的,可以点击查看我的另一博文进行安装:

【SVN】Windows 10:SVN的下载和安装


(2)本地创建SVN导出库CarManagement:


(3)输入服务器SVN库地址,选择要导入的目标文件夹:

svn://服务器ip:端口/库名称
例如:svn://192.168.206.141:3690/CarManagement


(4)这时候可能会防火墙问题,出现失败情况;如果是防火墙问题,会提示无法连接:

解决方法:

①用systemctl检查服务器的防火墙配置,可以看到,没有telnet服务和2606端口

firewall-cmd --list-all

②增加telnet服务器和 2606 和 3690 (默认的)端口:

sudo firewall-cmd --permanent --add-service=telnet
sudo firewall-cmd --permanent --add-port=2606/tcp
firewall-cmd --zone=public --add-port=3690/tcp --permanent
sudo firewall-cmd --reload

③用systemctl检查服务器的防火墙配置,可以看到,已经有了telnet服务和2606端口

firewall-cmd --list-all

④关闭防火墙:

systemctl stop firewalld.service

⑤开启防火墙:

systemctl start firewalld.service

猜你喜欢

转载自blog.csdn.net/qq_39720249/article/details/84875302