1、下载并安装
apt-get install subversion
2、创建SVN目录并修改权限
mkdir /home/svn/project
chmod -R 666 /home/svn/project
3、创建SVN仓库svnadmin create /home/svn/project
4、设置用户及访问权限
conf文件夹下svnserve.conf 、passwd 、authz三个文件
【svnserve.conf】
anon-access =none
auth-access = write(anon-access没有账户无法访问,也可以设为read,auth-access验证用户可以write)
password-db = passwd(密码验证,通过passwd文件)
authz-db = authz(设置用户或者用户组的目录权限)
【passwd】
user = password
【authz】(权限设置)
[/目录]
@<用户组名> = <权限>
<用户名> = <权限>
示例:
[groups]
admin = abc
[/]
@admin = rw (用户组前边加@符号)
[/XXXProject] (这个路径以仓库的名称为basepath)
user = rw (用户)
5、启动SVN服务器
svnserve -d -r /home/svn
-d 表示svnserver以“守护”进程模式运行
-r 指定文件系统的根位置
用TortoiseSVN访问svn://x.x.x.x/project
6、设置为开机自启动
在目录/etc/init.d/下添加脚本startsvn.sh
#!/bin/bash
svnserve -d -r /home/svn
执行命令update-rc.d starsvn.sh defaults,将脚本添加到自启动项目中。
在 /etc/rc*.d 中。K 开头是kill,S 开头是start,数字顺序代表启动的顺。
update-rc.d 可以帮你的忙。例:
在 /etc/init.d 中建立一个叫作zope 的script,然后
update-rc.d zope defaults
就会产生以下链Y:
Adding system startup for /etc/init.d/zope ...
/etc/rc0.d/K20zope -> ../init.d/zope
/etc/rc1.d/K20zope -> ../init.d/zope
/etc/rc6.d/K20zope -> ../init.d/zope
/etc/rc2.d/S20zope -> ../init.d/zope
/etc/rc3.d/S20zope -> ../init.d/zope
/etc/rc4.d/S20zope -> ../init.d/zope
/etc/rc5.d/S20zope -> ../init.d/zope上面的设置适用于所有程序,下面就svn来谈在 /etc/init.d 目录下谢一个脚本svnd.sh,内容如下:
#!/bin/bash
#svnserve startup
svnserve -d然后执行:
update-rc.d svnd.sh defaults只需两步就可以让svn在系统启动时启动――――――――――――――――――――――――
按照上面的做,出了问题:svn不能随机自动启动,心里那个郁闷啊,不能要我每天都登录ubuntu 来手动开启SVN啊琢磨着。linux 最难搞定 问题最多的都是权限问题先运行
runlevel
得到“2” 然后 cd /etc/rc2.d/ 查看刚刚生成的东东
“ lrwxr__r__ 1 root root 17 2010-05-18 08:16 S20svnd.sh -> ../init.d/svnd.sh ”估计是这问题,那就“sudo chmod 777 S20svnd.sh ”
重启测试了: telnet 192.168.30.48 3690 远程计算机未响应,也就是刚才操作无效随即注意到 S20svnd.sh -> ../init.d/svnd.sh
刚才改的是链接 (S20svnd.sh )权限,会不会是 (../init.d/svnd.sh )有问题呢?试试吧,不验证谁也说不准,那就 “sudo chmod 777 ../init.d/svnd.sh ”,然后 reboot,
telnet 测试,成功了,
SVN 随机启动~~