前段时间忙的不可开交,没有写代码也没有学习什么新技术,而是为公司的各种活动准备资料,写方案、PPT 。唉,还是喜欢几个月前写程序的日子。好久没有写博客了,因为好久没有接触什么新东西,可以让我记录一下了。终于各项活动结束了,也终于有机会弄一弄好玩的东西了。因项目需要搭建SVN服务器,正好Linux我还处于熟悉阶段,那就在Ubuntu上面搭建,对外宣称性能好,其实也有一点私心的,可以亲自动手弄一弄。一下记录各个步骤吧,以便日后“老年痴呆”了,有待回忆:)
在记录前先说明,经过搜集和查询一些资料,有介绍subversion与Apache服务器搭配使用的,也有直接用svnserve服务器的,还有将svnserve 搭配SSH使用的,个人觉得在公司内部使用svnserve服务器就足够了,利用Apache服务器可以利用HTTP协议跨越公司防火墙以及有SSL加密等优点,但是配置比较繁琐,以后有机会再好好研究研究。现在就只是用svnserve服务器了,以下是利用svnserve的配置:
首先,是安装subversion,linux下面安装这些常用软件比较方便。
终端输入命令:
sudo apt-get install subversion
注1:如果不能下载安装,则更新软件源,进入系统->系统管理->软件源
其次,建立版本库
sudo mkdir /home/svn //建立版本库主目录(目录的位置(/home/svn)可根据自己需要选择)
sudo svnadmin create /home/svn/project1 //创建project1的版本库
如果还需建立多个项目的版本库,则
sudo svnadmin create /home/svn/project2
再次,版本库建立好后,则需修改配置、认证和用户等信息
1)修改/home/svn/project1/conf 下的svnserve.conf文件
1.去掉anon-access = read 前面的#,这句代表匿名访问的权限设置,read代表只读,none代表不能操作
2.同样,去掉auth-access = write 前面的#,这句代表认证访问的权限设置,write代表可读写
3.同上,去掉password-db = passwd前面的#,这句是设置密码库文件的位置,这里面是passwd文件是密码库,如果需设立其他的则在此修改文件名或目录。
4.同上,去掉authz-db = authz前面的#,这句是设置认证文件的位置,这里面是authz文件是认证文件,如果需设立其他文件则在此修改文件名或目录
2)添加修改/home/svn/project1/conf下的passwd文件,添加用户
在[users]下面,添加用户,格式:用户名 = 密码
3)添加修改/home/svn/project1/conf下的authz文件,添加认证信息
1. 在[groups]下为用户建立分组,格式:组名 = 用户1,用户2.......
2. 为用户组分配权限。
如果为组分配/home/svn下project1的配置库的访问权限,则在分组后添加:
[project1:/] //此项与svnserve 启动参数-r所指定的目录相关。
@组名 = 权限(r/rw)
最后,重新启动svnserve
sudo killall svnserve
sudo svnserve -d -r /home/svn //参数d代表作为独立“守护”进程运行。参数r改变文件系统的根目录,客户端可以使用去掉前半部分的路径。如svn://127.0.0.1/project1