Linux/Ubuntu 下编译安装 Subversion-1.6.9 (svn) 全攻略!

http://blog.lxneng.com/?p=53
How To Install Subversion On Hostmonster
2010年3月3日 由 Eric Lo 留言 » .# mkdir ~/svn/src -p
# cd ~/svn/src
# wget http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.9.tar.gz
# tar zxvf subversion-1.6.9.tar.gz
# tar zxvf subversion-deps-1.6.9.tar.gz
# cd subversion-1.6.9
cd subversion-1.6.9
cd apr
./configure --enable-shared --prefix=$HOME
make && make install
cd ../apr-util
./configure --enable-shared --prefix=$HOME /
--with-expat=builtin --with-apr=$HOME /
--without-berlekey-db
make && make install
cd ../neon
./configure --enable-shared --with-ssl
make && make install
cd ..
./configure --with-expat=builtin
make && make install
Then you need to edit
.bash_profile to add /system/bin to your path.
From your home folder:
nano -w .bash_profile
add:
:$HOME/system/bin
after:
PATH=$PATH:$HOME/bin
so you get:
PATH=$PATH:$HOME/bin:$HOME/system/bin
You will need to logout of your session, and then log in again. Subversion should now be working.
以上是编译1.6.9简易方法。

Here's the commands I used. Replace zzzzz with your username:
mkdir _src
cd _src
wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz
tar -xzvf subversion-1.4.6.tar.gz
tar -xzvf subversion-deps-1.4.6.tar.gz
cd subversion-1.4.6
cd apr
./configure --enable-shared --prefix=$HOME
make && make install
cd ../apr-util
./configure --enable-shared --prefix=$HOME /
--with-expat=builtin --with-apr=$HOME /
--without-berlekey-db
make && make install
cd ../neon
./configure --enable-shared --with-ssl
make && make install
cd ..
./configure --with-expat=builtin
make && make install
Linux/Ubuntu 下编译安装 Subversion-1.4.0 (svn) 全攻略!

All By yongzhi.wu
(版权归本博主所有,转载务必注明来源)

几经周折, 好事多磨. 终于在俺的Ubuntu 下编译安装完 subversion-1.4.0

下面把我的经验分享出来, 希望对各位看官有用!

     本人的系统为Ubuntu-6.06-1. 如果你的是其他非 apt 软件包管理的系统. 可能有些步骤需要用别的方法来完成.

1.概述:

如果你想为了在Linux 下运行svn服务器,你开始安装了Ubuntu-6.06-1(目前最新).我建议你在安装完后对系统进行升级,先升级到最新版本.这包括内核,一些共享库,等的升级.同时,我不建议你安装LAMP.因为附带的LAMP在现在看来比较老了.apache-httpd 已经是2.2.3版了.还有其他的.建议你用第一个选项安装Ubuntu-6.06-1 ,至于LAMP,在装完系统后,再下载软件来安装吧.

顺便说一下使用Ubuntu/Linux的方式.在使用Linux的这段时间,我发现如果直接在Linux控制台上操作.将是一件非常痛苦的事.你没办法看到控制台的历史输出信息,没办法复制粘贴.因此,我推荐你可以先安装 openssh-server  这是一个终端服务器,安装后,你可以在Windows上通过远程连接,连接到Linux,登录它,同时操作它.putty 是一个Windows下的终端客户端软件,它非常优秀,直接在控制台上操作的缺点,在putty上都没有.

putty 可以通过google搜到,然后下载个最新的就行

openssh-server 的安装在apt软件包管理的Linux下,可以使用命令:

sudo apt-get install openssh-server

再说一遍,如果你不是apt软件包管理的Linux,openssh-server 你将需要自行安装

 

ok. 我们来看Ubuntu 的升级.将新安装的Ubuntu-6.06-1升级,你需要进行以下操作:

A.编辑文件 /etc/apt/sources.list 将原有的deb 开头的语句用 # 号注释掉.然后可以将以下软件源复制到里面去:(在编辑前建议先备份下,命令: sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak)

deb http://ubuntu.cn99.com/ubuntu/ dapper main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ dapper main restricted universe multiverse

 


B.更新包清单: sudo apt-get update

C.安装686内核:sudo apt-get install linux-686

D.更新系统: sudo apt-get upgrade

这些过程可能比较耗时,因为需要从网上下载软件来更新.看你的网速了.如果你连接到软件源的网速比较慢,你可以在网上再搜索下好的源.推荐一个页面,你可以去测试下网速,进而挑选网速最好的源:

http://wiki.ubuntu.com.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake

至此,你的系统更新完毕.

