1 先查看是否已经安装了svn
如果没有安装svn则:
ubuntu@ip-172-31-29-46:~$ svn --version
The program 'svn' is currently not installed. You can install it by typing:
sudo apt-get install subversion
如果已经安装svn则提示svn版本号:
cfj@cfj-virtual-machine:~$ svn --version
svn,版本 1.9.7 (r1800392)
编译于 Mar 28 2018,08:49:13 在 x86_64-pc-linux-gnu
Copyright (C) 2017 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
2 ubuntu安装svn:
先更新一下(可选)
sudo apt-get update
在线安装命令:
sudo apt-get install subversion
3 创建版本库
在/opt/下面用mkdir命令创建目录svn以及子目录repository。目录结构: /opt/svn/repository
更改更改repository文件夹的权限 改为777
sudo chmod -R 777 /opt/svn/repository
将刚刚创建的目录利用svn命令指定为版本库:
sudo svnadmin create /opt/svn/repository
设置完成之后在repository下面会生产几个文件夹和文件
主要的配置文件在conf文件夹下面:svnserve.conf,passwd,authz
4 修改repository文件夹下面的内容,完善配置
- 首先修改db文件夹的权限,改为777。db文件夹是存储svn文件的地方
sudo chmod -R 777 /opt/svn/repository/db
- 其次修改con文件夹下面的svnserve.conf文件
ubuntu@ip-172-31-29-46:/opt/svn/repository$ cd conf
ubuntu@ip-172-31-29-46:/opt/svn/repository/conf$ sudo vi svnserve.conf
#匿名用户可读
anon-access = read(可改成none,即不可读)
#权限用户可写
auth-access = write
#密码文件为passwd
password-db = passwd
#权限文件为authz
authz-db = authz
(去掉前面的#,并且顶格,不然可能会报错)
- 再者修改con文件夹下面的passwd文件,增加用户和用户密码
格式:用户名=密码(明文)
sudo vi passwd
以上设置用户为admin密码为admin
- 最后修改con文件夹下面的authz文件,增加用户组,目录认证,组权限
sudo vi authz
如果组内有多个人可以逗号分隔如:组名owner,组员user1,user2则:owner=user1,user2
对组的访问权限设置:rw,r,w。组名前面加@
@owner=rw
如果单用户设置则一个用户一行:
user1=rw
单库模式则设置为:[/] 本例子为单库模式
5 启动svn版本库
svnserve -d -r /opt/svn/repository
-d:表示在后台运行 ,-r:指定服务器的根目录
启动之后可以查看进程:
ubuntu@ip-172-31-29-46:/opt/svn/repository/conf$ ps -ef|grep svnserve
ubuntu 12593 1 0 13:37 ? 00:00:00 svnserve -d -r /opt/svn/repository
ubuntu 12595 11736 0 13:37 pts/0 00:00:00 grep --color=auto svnserve
如果需要停止,则kill -9 进程号
查看端口号,默认端口3690
sudo netstat -ntlp
6 访问:通过svn://服务器ip/文件夹名字 从svn客户端访问服务器。默认svn协议。如果要配置http或者https则需要安装apache。
本例因为是设置的[/],则svn://ip地址/
就可以访问
注意:如果是阿里云或者亚马逊的服务器,可能svn端口号没有对外开通,需要在控制台中配置。