查看文章 |
一直以来都充当使用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页面下载到,
# ./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 有错误提示可以知道,这应该和缺少expat库有关,因此还需要把expat库的相关东西安装好。可以在 http://www.linuxfromscratch.org/blfs/view/stable/general/expat.html页面找到相应的下载链接。
# wget http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz 编译好了,继续make && make install,一切ok。 三、架设
接下来,可以开始架设svn服务器了。按照《建立 Subversion 服务器 - part1》和《建立 Subversion 服务器 - part2》的介绍,开始了我的架设之路: 1、先用svnadmin创建一个svn工程helloworld。
# cd /opt/subversion/bin 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 和 auth-access 分别为匿名和有权限用户的权限,如果想去掉匿名用户的访问权限,将anon-access设为none即可。password-db 后的 passwd 则为定义用户名及密码的文件路径。因此我们打开passwd文件来设置一下用户名和密码,其原始内容为:
# ./svn checkout svn://localhost/helloworld晕,赶紧打开这个配置文件,发现第12行正是刚才配置权限时改动的地方。我去掉#以后,后边的空格就没去了,也许,是这个地方有问题吧,赶紧把空格去掉。再checkout,终于成功了。这个时候,我又跑回原文一看,果然有粗体字的提示:注意千万在每行的前面别留任何空格,看来,看东西一定要细心。
四、总结 1、出现错误要认真检查错误本身包含的信息,勤加分析,不要动不动就google。
|