2.必备工具:

     更新完系统,你需要把一些必备的工具,通过apt-get 命令安装上.同时下载一些必须的程序源代码,以准备编译subversion-1.4.0

A.用apt-get 来安装的软件:

build-essential (gcc/g++等编译建造工具,这是必备的,无需多说了)        

libxml2-dev (xml解析库,用于neon的安装.下面会讲述)        

libssl-dev (openssl 库,提供安全套接字连接ssl层等安全功能,你的subversioin不会只想用http,svn等协议来连接吧.如果你想用https,呵呵....)

libdb4.4-dev (Berkeley DB 4.X 库.用于让subversion能访问Berkeley DB的文件系统)

ok 需要用 apt-get 来安装的软件就这些.其他将使用下载源代码,用源代码来编译安装.

可能你注意到了有三个库是以-dev 结尾.是的,这些表示是开发版本,开发版本将安装一些必要的.h,.lib文件,来允许你编译使用这些库的程序,这正是我们想要的.

(未完待续)累多,想休息会....

B.下载源代码,呵呵,down吧, it is free, open source.你可以在windows上用flashget 下完,再开一个iis http服务,然后再从linux 上 wget 过来.我用的是虚拟机,是先在windows上下载,因为想在windows做一个备份.

1. apache-httpd-2.2.3    apache 最新版本的服务器     http://httpd.apache.org
2. apr-1.2.7   (全称apache portal runtime)  http://apr.apache.org
3. apr-util-1.2.7                                          http://apr.apache.org
4. subversion-1.4.0                                    http://subversion.tigris.org/
     subversion-deps-1.4.0                           http://subversion.tigris.org/

好了,似乎就这些了. 我们即将编译安装他们.
大家应该注意到,我们还下载了apache-httpd-2.2.3,这个著名的web 服务器(虽然它并非是Linux/Unix最好的Web服务器)subversion 支持通过apache服务器建立版本控制服务端.因此,我打算将这个也讲一下,顺便讲下编译apache服务器.其实都很简单,这些其实都是不知者难,知者易.写本文的目的也是为了帮助想了解,使用Linux的兄弟(姐妹)们更快的上手.

A.Linux/Unix 下基本的编译方法.在使用Linux的这一两礼拜里,我已经编译过很多软件来玩.觉得蛮有意思,因为你可以定制你的系统,虽然大部分时候对于编译软件,程序库,我还仅限于使用默认参数(其实就是不加参数:D ).不过已感到其中的乐趣,并且对系统有了很多的认识.不瞎扯了,Linux/Unix 下我可以这么说,你想要使用好软件,你只能有一个选择,编译!如果你指望.deb,.rpm 包来安装.那你还是去用Windows算了.世界上这么多的开源精神的人为你提供了软件源码,剩下的最后一步,你不能放弃.是了,你也许害怕编译,你会说我连编程都没玩过,c/c++都没碰过,我根本不懂.你错了,正是因为这些负面的信念,让你觉得难,有障碍,你不愿去尝试探索(当然我希望中国的软件业教育环境能更好些,都有现成的 chinese 的东西来看,来用;可喜的是,现在这些chinese的东西越来越多了,这是很令人兴奋的).一个好消息是,你既然看到这里了,那么先恭喜你,我将毫无保留的把我所学与你分享,如果你也有什么好东西也欢迎你告诉我,我愿与你分享:D 呀,我还在瞎扯,行了,进入正题.

Linux/Unix 编译建造工具
安装make,gcc,g++等编译建造工具.我为何青睐ubuntu,它安装软件实在太方便了.前面说过,
sudo apt-get install build-essential 这个命令将使系统通过 /etc/apt/sources.list 文件中的软件源定义来获取上述的编译建造工具.执行完这一步之后,所有工具你都有了.好了,下面就是编译了.

Linux/Unix 下编译
基本上,所有的Linux/Unix 软件源代码通过下面三个命令就能编译成功,并安装到系统中了(假定当前目录是软件源代码的根目录下:
sudo ./configure
sudo make
sudo make install
(注:加上 sudo 是因为是在Ubuntu下,如果其他系统,可以不使用sudo,但必须有root权限或者相关等价的有足够权限执行编译建造过程的帐户)

是的,就这么简单,知者易,不知者难,对吧.
基本上,就是这样的.

噢,你可能会说了,那subversion 还用得着这么废劲吗,作者你写这篇文章不就是来骗眼球吗.呵呵,不要忘了,我是说可以编译完成,并不代表你编译好的软件是处于最好状态的.怎么说呢?举例,假如 apache-httpd-2.2.3 服务器,你可以使用 php4, 也能使用php5.那你打算怎么用呢?你当然希望使用最新的php5,但是如果你系统没有呢php5呢?你可能需要编译一个php5模块.如果有一天,php6向我们走来了呢?php7呢?你需不需要再次编译,配置你的apache-httpd 服务器?是吧.Linux/Unix下的软件是很多人从基层(你可以理解为kernel)开始,一个一个搭起来的.如果基层有新的功能,有BUG修复,你应该使用更好的基层软件,这样才能让软件更好地为你服务.

拿 subversion-1.4.0 来说吧.subversion 有很多可选的功能支持,https 的访问是一个.如果你需要安全的源代码控制系统,或者你的源代码控制管理需要放到网上,供大家来使用,https是必须的.sourcesafe, google code 都使用https. 当然,你可以不需要它.但是当你想用了呢?

这篇文章主要就是讲述这些奇形怪异的 subversion-1.4.0 编译.

或许,以后的subversion 版本,也会类似,你不会白学的:)

 

