注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

在FreeBSD上安装SVN(Subversion)  

2009-08-20 10:54:23|  分类: svn |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://www.svn8.com/svnpz/20080314/310.html

操作系统:FreeBSD 5.3

这是第一次在非Windows系统安装软件,对于系统中很多基本的东西都不熟悉,基本上都是看着配置文档来的,很多东西都是需要用的时候才找的,因此也花了不少时间。比较欣慰的时这些软件的文档的都很详细,使一个初次接触者也能够按照文档的说明一步一步完成安装。

目录:

  1. 1. SVN简介

    现在开发的源码,版本等管理一般都是CVS 。Subversion(SVN, http://subversion.tigris.org/)项目开始于2000年2月,作者之一是著名的 Open Source Development with CVS 作者Karl Fogel,也是CVS的开发者。

    Subversion开始由CollabNet(http://www.collab.net) 所有,但是它确实是一个开源的软件,遵从bsd样式的许可证。CollabNet只是给几个全职开发者发工资,并享有代码的版权,但是这个版权是 Apache/BSD-style的许可证,也就是说,你可以自由下载,修改,发布Subversion,而不需要CollabNet或其他人的许可。

    Subversion意为更好的CVS,所以它除了包括了大多数CVS的特点,还有一些新鲜的东西:


    目录在Subversion中和文件一样是versionable的对象,还有文件重命名等。Subversion还允许用户追踪文件和目录的任意属性信息,包括元信息(META-DATA)。甚至包括符号连接。在Subversion中,容易移动,复制和重命名。
    高效的网络利用率。Subversion 可以用apache的基于HTTP的 WebDAV/DeltaV协议进行通讯。Apache服务器提供repository的服务。
    二进制文件处理的增强。
    本地化消息Localized messages
    Subversion根据本地设置(locale settings) 用gettext()显示翻译过的错误,信息,帮助等。
    Branching and tagging are cheap (constant time) operations
    Subversion支持目前所有的流行的操作系统,比如Unix, Win32, BeOS, OS/2, MacOS X等。

下载到:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

文档:

更多的信息还是到主页 http://subversion.tigris.org/上去看吧。

相关网站:

Subversion for Windows 安裝指南http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm

Version Control with Subversion中文版:http://svn.ntcu.net/svnbook/book.html
http://svnbook.red-bean.com/svnbook-1.1/svn-book.pdf

2. 准备工作

下载:subversion-1.2.0.tar.gz 地址:http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1159

下载:libxml2-2.5.3.tar.gz 地址:http://cosoft.org.cn/html/osl/projects.php?group_id=4981

下载:neon-0.24.7.tar.gz 地址:http://www.webdav.org/neon

下载:db-4.3.28.NC.tar.gz 地址: http://www.sleepycat.com/download/index.shtml

下载:Apache Web Server 2.0.49 or newer 地址: http://httpd.apache.org/download.cgi

3. 安装使用tar打包的应用软件

1) 安装:

整个安装过程可以分为以下几步:

  • < -xvf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar -xvzf 等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar>
  • <>
  • <>
  • <>
  • 好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说,Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的INSTALL和README 文件,一般都会有说明。

    2) 卸载:

    通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。一般都提供 make uninstall 来卸载软件的。

    说明:阅读附带的INSTALL文件、README 文件是很重要的,大部分软件的安装信息都是从这里得到的。

    4. 开始安装

    1)安装libxml2-2.5.3

    这是一个提供XML解析的类库,在安装subversion之前必须安装。
    tar -zxf libxml2-2.5.3.tar.gz
    cd libxml2-2.5.3
    ./configure
    make
    make install
    make clean

    2)安装 Neon library 0.24.7

    Neon库允许SVN客户端在Internet上使用基于WebDAV 的协议和远程知识库交互。
    tar -zxf neon-0.24.7.tar.gz
    cd neon-0.24.7
    ./configure
    make
    make install
    make clean

    3)安装Berkeley DB 4.3.28

    当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDB( Berkeley Database)。BDB是一个轻量级的关系数据库,可以作为一个轻巧的内置数据库,在很多开源项目下有很多应用,比如CVSTrac。FSFS格式主要的特点是可以支持Subversion的数据库和Subversion服务器可以在不同的物理机器上,可以通过网络共享(不知道是否支持NFS?),能很好的工作在MS Win98上,并且速度更快,但是由于FSFS是一种新的格式,稳定性可能没有BDB好。

    比较郁闷的是我把Berkeley DB安装完成后,安装SVN的时候竟然检测不到,只有用FSFS格式的数据库了。
    tar -zxf db-4.3.28.NC.tar.gz
    cd docs
    ../dist/configure
    make
    make install
    make clean

    4)安装Apache 2.0

    tar -zxf httpd-2.0.54.tar.gz
    ./configure --enable-dav --enable-so --enable-maintainer-mode
    make
    make install
    make clean

    注意:configure后面参数--enable-dav 表示构建mod-dav,--enable-so表示开启共享模块的支持也就是mod_dav_svn模块,--enable-maintainer-mode表示启用调试信息

    5)安装Subversion

    tar -zxf subversion-1.2.0.tar.gz
    ./configure --with-apxs=/usr/local/apache2/bin/apxs
    make
    make install
    make clean

    注意:如果Apache未按照默认路径安装或出现跳过构建mod_dav_svn的警告信息,就需要在./configure 加上参数 --with-apxs=/usr/local/apache2/bin/apxs来构建mod_dav_svn并和Apache关联起来.

    5. 创建文件库

    Subversion 所提供的 svnadmin 工具, 有个专门处理这件事的子命令. 要建立一个新的档案库, 只要执行:

    $ svnadmin create /usr/svn/repos/test

    这样就在“/usr/svn/repos”目录下创建了一个test档案库,其中档案库的路径为“/usr/svn/repos/test”

    注意:svnadmin工具的默认路径为“/usr/local/bin/svnadmin”

    在你执行 svnadmin create 命令之后, 这个目录中就会有全新的 Subversion 档案库. 让我们看一下在这个目录里产生了什么东西.

    $ ls /usr/svn/repos/test
    dav/ db/ format hooks/ locks/ README.txt
    除了 README.txt 与 format 檔以外, 档案库是由一群子目录组成. 就像 Subversion 其它部份的设计一样, 模块化是很重要的原则, 而且阶层式组织要比杂乱无章好. 以下是新的档案库目录中, 各个项目的简单叙述:

    dav

    提供给 Apache 与 mod_dav_svn 使用的目录, 让它们储存内部数据.

    db

    主要的 Berkeley DB 环境, 里面都是储存 Subversion 档案系统 (就是你置于版本控制的全部数据所在) 的数据库表格.

    format

    一个内容为一个整数的档案, 表示档案库配置的版本号码.

    hooks

    一个放置 hook 脚本文件模板的目录 (如果你有安装的话, 还有脚本档本身的档案).

    locks

    用来放置 Subversion 档案库锁定数据的目录, 用来追踪存取档案库的客户端.

    README.txt

    这个档案只是用来告知使用者, 他们在看的是 Subversion 的档案库.

    6. Apache配置

    SVN可以同过两种方式提供客户端对档案库的访问。

    采用Apache HTTP 服务器 (httpd)。使用WebDAV/deltaV 通讯协议与客户端交互, 这个通讯协议 (它是 HTTP 1.1 的扩充; 请参照 http://www.webdav.org/) 采用广为使用的 HTTP 通讯协议。

    采用SVN自带的svnserve服务器。这个程序要比 Apache 更轻便, 而且更容易设定,它会与 Subversion 客户端透过 TCP/IP 联机以自订的通讯协议沟通。

    我们采用了Apache服务器的方式,配置的具体步骤如下:

    1).Apache需要加载模块

    为了使客户端能够通过Apache来访问SVN档案库,Apache需要加载一个特殊的模块mod_dav_svn。如果您的Apache是按照与预设目录安装的,mod_dav_svn 模块应该会安装在 Apache 安装位置 (默认路径是 /usr/local/apache2) 的 modules 子目录内。同时在Apache的配置文件httpd.conf(默认路径为/usr/local/apache2/conf)中已经使用LoadModule指令加载了该模块(这是安装过程中自动添加)。LoadModule 指令的语法很简单, 就是将一个具名模块对映到共享链接库在磁盘上的位置:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    注意这个指令必须出现在其它的 Subversion 相关指令之前。

    2).配置匿名访问

    使客户端能够通过Apache访问资源库还需要告诉Apache资源库的位置,这需要我们在htppd.conf中加入Location指令来配置。
    <Location /test>
    DAV svn
    SVNPath /usr/svn/repos/test
    </Location>=
    其中DAV表示处理方式,SVNPath是SVN档案库的位置。
    这样你就可以使用http://servername/test来访问档案库。

    如果你计划支持多个 Subversion 档案库, 而它们都有着共同的本地磁盘路径, 你可以使用另一种指令 SVNParentPath, 指示它们共同的父路径。如果我们在路径 /usr/svn 之下建立多个 Subversion 档案库, 并以http://servername/svn/repos1,http://servername/svn/repos2 等等的 URL 供人存取, 你可以使用下面中的 httpd.conf 设定语法:

    <Location /svn>
    DAV svn
    SVNParentPath /usr/svn/repos
    </Location>

    使用前述的语法, Apache 会将所有路径以 /svn/ 开始的 URL 都交给 Subversion DAV 供应模块处理, 它会假设任何以 SVNParentPath 指令指定的目录都是 Subversion 档案库。 不像SVNPath, 这个相当便利的语法可以让你在建立新的档案库时, 仍旧不必重跑 Apache。 这时我们可以同过http://servername/svn/test来访问我们刚才的档案库,同样如果/usr/snv/repos/目录中还有档案库cvsrepos,我们可以通过http://servername/svn/cvsrepos来访问,并不需要重新配置。

    3).配置用户验证

    我们使用最简单的是基本验证机制,它只会使用使用者名称与密码, 用以确认使用者是他所声称的身份。Apache 提供了htpasswd 工具程序,来管理接受的使用者名称与密码,也就是你想要授与存取 Subversion 档案库权限的使用者。 让我们授与 Sally 与 Harry 送交存取的权限。 首先, 我们必须把它们加入到密码档案。

    $ ### 第一次: 以 -c 建立档案
    $ htpasswd -c /etc/svn-auth-file harry
    New password: *****
    Re-type new password: *****
    Adding password for user harry
    $ htpasswd /etc/svn-auth-file sally
    New password: *******
    Re-type new password: *******
    Adding password for user sally
    $
    接着, 你需要在 httpd.conf 的 Location 区块中新增几个指令, 告诉 Apache 如何处理你的新密码文件。
    AuthType 指令指定应使用何种认证系统。 在目前的状况中, 我们想要指定 Basic 认证系统。
    AuthName 是一个任意的名称, 让你用来指定认证领域 (authentication domain)。 大多数的浏览器在向使用者询问使用者代号与密码时, 会将这个名称显示在弹出的对话框中。
    AuthUserFile 指令指定你以 htpasswd 产生的密码文件
    Require 指令指定只有通过验证的用户才能访问。

    在新增这四个指令后, 你的 <Location> 区块看起来应该像这样:

    <Location /svn>
    DAV svn
    SVNParentPath /usr/local/svn
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /etc/svn-auth-file
    Require valid-user
    </Location>
    现在如果你重新启动 Apache, 任何需要认证的 Subversion 动作都会从 Subversion 客户端取得使用者代号与密码, 这可能是使用先前置于快取的值, 或是向使用者询问。

    7. 把CVS档案库转换为SVN档案库

    cvs2svn工具是用来把CVS档案库转换为SVN档案库的。

    1).安装

    下载:Python 2.0
    地址:http://www.python.org/
    说明:执行csv2svn中Python 脚本所需要的环境
    安装:
    cd /usr/software
    tar -zxf Python-2.4.1.tgz
    cd Python-2.4.1
    ./configure
    make
    make install
    make clean

    下载:RCS
    地址:http://www.cs.purdue.edu/homes/trinkle/RCS/
    说明:用来读CVS档案库
    安装:
    cd /usr/software
    tar -zxf rcs-5.7.tar
    cd rcs-5.7
    ./configure
    make
    make install
    make clean
    注意:make操作只能由非root用户执行

    下载:GNU 工具
    地址:http://www.gnu.org/software/coreutils/
    说明:可能FreeBSD系统已经有了
    安装:
    cd /usr/software
    tar -zxf coreutils-5.2.1.tar.gz
    cd coreutils-5.2.1
    ./configure
    make
    make install
    make clean

    下载:cvs2svn
    地址:http://cvs2svn.tigris.org/
    说明:
    安装:
    cd /usr/software
    tar -zxf cvs2svn-1.2.1.tar.gz
    cd cvs2svn-1.2.1
    make install
    make clean

    2).使用cvs2svn把CVS档案库转换为SVN档案库

    使用cvs2svn工具根据需要可以几种转换方式供选择的。默认的方式为完全转换,我们就是采用这样方式的。
    进入csv2svn所在的目录:
    cd /usr/software/cvs2svn-1.2.1
    ./cvs2svn --svnadmin=/usr/local/bin/svnadmin --encoding=gb2312 --fs-type=fsfs -s /usr/svn/repos/CVSRepos_JSP /usr/software/CVSRepo_JSP

    参数说明:
    --svnadmin svndadmin的路径,创建SVN档案库时需要
    --encoding 所采用的编码,默认为ascii
    --fs-type 档案库的类型fsfs或bdb
    -s SVN档案库的位置
    最后一个是要转换CVS档案库的位置

      评论这张
     
    阅读(394)| 评论(0)
    推荐 转载

    历史上的今天

    在LOFTER的更多文章

    评论

    <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    页脚

    网易公司版权所有 ©1997-2017