ubuntu 下建立subversion 1.5

工作需要,在自己笔记本上安装Subversion+Apache2+Swig+Viewvc开发环境。
由于对python和Apache网络服务器不太懂,折腾了一天半,才算配置成功。
因为配置过程有些复杂,下面简要整理一下过程,以供自己备忘,也让后来者参考,少走些弯路。
鄙人才疏学浅,错误之处在所难免,望海涵!Open-mouthed

------------
1.安装Apache2的HTTP服务器
Apache2不需要自己编译,可以直接用apt-get自动下载安装:
$sudo apt-get install apache2
编辑/etc/apache2/apache2.conf文件,最后一行输入你喜欢的IP地址,如:
ServerName 127.0.0.1
重启Apache服务:
$ sudo /etc/init.d/apache2 restart
在你的浏览器中键入 http://127.0.0.1, 如果没有问题就说明安装好了!
------------
2.编译安装swig1.3.36

SWIG (简单封装和接口生成器)是一个开放源代码系统,由Dave Beazley创建,现由其社群开发,很像Python. 它利用C和C++类型声明来生成完整的C扩展模块,生成的C扩展模块可以集成到现有库中供Python脚本使用。生成的C(和C++)扩展模块是完整的:它们自动处理数据转换,错误处理,引用计数,等等[3]。
下载地址:http://www.swig.org/。 解压并安装
$./configure --with-python=/python的安装目录/
$make
$sudo make install
默认安装到/usr/local下
------------
3.编译安装Subversion1.5
这里要注意,很重要的一点,不能直接用apt-get下载安装。原因应该是在源里面编译好的binary文件中没有作python绑定的配置。
Subversion Python绑定是一些访问Subversion功能的Python模块,在Subversion的每个主要版本发布时都会发布相应的Python绑定。
APR, APRUTIL和Subversion 源代码都可以从这里下载。当前最新版本为1.5:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74
下载subversion-1.5.0.tar.bz2 和subversion-deps-1.5.0.tar.gz 。
subversion-deps-1.5.0.tar.gz 包含APR APRUTIL neon serf zlib,如果没有安装,可以从这里编译安装。我的经验是
APR, APRUTIL 需要自己编译。而且要和subversion同一个版本,否则svn使用会有问题,无法用https,http通讯。
安装好以后开始安装Subversion, 还是鲁班三板斧:
$./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-apr=/usr/local/apr/ \
--with-apr-util=/usr/local/apr/ \
--with-swig=/usr/local/bin/swig \
PYTHON=/usr/bin/python2.5 \
PERL=/usr/bin/perl5.8.8 \
--with-ssl
$make
$sudo make install
./configure 等号右侧的路径根据自己的配置修改。具体含义可用
$./congfigure -h
来查看。这样配置,安装后会自动将mod_dav_svn.so 和mod_authz_svn.so将会复制到/usr/lib/apache2/modules/下,
并在/etc/apache2/httpd.conf中增加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
记Apache从启动时调用这两个模块。
上面的选项一个都不能少,否则后面会出问题。
接下来为Subversion作Swig Python绑定。先要安装python的开发包
$sudo apt-get install python-dev
然后,
$make swig-py
$sudo make install-swig-py
目的应该是将svn的swig-py包编译安装到/usr/local/lib/svn-python/下。然后 符号联接到python的package中。
$ cd /usr/local/lib/python2.5/site-packages/
$ sudo ln -s /usr/local/lib/svn-python/libsvn .
$ sudo ln -s /usr/local/lib/svn-python/svn .
现在测试一下,是否绑好了
$python
>>>import svn.repos
>>>exit()
如果没有报错,就说明OK了。
再测试一下svn是否安装好了
$ svn --version
svn,版本 1.5.0 (r31699)
编译于 Jul 1 2008,18:38:06
Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
可使用以下的版本库访问模块:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- 处理“http”方案
- 处理“https”方案
* ra_svn : 使用 svn 网络协议访问版本库的模块。
- 处理“svn”方案
* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- 处理“http”方案
- 处理“https”方案
这说明客户端可以用file://, svn://,http://和https://和svn 的repository 通讯了

在/etc/apache2/httpd.conf 中增加:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /var/local/repos
AuthType Basic
AuthName "Yang's Subversion Repository"
AuthUserFile /etc/svntrac.htpasswd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

$sudo /etc/init.d/apache2 restart
就可以用在浏览器上用http://127.0.0.1/repos访问了。
------------
4.安装配置viewvc
下载地址http://www.viewvc.org/, 当前版本是1.0.5,还很年轻!
$./viewvc-install
修改/usr/local/viewvc-1.0.5/viewvc.conf,参考其中的说明。
我的配置是:
#cvs_roots = cvs: /home/cvsroot
svn_roots = svn: /var/local/repos
svn_path = /usr/local/bin
default_root = svn
address = <a href="mailto:yang@psi.ch"></a>
然后在/etc/apache2/httpd.conf 中增加:
ScriptAlias /viewvc /usr/local/viewvc-1.0.5/bin/cgi/viewvc.cgi
最后,在我的Ubuntu 8.04 LTS中,需要刷新一下动态链接库配置文件,在别的Linux发布中可能不需要。
$ ldconfig
否则用浏览器打开http://127.0.0.1/viewvc时会可能出现下面错误:
An Exception Has Occurred
Python Traceback
Traceback (most recent call last):
File "/usr/local/viewvc-1.0.5/lib/viewvc.py", line 3766, in main
request.run_viewvc()
File "/usr/local/viewvc-1.0.5/lib/viewvc.py", line 253, in run_viewvc
import vclib.svn
File "/usr/local/viewvc-1.0.5/lib/vclib/svn/__init__.py", line 27, in <module>
from svn import fs, repos, core, delta
File "/usr/local/lib/svn-python/svn/fs.py", line 19, in <module>
from libsvn.fs import *
File "/usr/local/lib/svn-python/libsvn/fs.py", line 7, in <module>
import _fs
ImportError: libsvn_swig_py-1.so.0: cannot open shared object file: No such file or directory
我折腾了半天,最后还是在Achim同志的帮助下才发现的。

最后,再重启一下Apache:
$sudo /etc/init.d/apache2 restart
现在就可以在浏览器上用http://127.0.0.1/viewvc访问你的SVN仓库了,效果见下图。
----------
参考文献:
1. svnbook 中文版, http://svndoc.iusesvn.com/
2. http://cache.qihoo.com/wenda.php?do=snap&m=374ead4b0238829e99bd4e79c6a2e162&surl=http%3A%2F%2Fwww.scmlife.com%2Fdp-bbsthread-5993.html&act=fetchHtmlsnap&kw=ViewVC
3. http://blog.csdn.net/jq0123/archive/2007/04/16/1566157.aspx
4. 程序安装说明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值