一、安装SVN
- 检查是否已经安装:
svn --version
安装:
yum install subversion
- 创建SVN版本目录:
mkdir -p /server/svn/repo
- 创建版本库:
svnadmin create /server/svn/repo
- 进入conf目录(该svn版本库配置文件):
cd /server/svn/repo/conf/
authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf SVN服务配置文件 - 设置帐号密码:
vim passwd
在[users]块中添加用户和密码,格式:帐号=密码,如harry = harryssecret-
[users]
-
admin1=admin1
-
dev1=dev1
-
dev2=dev2
-
pro1=pro1
-
pro2=pro2
-
- 设置权限:
vim authz
-
[groups]
-
#管理员组
-
admin = admin1
-
#开发组
-
dev = dev1,dev2 #多个用户以逗号分隔
-
#产品组
-
pro = pro1,pro2
-
[/]
-
@admin = rw #admin组拥有根目录的读写权限,其中r表示读权限,w表示写权限
-
* = #这里的*号表示除admin组的其他人,“=”后为空的话为无任何权限
-
[/dev]
-
@dev = rw
-
[/pro]
-
@pro = rw
解释一下,[groups]下,设置权限分组,这里有三个组,分别是admin 、dev、pro,admin组有admin1一个人,dev组有dev1、dev2两个人,pro组下有pro1、pro2两个人,[/]表示文件库的根目录,相应的[/dev]和[/pro]分别表示根目录下有dev和pro两个子目录 -
- 修改svnserve.conf文件
vim svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = /server/svn/repo/conf/passwd #使用哪个文件作为账号文件
authz-db = /server/svn/repo/conf/authz #使用哪个文件作为权限文件
realm =/server/svn/repo # 认证空间名,版本库所在目录
- 启动svn版本库
svnserve -d -r /server/svn/repo/
-d 表示svnserve.exe 将会作为一个服务程序运行在后台,-r表示把/server/svn/repo目录作为根目录 -
查看启动情况:
二、设置SVN开机自启动
1、subversion默认以/var/svn作为数据根目录,可以通过/etc/sysconfig/svnserve修改这个默认位置。
systemctl cat svnserve.service
-
#svnserve.service文件的具体地址
-
# /usr/lib/systemd/system/svnserve.service
-
[Unit]
-
Description=Subversion protocol daemon
-
After=syslog.target network.target
-
[Service]
-
Type=forking
-
EnvironmentFile=/etc/sysconfig/svnserve
-
#也可以用这种方式,这种方式的话就不需要进行第2步的操作了,但本人没试过
-
#ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -d -r /server/svn/repo #一定要写svnserve命令的绝对路径
-
#我用的这种方式
-
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
-
[Install]
-
WantedBy=multi-user.target
2、我们修改/etc/sysconfig/svnservervim /etc/sysconfig/svnserve
将默认目录指定到/server/svn/repoOPTIONS="-r /server/svn/repo"
3、说明:
[Unit]:服务的说明
Description:描述服务After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间注意:
[Service]的启动、重启、停止命令全部要求使用绝对路径
4、服务命令:
启动svnserve服务
systemctl start svnserve.service
设置开机自启动
systemctl enable svnserve.service
停止开机自启动
systemctl disable svnserve.service
查看服务当前状态
systemctl status svnserve.service
重新启动服务
systemctl restart svnserve.service
查看所有已启动的服务
systemctl list-units --type=service -
原文地址:https://blog.csdn.net/NDF923/article/details/74171867?fps=1&locationNum=9