由于GitHub的私有项目需要收费,gitlab对服务器的要求必须是4GB内存以上。对于一些个人的小型项目,想要免费的版本控制工具来管理自己的代码,又不想代码公开,无疑SVN是比较好的选择。windows下的SVN搭建比较简单,但是一般购买服务器选择Linux的还是比较多。下面就介绍在Linux系统下如何搭建自己的SVN服务器。
1.使用yum在线安装
$ yum install subversion
$ rpm -ql subversion #查看安装位置.
2.创建svn版本库目录(此处演示创建多个)
$ mkdir -p /root/svn/project1
$ mkdir -p /root/svn/project2
3.创建版本库
$ svnadmin create /root/svn/project1
$ svnadmin create /root/svn/project2
1.进入其中一个版本库的配置文件目录(此处只讲解其中一个版本库的操作说明)
$ cd /root/svn/project1/conf
authz 文件是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件
2.设置帐号密码
$ vim passwd
在[users]块中添加用户和密码,格式:帐号=密码,如renxing=renxing
3.设置权限
$ vim authz
在末尾添加如下代码:(备注:Linux下快速到达vim末尾的命令是:Shift+G.更多关于vim操作的命令请 参考这里)
[/] renxing=rw w=r
意思是版本库的根目录renxing对其有读写权限,w只有读权限
4. 修改svnserve.conf文件
$ vim svnserve.conf
打开下面的几个注释:
anon-access = none #匿名用户可读 【参考:https://www.cnblogs.com/kccdzz/p/9414045.html】 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件 realm = /root/svn/project1 #认证空间名,版本库所在目录
说明:project2的配置方法同上。
启动当前svn版本库:
$ svnserve -d -r /root/svn
SVN默认的打开端口是3690,可以通过下面的命令查看:
$ netstat -antp | grep svn
centos7 打开防火墙端口:
$ sudo firewall-cmd --permanent --add-port=3690/tcp
$ sudo firewall-cmd --reload
如果是在阿里云购买的服务器,还要打开3690端口才能访问。
找到服务器的“配置规则”,点击“添加安全组规则”
在客户端测试:
$ svn checkout svn://127.0.0.1
之后输入passwd中输入的账号和密码即可检出代码。
备注:Linux下安装svn客户端的命令为: $ yum install svn