下面先说下,最简单的 subversion 编译,安装编译工具套件是必须的,这个就不必再详述了.

1.安装 libxml2-dev 库: sudo apt-get install libxml2-dev

2.将 subversion-1.4.0 与 subversion-deps-1.4.0 两个包解压到相同的目录下,一般会是
subversion-1.4.0    进入这个目录(subversion-1.4.0) ,像上面说的运行命令:
sudo ./configure
sudo make
sudo make install
这样,你应该会编译成功.这里我用了"应该"这个词,因为我确实没这么试过.但你可以试试,不介意我这样做吧 :P

这样你将编译完成 subversion-1.4.0, 但是, 它缺少:
1. 没有 https 支持
2. 没有 访问 Berkeley DB 系统的能力
3. apr 运行时版本较低(subversion-deps-1.4.0 里带的是 0.9.3,尽管我并不清楚最新的 apr 与它有什么不同,但是我想如果能用上最新的,那还是很好的)

好了,那么要如何拥有上面三项功能呢?编译!
https 的支持,与 neon 组件有关.subversion-deps-1.4.0 这个包展开后会有四个目录 apr,apr-util,neon,zlib 这些是编译 subversion 的必须组件.在编译subversion-1.4.0的过程中,这四项会自动被编译.而这四项里前两者 apr,apr-util是老了的,0.9.3 的版本,neon默认编译不支持ssl,如果需要ssl支持,需要有libssl-dev 这个包,(注意,必须是 libssl-dev ,libssl不行,我至今还搞不清楚,具体是缺少哪方面东西,你自行编译安装 openssl 都不行,哪位如果知道,请告知在下,非常感谢)并且带上 --enable-ssl 这个参数.当然,编译neon不需要你来做,编译subversion时会自动编译它,你只需要在编译 subversion 时,sudo ./configure 命令后加上参数 --with-ssl . 因为subversion能否支持https取决于其组件 neon 是否支持 https.因此,你应该了解了.

然后是 apr, apr-util组件. 你下载的最新的apr,apr-util 都是1.2.7版本,将它们的内容覆盖到 subversion-1.4.0 下的同名目录(apr,apr-util)即可.注意,这两不能带版本号.

关于 neon,它的最新版本是 0.26.1 ,我尝试下载来使用,结果 subversion 不能识别,就是说,neon 就只能用 subversion 推荐的 0.25.5 这个版本.

libxml2-dev 是为了编译 neon 的.

还有一个 Berkeley DB.当你用 sudo apt-get install libdb4.4-dev 安装好库后,你已经能让 subversion 支持 Berkeley DB 了.唯一要做的就是在 ./configure 后接上
--with-berkeley-db=/usr/local   这是告诉 subversion 编译程序,在编译时带上访问berkeley-db的功能.并且定位berkeley-db 相关文件时,从/usr/local 开始.

好了,现在重要的内容都讲完了,完整的全功能subversion编译过程如下:

1.安装必须库 libssl-dev, libxml2-dev, libdb4.4-dev
2.将 subversion-1.4.0, subversion-deps-1.4.0 解压到 subversion-1.4.0 目录下
3.将 apr-1.2.7, apr-util-1.2.7 解压. 并将解压后的两个目录 覆盖掉 subversion-1.4.0 目录中的同名目录 apr,apr-util
4.使用以下命令开始编译:

sudo ./configure --with-ssl --with-berkeley-db=/usr/local
sudo make
sudo make install


OK,试试吧,如果在玩的过程中遇到什么意外情况,我愿与你一道分析解决:)

未来节目预告:
1.apache   想说爱你不容易
2.subversion 使用配置
3.......

by yongzhi.wu

你可能感兴趣的:(Linux/Ubuntu 下编译安装 Subversion-1.6.9 (svn) 全攻略!)