Bootstrap

Linux下搭建SVN服务器

第一步:通过yum命令安装svnserve,命令如下:

yum -y install subversion

若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

检测是否安装成功(查看svn版本号)

svnserve --version

在这里插入图片描述

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
vim /etc/sysconfig/svnserve
可修改文件内容
OPTIONS=“-r /var/svn”

mkdir /var/svn

创建svn版本库

svnadmin create /var/svn/beijing

创建成功后,进入beijing目录下

cd /var/svn/beijing

进入目录,可以看见如下文件信息:
在这里插入图片描述

第三步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的beijing,进入conf

cd /var/svn/beijing/conf

conf下的文件:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件

1.编辑 authz 文件(注意:[/]也是必须的)
![在这里插入图片描述](https://img-blog.csdnimg.cn/cd394952750e4c2ba315afc132603e61.png
[/]:表示根目录,即 /var/svnrepos
luo = rw:表示用户luo对根目录具有读写权限。

2.编辑 passwd 文件
在这里插入图片描述
3.编辑svnserve.conf,去掉注释并修改,前边不能有空格
在这里插入图片描述

第四步:防火墙开启的情况下需配置端口,否则无法连接svn

1.需开放端口并配置

firewall-cmd --permanent --add-port=3690/tcp

2.重启防火墙

systemctl restart firewalld

第五步:启动svn服务器

svnserve -d -r /var/svn 

如果提示:svnserve: E000098: Can’t bind server socket: Address already in use  证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务 停止svn服务 killall svnserve 再运行 svnserve -d -r /var/svn,进行启动服务

启动成功后,可用ps -aux查看服务启动是否成功

ps -ef | grep 'svnserve'
netstat -ln |grep 3690

第六步:创建文件夹并检出

svn://ip地址/beijing
输入账号密码即可

自动同步到服务器
第一步:在svn仓库的hooks目录下,复制post-commit.tmpl为post-commit,并写入配置文件
export LANG=en_US.UTF-8 #这个一看就知道
SVN_PATH=/usr/bin/svn #svn地址,这个基本不用改
WEB_PATH=/www/wwwroot/beijing #你的项目的所对应的目录
SVN_USER=beijing #svn账号
SVN_PASS=beijing123456 #svn密码
LOG_PATH=/tmp/svn.log #svn的日志文件,可以不要
#/usr/bin/svn update --username beijing --password beijing123456 /www/wwwroot/beijing --no-auth-cache> /tmp/svn.log ||exit 1 exit 0 #加上 || exit 1> 和 exit 0
$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache

第二步:给post-commit添加可执行权限
chmod a+x post-commit

cd /www/wwwroot
svn checkout svn://127.0.0.1/项目名

;