Linux 搭建Svn服务及使用(避坑记)-20211121
单svn仓库创建
- 检查服务有没有安装过svn服务(我是新买的肯定没有安装)
[root@VM-0-8-centos ~]# rpm -qa subversion
subversion-1.10.2-4.module_el8.3.0+703+ba2f61b7.x86_64
- 如果有安装卸载掉
yum -y remove subversion
- 安装新的subversion
yum -y install subversion
- 查看svn安装位置
在/etc和/usr目录下展示了一堆目录
[root@VM-0-8-centos ~]# rpm -ql subversion
/etc/subversion
/etc/sysconfig/svnserve
- 创建版本库目录(名字可以随意)
程序自动会创建1个数据根目录,网上说是在/var/svn, 我的是在/opt/svn,其实在哪里都不重要,你也可以建1个在自己的用户目录下
mkdir /opt/svn/svnrepos
- 创建版本库
warehouse1,就是你的一个版本库,可以用来检出的
svnadmin create /opt/svn/svnrepos/warehouse1
- 进入创建好的版本库(warehouse1)
每个目录代表的意思不赘述,只写我自己用过的地方,其他的需要的时候再研究,没用又塞太多也易忘记
cd /opt/svn/svnrepos/warehouse1
- 进入版本库/conf目录
cd /conf
- 需要修改的配置文件:authz、password、svnserve.conf
- authz:负责账号权限的管理,控制账号是否读写权限
- passwd:负责账号和密码的用户名单管理
- svnserve.conf:svn服务器配置文件
- 一个一个文件的改。
vim svnserve.conf
# 放开配置项:
anon-access = none #控制非鉴权用户访问版本库的权限(把原来的value值:read 改为:none)
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名,即访问时要输用户名和密码
authz-db = authz #用户角色权限分组管理
realm = warehouse1 #指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库
vim password
[users]
# harry = harryssecret
# sally = sallyssecret
# 用户名 = 密码
vim authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin_group = cc,wb
# 分组名称 = 分组的成员,以逗号隔开,就是password里面配置的用户
[/]
# 仓库根目录,也可以配置成固定的仓库目录
@admin_group = rw
# 分组 = r(读)w(写)权限
- 所有配置改完了,一个svn版本仓库就建好了,后面就是启动服务。启动服务前先开防火墙(大部分第一次都需要开),将svn默认的端口:3690,tcp协议给放开。这个网上有命令开,我是云服务器上有对应的功能:
![云服务器配置](https://i-blog.csdnimg.cn/blog_migrate/a166d3b6e72b9bf8d59096368288191c.png)
- 启动和关闭服务
# 启动服务:
-d:守护进程
-r:svn数据根目录
svnserve -dr /opt/svn #用root权限启动
# 查看服务
ps -ef | grep svn
root 311407 1 0 12:46 ? 00:00:00 svnserve -dr /opt/svn/
root 417108 409207 0 17:41 pts/2 00:00:00 grep --color=auto svn
# 关闭服务
1. 根据查出来的svn pid杀进程
kill -9 svn_pid
2. 杀服务
killall svnserve