扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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关联起来. |
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 的档案库.
SVN可以同过两种方式提供客户端对档案库的访问。
采用Apache HTTP 服务器 (httpd)。使用WebDAV/deltaV 通讯协议与客户端交互, 这个通讯协议 (它是 HTTP 1.1 的扩充; 请参照 ttp://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档案库的位置。
这样你就可以使用ttp://servername/tet来访问档案库。
如果你计划支持多个 Subversion 档案库, 而它们都有着共同的本地磁盘路径, 你可以使用另一种指令 SVNParentPath, 指示它们共同的父路径。如果我们在路径 /usr/svn 之下建立多个 Subversion 档案库, 并以ttp://servername/svn/repos1,ttp://servername/svn/repos2等等的 URL 供人存取, 你可以使用下面中的 httpd.conf 设定语法:
<Location /svn>
DAV svn
SVNParentPath /usr/svn/repos
</Location>
使用前述的语法, Apache 会将所有路径以 /svn/ 开始的 URL 都交给 Subversion DAV 供应模块处理, 它会假设任何以 SVNParentPath 指令指定的目录都是 Subversion 档案库。 不像SVNPath, 这个相当便利的语法可以让你在建立新的档案库时, 仍旧不必重跑 Apache。 这时我们可以同过ttp://servername/svn/test来访问我们刚才的档案库,同样如果/usr/snv/repos/目录中还有档案库cvsrepos,我们可以通过ttp://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 客户端取得使用者代号与密码, 这可能是使用先前置于快取的值, 或是向使用者询问。
cvs2svn工具是用来把CVS档案库转换为SVN档案库的。
1).安装 下载:Python 2.0 地址:ttp://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
地址:ttp://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 工具
地址:ttp://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
地址:ttp://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档案库的位置 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者