# 安装 SVN

# Linux 系统安装 SVN 服务端

# 检查是否安装 SVN

大多数 GNU/Linux 发行版系统自带了 Subversion ,所以它很有可能已经安装在你的系统上了。可以使用下面命令检查是否安装了。

svn --version

如果 Subversion 服务端没有安装,命令将报告 svn 命令找不到的错误。

[root@localhost ~]# svn --version
-bash: svn: 未找到命令

# 安装 SVN

yum -y install subversion

# 创建版本库根目录

mkdir -p /var/svn/repository

# 启动 SVN 服务端

svnserve -d -r /var/svn/repository --listen-port 3690
  • --listen-port:指定 SVN 监听端口,不加此参数,SVN 默认监听 3690

# SVN 多版本库管理

假设现在有这样的一个需求,公司有一个电商项目 shop,包含前端(frontend)、后端(backend)。

结构层次图:

.(/var/svn/repository)
|-- shop
	|-- frontend
	|-- backend

接下来,需要创建版本库目录。

mkdir -p /var/svn/repository/shop
svnadmin create /var/svn/repository/shop/frontend
svnadmin create /var/svn/repository/shop/backend

创建完目录之后,要对版本库进行用户权限设置。

前端和后端的开发不能互相访问对方的项目,要进行权限隔离。

其中,

前端由两个人负责:tom、jerry

后端由两个人负责:jason、kevin

接下来,根据上面的需求修改权限配置文件。

vi /var/svn/repository/shop/frontend/conf/svnserve.conf
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
vi /var/svn/repository/shop/frontend/conf/authz
[groups]
shop_frontend_group=tom,jerry
shop_backend_group=jason,kevin

[frontend:/]
@shop_frontend_group=rw
*=

[backend:/]
@shop_backend_group=rw
*=

创建用户。

vi /var/svn/repository/shop/frontend/conf/passwd
[users]
tom=abc123tom
jerry=abc123jerry
jason=abc123jason
kevin=abc123kevin

在版本库下面创建具体的项目目录:

cd /var/svn/repository
mkdir pro_oa

# 启动 SVN

# 查看 SVN 服务器的状态
systemctl status svnserve
# 启动 SVN 服务器
systemctl start svnserve
# 设置开机自启 SVN 服务器
systemctl enable svnserve

# 查看 SVN 服务器的端口号

默认 SVN 端口号 3690

yum -y install net-tools && netstat -anp | grep svnserve

# 放行防火墙

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

参考文献:

SVN 安装 _ 菜鸟教程 (opens new window)

SVN 启动模式 _ 菜鸟教程 (opens new window)