CentOS7中怎么安装Subversion版本控制系统
这篇“CentOS7中怎么安装Subversion版本控制系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CentOS7中怎么安装Subversion版本控制系统”文章吧。
Subversion 就是一个自由/开源版本控制的软件,它记录你每次对数据仓库的修改,并能使你找回某一个时刻修改的版本文件。它的核心就是数据仓库,你需要把你的文件提交到数据仓库,并更新数据仓库的文件,及根据需要能通过版本找到当时的数据。
因为项目需要在CentOS 7.4环境下搭建一个SVN服务器,但是CentOS里自带的subversion版本只到1.7.14
与Subversion官网8月10日发布的SVN 1.8.19, SVN 1.9.7相去甚远,会严重影响SVN客户端的使用,因此我们需要卸载掉自带的Subversion,使用yum方式重新安装Subversion最新版本
我们执行命令
yum remove subversion*yum clean all
直接卸载subversion和相关库包
但是当我们使用yum命令再安装subversion时,发现CentOS自带源的Subversion版本仍然是1.7.14
说明从CentOS自带源安装Subversion最新版本此路不通,我们需要另行添加Repo源
参考https://tecadmin.net/install-subversion-1-8-on-centos-rhel/#一文,我们在
/etc/yum.repos.d目录下添加subversion.repo文件,内容如下
[Subversion]name=Wandisco SVN Repobaseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.9/RPMS/$basearch/enabled=1gpgcheck=0
由于我们这里安装的是SVN1.9,在repo文件里配置的是svn-1.9,如果要安装SVN1.8,可以改为svn-1.8
执行yum install -y subversion命令安装Subversion
有部分有所修改
1)创建运行SVN服务器所需的用户svn
groupadd svnuseradd -g svn svn
这里之所以要创建svn用户启动SVN服务器,而不使用root用户启动SVN服务器,是因为如果使用root用户启动SVN服务器,通过SVN客户端使用非root账户访问SVN服务器时,会出现
“xxxxxxxx db/txn-current-lock:permission denied”错误。
将svn用户加入sudoers用户中
2)执行rpm -ql subversion命令了解SVN安装的位置
3)创建SVN版本库文件夹
mkdir -p /opt/svnRepos
切换到svn用户,为svn用户添加这个文件夹的访问权限
sudo chmod -R o+rw /opt/svnRepos
4)创建SVN版本库
svnadmin create /opt/svnRepos
执行命令后/opt/svnRepos文件夹下新增了一些文件夹
5)添加用户密码和访问权限
进入conf目录,可以看到以下文件
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf是SVN服务配置文件
修改passwd文件,在[users]段添加用户svnuser1和访问密码
修改authz文件,在文件最后为svnuser1用户添加svn根目录访问权限
这里[/]表示是svn根目录,svnuser1=rw说明svnuser1用户对根目录有读写权限。如果要限制某些用户对某些文件夹的
读写权限, 这里的[/]可以改为具体的文件夹目录,再添加具体的用户权限,这里不再赘述。
6) 修改svn配置文件
修改svnserve.conf文件
打开以下几项的注释(图中以白色字体标注)
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /opt/svnRepos # 认证空间名,版本库所在目录
7)启动SVN服务器
执行以下命令
svnserve -d -r /opt/svnRepos --config-file=/opt/svnRepos/conf/svnserve.conf
这条指令的参数-d表示以守护进程形式运行Svn服务器,-r表示Svn服务器的根目录,后接SVN的根目录。
–config-file是Svn服务器启动所引用的配置文件,后接配置文件路径。
svnserve指令的更多参数可以参考此文
https://linux.die.net/man/8/svnserve
启动后可以查看到svnserve进程已经启动
8)在防火墙上开放SVN服务器端口
SVN服务器默认端口是3690,如果要修改默认端口,可以在运行svnserve命令时添加–listen-port参数,后接需要指定的端口号。
执行以下命令在CentOS7系统防火墙上开放SVN服务器端口
firewall-cmd --permanent --add-port=3690/tcpsystemctl restart firewalld.service
在客户端安装Tortoise SVN 1.9.7,安装完成后新建一个文件夹,在文件夹中右击,在弹出右键菜单中选择[Repo-brower]菜单,在弹出的地址对话框中输入SVN://IP(我们这里是SVN://192.168.56.102),再在验证对话框中输入用户名rick和密码,即可以访问SVN根目录,我们使用svnuser1用户登录SVN,如下图所示
我们使用svnuser1用户在根目录下新建trunk,tags和branches三个文件夹
9)将SVN服务器设置为开机启动服务
网上有相关文件通过修改/etc/rc.local文件设置SVN服务器开机启动,这种做法在CentOS 7环境下已经过时,我们使用CentOS 7正常添加服务的方式。
我们切换到/usr/lib/systemd/system目录下,创建名为svnserver.service的文件,添加以下内容
[Unit]Description=SVN Server service After=network.target[Service]Type=forkingExecStart= /usr/bin/svnserve -d -r /opt/svnRepos --config-file=/opt/svnRepos/conf/svnserve.confExecStop= /home/svn/stopSVN.shUser=svnRestart=on-abort[Install]WantedBy=multi-user.target
这里启动SVN服务器直接使用命令,我试过写一个.sh文件替换,但启动后出现code=exited,status=203/EXEC错误,改用现在这种形式。
stopSVN.sh是用于关闭SVN服务的脚本文件,内容如下:
#!/bin/sh#查找是否有svnserve对应的进程,有的话关闭进程ps -ef|grep svnserve |grep -v grepif [ $? -ne 0 ]then echo "the svn server does not start"else killall -9 sh svnservefi#####
保存svnserver.service文件后,执行以下命令
systemctl daemon-reloadsystemctl enable svnserver.servicesystemctl start svnserver.service
如果shell窗口没有出现错误信息,表示启动已成功,我们可以执行以下命令检查启动状态
systemctl status svnserver.service
运行以下命令停止服务
systemctl stop svnserver.service
我们这时再运行systemctl stop svnserver.service,可以看到服务已经被停掉
至此SVN服务器在Linux服务器安装成功,再次启动CentOS系统后SVN服务器会开机启动。
补充一点,CentOS自带的SELinux默认是Enforcing,处于打开状态,对于自启动的SVN服务,会导致客户端访问SVN服务器时出现Permisson Denied的错误,我们需要手动关闭它,修改/etc/selinux/config文件
# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three two values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targeted
把SELINUX从enforcing改为disabled,重启系统,SVN服务自启动后,从客户端访问不再出现Permssion Denied错误。
以上就是关于“CentOS7中怎么安装Subversion版本控制系统”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341