一、首先,介绍一下SVN 。更多资料(百度百科SVN)
subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
二、配置过程
我第一天配置借助apach方式,完成后可以通过浏览器http协议访问,可是在Myeclipse中总是连接不到svnserver。无奈之下,第二天重新以svnserve方式配置,最终成功,哈哈,下面主要说说svnserve方式的配置。
1. svn服务器安装
以root用户登录,安装包获取(/root路径下):
subversion 1.6.2 .tar.gz subversion-deps-1.6.2.tar.gz。
命令行运行(本文以#开头行都为命令行执行):
#tar xfvz subversion-1.6.2 .tar.gz
#tar xfvz subversion-deps-11.6.2 .tar.gz
解压后他们都在subversion-1.6.2 这个文件夹下
#cd subversion-1.6.2
#./configure
#make clean
#make
#make install
默认安装在/usr/local 你也可以用 ./configure –prefix = /xxx/xxx 来指定安装路径。
运行make clean成功,运行make 出现错误:
krb5.h: No such file or directory (PC Linux)
/usr/include/openssl/kssl.h:169: syntax error before "enctype"
In file included from spamc/utils.h:28,
from spamc/libspamc.c:20:
/usr/include/openssl/ssl.h:909: syntax error before "KSSL_CTX"
/usr/include/openssl/ssl.h:931: syntax error before '}' token
In file included from /usr/include/openssl/ssl.h:179,
from spamc/utils.h:28,
from spamc/utils.c:40:
/usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory
In file included from /usr/include/openssl/ssl.h:179,
from spamc/utils.h:28,
from spamc/utils.c:40:
/usr/include/openssl/kssl.h:134: syntax error before "krb5_enctype"
/usr/include/openssl/kssl.h:136: syntax error before '*' token
/usr/include/openssl/kssl.h:137: syntax error before '}' token
/usr/include/openssl/kssl.h:149: syntax error before "kssl_ctx_setstring"
/usr/include/openssl/kssl.h:149: syntax error before '*' token
/usr/include/openssl/kssl.h:150: syntax error before '*' token
编译问题
这是因为 Red Hat Linux 的 krb5-devel 套件把 kerberos 的 include file 放到了 /usr/kerberos/include 里面,而不是一般位置的 /usr/include 这个目录。而 openssl 支持 kerberos,因此在 compile 使用到 openssl 的程式就很容易发生找不到 kerberos 的 include file 的错误。
解決方法
解決的办法相当简单,首先当然要确定 krb5-devel 以及 krb5-libs 等套件确实有安裝在系统上,而不是根本没安裝;接下來,建立以下的 symbolic links:
# ln -s /usr/kerberos/include/com_err.h /usr/include/
# ln -s /usr/kerberos/include/profile.h /usr/include/
# ln -s /usr/kerberos/include/krb5.h /usr/include/
之后,make,make install运行顺利,安装成功。
测试一下:
#svnserve –version
如果显示如下,安装成功:
svnserve, version 1.6.2
……(省略多行)
* fs_fs : Module for working with a plain file (FSFS) repository.
2.创建SVN版本库
//创建库文件所在的目录
# mkdir /home/svnroot/repository
//创建仓库"test",指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
# /usr/local/subversion/bin/svnadmin create --fs-type fsfs /home/svnroot/repository/test
3.配置版本库
1)修改版本库配置文件(可以使用vi 或者gedit等修改):
/home/svnroot/repository/test/conf/svnserve.conf
内容修改为:
[general]
anon-access = none
auth-access = write
password-db =passwd
authz-db = authz
realm = repos
其他与版本库1配置文件完全相同。如果有更多的版本库,依此类推。
2)配置允许访问的用户(可以使用vi 或者gedit等修改):
/home/svnroot/repository/test/conf/passwd
注意:对用户配置文件的修改立即生效,不必重启svn。
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。
示例:
[users]
user1 = test
user2 = hello
3)配置用户访问权限:
/home/svnroot/repository/test/conf/authz.conf
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
developer = user1,user2
[/]
@ developer = rw
[test:/]
user1 = rw
4. 启动svn
#svnserve -d --listen-port 8080 -r /home/svnroot/repository
其中:
-d表示以daemon方式(后台运行)运行
--listen-port 8080表示使用8080端口,可以换成你需要的端口。注意,使用1024以下的端口需要root权限
-r /home/svnroot/repository指定根目录是/home/svnroot/repository
检查:
#ps –ef
显示所有在执行的进程,每个进程一行,如果有一行如下,即为启动成功:
root 6941 1 0 15:07 ? 00:00:00 svnserve -d --listen-port 8080 -r /home/svnroot/repository
三、MyEclipse中访问
新建-- 资源库位置, URL填"svn://219.XX.XX.XX:8080/test"
之后弹出用户名,和密码(填上面内容/home/svnroot/repository/test/conf/passwd 里的用户和密码)
一切OK!!!