记录一次使用Ubuntu环境搭建svn服务器的详细步骤
一、查看是否已经安装svn
命令:svn
如果显示以下信息,说明已安装
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LWJkNGE0ZGY5MjM0ZTg1MmIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8xNzcvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
二、卸载已安装的svn
命令:sudo apt-get remove --purge subversion
三、安装svn
1.安装svn
更新命令:sudo apt-get update
安装svn:sudo apt-get install subversion
2.创建svn版本库
在home目录下创建svn目录,然后在svn中创建repository目录
命令:sudo mkdir /home/svn
sudo mkdir /home/svn/repository
3.修改repository文件中权限
命令:sudo chmod -R 777 /home/svn/repository
4.创建版本库
命令:sudo svnadmin create /home/svn/repository
执行完毕之后,repository目录下会有如下文件
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LWFiYzg4YTM3OTQ0MjRjZjEucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8zNTUvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
5.切换当前目录到repository
命令:cd /home/svn/repository
6.设置db文件的权限
命令:sudo chmod -R 777 db
7.切换当前目录打破conf
命令:cd conf
8.修改配置文件svnserve.conf
命令:sudo vi svnserve.conf
修改前:
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LTdkMWJlNDNmNjZkMzM2YzcucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy80OTcvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
修改后:
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LTY1ZGQ4Zjk2NTBmZDFmMTIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy81MDYvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
说明:(去掉前面的#,并且顶格)
anon-access = none 匿名用户不可读
auth-access = write 权限用户可写
password-db = passwd 密码文件为passwd
authz-db = authz 权限文件为authz
8.修改password文件,添加访问用户
命令:sudo vi passwd
新增用户格式:名字 = 密码
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LTI0ZWU3M2EzYTc1ZDE5ZmMucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8xNzEvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
8.给用户test增加目录权限
命令:sudo vi authz
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LTdkOTU4ZTdkMzI5YzY2NjMucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8yOTkvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
用户test拥有版本库根目录读写的权限
四、启动服务,并且监听81端口
命令:svnserve -d -r /home/svn --listen-port 81
如果提示:权限不够
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LTgzNWI1NzAyNGQ0MzE2ZGUucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy8zNTcvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
切换到root权限
命令:sudo su
重试启动svn:svnserve -d -r /home/svn --listen-port 81
查看svn是否启动
命令:ps -ef | grep svnserve
![Ubuntu环境搭建svn服务器 Ubuntu环境搭建svn服务器](https://image.shishitao.com:8440/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy80ODkyNzA0LTg0NjJkZDcxOTI2OTZjMDIucG5nP2ltYWdlTW9ncjIvYXV0by1vcmllbnQvc3RyaXAlN0NpbWFnZVZpZXcyLzIvdy81NTIvZm9ybWF0L3dlYnA%3D.png?w=700&webp=1)
五、停止服务
命令:killall svnserve
附:精确目录权限控制
[/]
A=rw
A拥有版本库根目录读写的权限
[/Android]
A=rw
B=r
A拥有Android目录读写的权限
B拥有Android目录读的权限,但没有写的权限
[/Android/Project1]
A=rw
*=r
A拥有/Android/Project1目录读写的权限
所有人都拥有/Android/Project1目录读的权限