今天自己在Ubuntu下搭建了一个SVN服务器,方便以后可以远程管理代码
特此记录了一下搭建的过程
1. 通过apt-get安装subversion
sudo apt-get install subversion
如果安装出错(例如某个包找不到),请先更新本地仓库数据,更新完成后再执行上面的命令重新安装sudo apt-get update
2.找个目录当做SVN的根目录(目录地址随意)
在home目录下创建一个名为svn的文件夹(文件夹的名字随便起)mkdir /home/svn
3.创建数据仓库(可以根据需要创建多个)
此处我新建了一个叫ZYQ的仓库sudo svnadmin create /home/svn/ZYQ
4.进入版本库查看生成的相关文件
依次执行以下命令
cd /home/svn/ZYQ
ls
会看到ZYQ目录下面自动生成了一些目录和文件
conf db format hooks locks README.txt
我们主要关心的是conf和db文件
conf文件夹下是存放主配置文件和用户、权限位置,db文件夹是存放svn转储后的数据。
进入conf文件夹下面cd conf
conf文件夹中有三个文件,分别是
authz 是设置用户权限文件
passwd 是存储用户及密码文件
svnserve.conf 是主配置文件
5.配置版本库
编辑svnserve.confvi svnserve.conf
将以下参数去掉注释
#匿名用户访问权限,默认read,none为不允许匿名用户访问
anon-access = none
#认证用户权限 可写
auth-access = write
#密码文件为passwd(默认在版本库/conf下面,也可以绝对路径指定文件位置)
password-db = passwd
#权限文件为authz (默认在版本库/conf下面,也可以绝对路径指定文件位置)
authz-db = authz
编辑passwd文件 设定用户名和密码vi passwd
#前面是用户名,后面是密码
[users]
user1 = 123456
user2 = 123456
user3 = 123456
==编辑authz文件 制定用户组 以及用户组下面的成员和权限 ==vi authz
[groups]
#定义用户组,以及用户组下面的成员
manager = user1
guest = user2,user3
#manager用户组下面的成员对以根目录起始的ZYQ版本库具有读写权限
[ZYQ:/]
@manager = rw
#guest用户组下面的成员对ZYQ版本库下media目录只读权限
[ZYQ:/media]
@guest = r
6.启动SVN网络服务
sudo svnserve -d -r /home/svn
其中 -d 参数让 svnserve 运行在后台,-r表示代码仓库的根目录,至此一个最简单的SVN服务就搭建好了。
sudo ps aux | grep svnserve
如果启动成功了 可以看到进程sudo netstat -antp |grep svnserve
查看端口是否启动成功sudo pkill svnserve
关闭SVN服务