CentOS 5.5安装SVN(Subversion)
检查已安装版本
#检查是否安装了低版本的SVN
[root@localhost /]# rpm -qa subversion
#卸载旧版本SVN
[root@localhost modules]# yum remove subversion
#wget http://mirror.centos.org/centos/5/os/i386/CentOS/subversion-javahl-1.6.11-12.el5_10.i386.rpm
# yum install subversion-javahl
# svnserve --version
代码库创建
SVN软件安装完成后还需要建立SVN库
# mkdir -p /opt/svn/repo
# svnadmin create /opt/svn/repo
执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。
配置代码库
进入上面生成的文件夹conf下,进行配置
cd /opt/svn/repo/conf
用户密码passwd配置
#cd /opt/svn/repos/conf
#vi passwd
修改passwd为以下内容:
# harry = harryssecret
# sally = sallyssecret
user1=123456
用户名=密码
这样我们就建立了user1用户, 123456密码
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
权限控制authz配置
# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/] 或者写成[repl:/]
hello = rw
意思是hello用户对repo测试库下所有的目录有读写权限,当然也可以限定。
如果是自己用,就直接是读写吧。
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
服务svnserve.conf配置
#vi svnserve.conf
追加以下内容:
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repo
以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
修改服务文件:
#vi /etc/init.d/svnserve
args="--daemon --pid-file=${pidfile} $OPTIONS"加入"-d -r /opt/svn "
args="-d -r /opt/svn --daemon --pid-file=${pidfile} $OPTIONS"
配置防火墙端口
# vi /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
# service iptables restart
启动服务器:
#service svnserve start
查看SVN进程
[root@localhost conf]# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repo
检测SVN 端口
[root@localhost conf]# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
停止重启SVN
[root@localhost password]# killall svnserve //停止
[root@localhost password]# svnserve -d -r /opt/svn // 启动
测试
SVN服务已经启动,使用客户端测试连接。
客户端连接地址:svn://192.168.1.9
用户名/密码: user1/123456
测试创建文件夹等操作。