`
flaming
  • 浏览: 23308 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
社区版块
存档分类
最新评论

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. 程序安装说明
分享到:
评论

相关推荐

    CollabNet Subversion1.5安装配置.pdf

    ### CollabNet Subversion 1.5 安装与配置详解 #### 一、引言 在当前软件开发过程中,版本控制系统扮演着极其重要的角色。其中,Subversion(SVN)作为一款广受欢迎的集中式版本控制系统,在项目管理和代码协同...

    Subversion1.5 服务+客户+中文包

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去...

    Ubuntu 下安装Subversion

    在Ubuntu系统中安装Subversion(也称为SVN)是进行版本控制系统部署的关键步骤,这对于团队协作开发软件项目尤其重要。Subversion是一个开源的版本控制系统,它允许用户跟踪文件和目录的变化,并管理多个用户对同一...

    Ubuntu中安装subversion服务器

    Ubuntu中安装subversion服务器,Ubuntu中安装subversion配置服务器,超级详细!

    svnbook-1.5-final-zh(for Subversion 1.5 中文版).pdf

    ### Subversion 1.5 权威指南知识点总结 #### 一、Subversion概述 - **Subversion**:一种集中式版本控制系统,用于管理代码、文档等任何类型的数字资产。 - **Subversion 1.5**:该版本是Subversion的一个重要...

    ubuntu subversion 离线安装包

    对于“ubuntu subversion 离线安装包”,我们已经拥有一个名为“subversion 1.9.3 离线安装包”的压缩文件,其中包含了所有必需的组件。这个包通常会包含`.deb`格式的软件包,这是Ubuntu和Debian系统使用的软件包...

    Ubuntu下搭建 Subversion 服务器

    详细介绍Ubuntu下搭建 Subversion 服务器过程,以及svn的使用、常用命令、用户权限、清理和删除等,对初级开发者会有一定帮助

    Subversion1.5发布说明

    火龙果软件工程技术中心 Subversion1.5是以前Subversion发布版本的超集,可以认为是当前“最好的”版本。包含所有1.0.x到1.4.x的,以及以前版本没有的修正和特性。所有的新特性将会写入Subversionbook,见svnbook....

    Subversion-1.5.1 安装包

    Subversion-1.5.1 安装包 。

    TortoiseSVN与Subversion1.5

    火龙果软件工程技术中心 许多人在谈论TortoiseSVN以及它在合并跟踪方面的计划,有些人可能不知道TortoiseSVN,TortoiseSVN是Windows下的一个Subversion客户端。它嵌入到了WindowsShell而且让Subversion客户端命令...

    Ubuntu下Subversion的安装

    在Ubuntu系统中,Subversion(SVN)是一个广泛使用的版本控制系统,用于管理软件开发过程中的源代码和其他文件。它允许团队成员协作工作,跟踪每个文件的更改,以及回滚到先前的版本。这篇博文将详细介绍如何在...

    Ubuntu-install-Subversion-client.rar_Ubuntu!

    "3Microsoft Word - Ubuntu下安装Subversion客户端.pdf"这份文档可能包含了更多关于在Ubuntu上安装和使用Subversion客户端的详细步骤和示例。阅读这份文档将进一步加深你对Subversion的理解。 总结,安装Subversion...

    subversion 1.5.5

    3. **更好的分支和标签策略**:Subversion 1.5引入了“便宜的分支”(cheap copies)特性,创建分支和标签的操作变得更加快速且资源效率更高。这意味着用户可以更频繁地创建和管理分支,以支持敏捷开发方法。 4. **...

    TortoiseSVN-1.5.9.15518-win32-svn-1.5.6

    Subversion 1.5.x系列是Subversion项目的重要里程碑,引入了诸如改进的冲突解决机制、强大的分支和合并策略,以及增强了的性能和稳定性。TortoiseSVN的这个版本正是基于这一核心,确保用户可以充分利用这些新特性。...

    使用Subversion进行版本控制

    需要的人可以下载看看... 包括两个文件:使用Subversion进行版本控制 (pdf,subversion1.4) Version Control with Subversion(single html,subversion1.5)

Global site tag (gtag.js) - Google Analytics