当前位置:Linux教程 - Linux业界 - rhel4下安装配置Subversion服务器

rhel4下安装配置Subversion服务器

作者:苏小勇 来源: http://www.bestunix.net

原文地址: http://www.bestunix.net/p/rhel_subversion.php


关于Subversion的种种优点就不用再说了,有兴趣的话可以去 TARGET=_blank http://subversion.tigris.org/ 了解,或者google一下。



第一步,先检查是否安装了下面软件包,rpm -q apr apr-devel subversion neon compat-libcom_err

没有的话,推荐使用apt来下载安装,只要 apt-get install subversion 一个命令就全搞定了,非常方便.apt的使用可以参考 TARGET=_blank http://www.bestunix.net/p/rhel4_apt.php


第二步,创建仓库 svnadmin create /home/svnrepo

/root/svnrepo为所创建仓库的路径,理论上可以是任何目录


第三步,修改配置文件/home/svnrepo/conf/svnserve.conf

代码
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd

注意:所有的行都必须顶格,否则报错。
建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容



第四步,修改配置文件passwd。

代码[users]
sxy = sxy

注意
1. 一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
2. 这里的密码都是没有加密的,我按照一些教程所说的用htpasswd生成的密码无法使用。



第五步,启动svn服务

对于单个代码仓库

启动命令  svnserve -d -r /home/svnrepo --listen-host 192.168.1.200


其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接用svn://服务器ip来访问了。如果服务器有多ip的话--listen-host来指定监听的ip地址.

我们可以在svn客户端中通过svn://192.168.1.200来访问svn服务器

对于多个代码仓库,我们在启动时也可以用-r选项来指定服务器根目录,但访问时需要写上每个仓库相对于svn根目录的相对路径.

比如,我们有两个代码仓库/home/repo1 和/home/repo2,我们用svnserve -d -r /home --listen-host 192.168.1.200来启动,那么在客户端访问时可以用svn://192.168.1.200/repo1和svn://192.168.1.200/repo2来分别访问两个项目

启动完成以后,我们可以用ps aux|grep svnserv来查看是否存在svnserve进程.

第六步 开放服务器端口

svn默认端口是3690,你需要在防火墙上开放这个端口。

      /sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT

      /sbin/service iptables save

你也可以通过svnserve的--listen-port选项来指定一个已经开放的其他端口,不过这样的话客户端使用也必须家上端口,如svn://192.168.1.200:9999/.


第七步,使用svn客户端导入项目

推荐使用客户端 TARGET=_blank http://tortoisesvn.tigris.org/

eclipse插件 TARGET=_blank http://subclipse.tigris.org/



附:svnserve [选项]

有效选项:
 -d [--daemon]            : 后台模式
 --listen-port arg        : 监听端口(后台模式)
 --listen-host arg        : 监听主机名或IP地址(后台模式)
 --foreground             : 在前台运行(调试时有用)
 -h [--help]              : 显示这个帮助
 --version                : 显示版本信息
 -i [--inetd]             : inetd 模式
 -r [--root] arg          : 服务根目录
 -R [--read-only]         : 不赞成;使用档案库配置文件
 -t [--tunnel]            : 隧道模式
 --tunnel-user arg        : 隧道用户名(模式是当前用户UID的名字)
 -T [--threads]           : 使用线程代替进程
 -X [--listen-once]       : 监听一次(调试时有用)