在Ubuntu下如何从源代码编译来安装subversion

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->

环境概述:

OSubuntu 8.04 server版。当然最简单的安装方法是apt-get install subversion,但是这样安装的subversion1.4.6,版本太老了,要想安装最新版的,必须自己从源代码编译。

 

1,下载需要的源码包,检查环境:

首先下载Subversion最新源代码,我用的是1.6.1版:

http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz

下载后解压:

$ tar -zxvf subversion-1.6.1.tar.gz

进入解压后的目录,运行:

$ ./autogen.sh

这个脚本会告诉你是否系统需要安装autoconf,libtool等,如果缺少这些,则可以通过apt-get来安装,autoconf需要V2.58以上,libtool需要V1.4以上。

apt-cache showpkg autoconf来查看版本号,用下面命令安装:

$ sudo apt-get install autoconf

$ sudo apt-get install libtool

然后可以运行./configure脚本,此脚本会告诉你缺少哪些依赖的库,在我的系统中缺少sqliteapr, apr-util

然后下载需要使用的其他软件包:

1sqlite-amalgamationsubversion1.6版需要Sqlite来存储数据

http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz

下载成功后解压:

$ tar -zxvf sqlite-amalgamation-3.6.13.tar.gz

在刚才解压后的subversion目录中建立子目录sqlite-amalgamation,把sqlite3.c文件copy到这个子目录下。

2)如果你的linux系统中没有aprapr-util,则先下载:

http://apache.hoxt.com/apr/apr-1.3.3.tar.gz

http://apache.hoxt.com/apr/apr-util-1.3.4.tar.gz

 

然后解压:

$ tar -zxvf apr-1.3.3.tar.gz

$ tar -zxvf apr-util-1.3.4.tar.gz

把解压后的apr复制到subversion 源码目录下,目录名必须是apr,然后进入apr子目录,运行./buildconf

解压后的apr-util也需要复制到subversion源码的apr-util子目录中,然后也要执行./buildconf脚本。

 

此时subversion源代码目录中除了自己的代码外,还有上面三个库的目录,结构如下:

subversion

|------apr

|------apr-util

|------sqlite-amalgamation

|----- subversion自己的源码

2,编译安装

基本上此时subversion需要的环境已经配置好了,我们可以再次运行

$ ./configure

如果configure脚本没有报错,那么恭喜你,编译环境配置好了,如果报错,会明确告诉你需要的库和如何获取他们。我的系统到这里是没有问题的。

下面就是非常简单的编译了。运行:

$ make

等几分钟后,make成功执行,在运行:

$ make install

此时有可能会报错,基本上是权限不够的问题,那么可以换成:

$ sudo make install

就可以了。

现在subversion就算是安装成功了,看一下是不是最新版,运行:

$ svnversion –version

输出如下:

svnversion, version 1.6.1 (r37116)

compiled Apr 24 2009, 11:37:19

 

Copyright (C) 2000-2009 CollabNet.

Subversion is open source software, see http://subversion.tigris.org/

This product includes software developed by CollabNet (http://www.Collab.Net/).

 

接下来就是配置svn了,因为是内部使用,不打算配http扩展,就配最简单的svnserve吧。

 

3,配置svnserve

首先需要创建repository,执行如下命令

$ svnadmin create /home/myname/repository/prj

 

这样就会在/home/myname/repository/prj目录下建立svn的目录结构,其他不管,直接进入conf子目录,可以看到三个文件:authz passwd svnserve.conf。首先编辑svnserve.conf文件,此文件需要如下内容:

anon-access=none # 禁止匿名登录

auth-access=write # 授权用户读与写

password-db=passwd #存放用户密码

auth-db=authz #授权的用户

 

然后可以编辑authz文件如下:

 

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN

=Joe Average 这里我们不需要用别名,不管他

 

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

 

itdev=zhangsan,lisi,wangwu #建立访问组与成员

 

[/home/myname/repository] #设置目录访问权限

# harry = rw

# &joe = r

itdev = rw #读写权限

 

[prj:/] #对于prj项目下的所有文件itdev组有读写权限

# @harry_and_sally = rw

# * = r

@itdev= rw

接下来,对于authz,为这三个用户设置用户名和密码,编辑passwd文件:

 

[users]

# harry = harryssecret

# sally = sallyssecret

zhangsan = zhangsan的密码

lisi = lisi的密码

wangwu = wangwu的密码

 

现在配置结束。启动svnserve:

$ svnserve -d -r /home/myname/repository

-d 表示以守护模式运行

-r 限制只输出指定路径下的版本库,这样在svn客户端可以用相对短的url

启动成功后,可以在svn客户端来checkout了,配置svn URL如下:

svn://hostip/prj

这里prj就是刚才-r参数后面的路径。

在客户端建好项目的结构:

prj

|------trunk

|------tags

|------branches

再提交到服务器就可以了,trunk是开发主干,tags用来存放标记,branches用来存放分支。

 

其实subversion源码包中的INSTALL 说明文档写的很清楚,我就是参考此文档完成安装的。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值