百度空间 | 百度首页 
 
查看文章
 
ubuntu上架设svn服务器的过程
2008-12-07 12:08
一直以来都充当使用svn的角色,这次终于下决心自己动手来架设svn服务器了。之前在windows也有操作过,不过貌似都没有成功。这次在ubuntu上架设svn服务器,也是一波三折,不过还好有惊无险地解决了一切问题,圆满成功了。

主要参考的文章来自http://bemike.org/tag/subversion,不过这篇文章介绍的安装svn软件的过程太简洁了,一句“sudo apt-get install svn”就搞定了。而我还是决定要自己来编译,因此就遇到了很多其他的问题。

一、configure

svn主页找到其最新版本1.5.4的下载链接http://subversion.tigris.org/downloads/subversion-1.5.4.tar.gz,然后就开始在terminal工作了
# wget http://subversion.tigris.org/downloads/subversion-1.5.4.tar.gz
# tar xvfz subversion-1.5.4.tar.gz
# cd subversion-1.5.4
# ./configure –prefix=/opt/subversion

不过configure马上就遇到问题了,提示如下:

configure: Apache Portable Runtime (APR) library configuration

checking for APR... no

configure: WARNING: APR not found

The Apache Portable Runtime (APR) library cannot be found.

Please install APR on this system and supply the appropriate

--with-apr option to 'configure'

or

get it with SVN and put it in a subdirectory of this source:

svn co \

http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x \

apr


很显然,是由于缺少与apr有关的模块,在http://svn.collab.net/repos/svn/trunk/INSTALL这个页面找到了相关的问题描述和解决方案。svn的client和server都依赖的模块有:
* libapr and libapr-util
APR全称是 Apache Portable Runtime,它将一部分操作系统相关的操作独立出来,提供了一套与具体操作系统无关的API给开发人员使用。
* zlib
svn使用zlib进行数据的压缩。

libapr 和libapr-util 可以在http://apr.apache.org/download.cgi页面下载到, 下载后,先编译libapr:

# ./configure –prefix=/opt/apache/apr

然后编译libapr-util(它依赖于libapr)。

# ./configure –prefix=/opt/apache/apr-util –with-apr=/opt/apache/apr

zlib则可以从首页http://www.zlib.net/获得相关的下载链接。

接下来,就可以configure svn了:

# ./configure –prefix=/opt/subversion –with-apr=/opt/apache/apr –with-apr-util=/opt/apache/apr-util

终于顺利通过了。

二、make

接下来,当然是make && make install了,不过,意外的事情又发生了,编译了一会功夫之后,就有error出来了:

/usr/bin/ld: cannot find -lexpat
collect2: ld returned 1 exit status
make: *** [subversion/svn/svn] Error 1

有错误提示可以知道,这应该和缺少expat库有关,因此还需要把expat库的相关东西安装好。可以在 http://www.linuxfromscratch.org/blfs/view/stable/general/expat.html页面找到相应的下载链接。

# wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz
# tar xvfz expat-2.0.1.tar.gz
# cd expat-2.01.tar.gz
# ./configure
# make && make install

编译好了,继续make && make install,一切ok。

三、架设

接下来,可以开始架设svn服务器了。按照《建立 Subversion 服务器 - part1》和《建立 Subversion 服务器 - part2》的介绍,开始了我的架设之路:

1、先用svnadmin创建一个svn工程helloworld。

# cd /opt/subversion/bin
# ./svnadmin create /home/comdeng/svnprj/helloworld

2、然后将已经建好的一个工程的文件导入到svn工程里边的去。

# ./svn import -m "first import" /home/comdeng/workspace/helloworld file:///home/comdeng/svnprj/helloworld

3、最后用svnserve架设服务器

# ./svnserve -d -r /home/comdeng/svnprj

这样弄好以后,我又设置了一下这个svn工程的权限。进入/home/comdeng/svnprj/hellworld的conf目录,编辑svnserve.conf文件,找到以下几行,并把前面的注解符号 ‘#’ 去掉:

anon-access = read
auth-access = write
password-db = passwd

其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,如果想去掉匿名用户的访问权限,将anon-access设为none即可。password-db 后的 passwd 则为定义用户名及密码的文件路径。因此我们打开passwd文件来设置一下用户名和密码,其原始内容为:

[user]
# harry = harryssecret
# sally = sallyssecret

harry和harryssecret分别定义了一个用户名和其对应的密码,因此我们可以在下边加入自己想要的用户名和密码,比如

admin = admin

保存。开始checkout:

# ./svn checkout svn://localhost/helloworld

不过,问题又出现了:
svn: /home/comdeng/svnprj/helloworld/conf/svnserve.conf:12: Option expected

晕,赶紧打开这个配置文件,发现第12行正是刚才配置权限时改动的地方。我去掉#以后,后边的空格就没去了,也许,是这个地方有问题吧,赶紧把空格去掉。再checkout,终于成功了。这个时候,我又跑回原文一看,果然有粗体字的提示:注意千万在每行的前面别留任何空格,看来,看东西一定要细心。

四、总结

1、出现错误要认真检查错误本身包含的信息,勤加分析,不要动不动就google。
2、认真和细心是解决问题的最根本途径。
3、多查英文文档,多向高手请教。



类别:日积月累 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu