分类:
2008-11-02 13:08:30
Subversion安装配置使用手册
Subversion(以下简称SVN)是一个免费的、开放源码的版本控制系统。就是说,Subversion管理随时改动的文件和目录。文件树被放在一个中央资料库(Repository)中。这个资料库象一个普通的文件服务器,但是它可以记录文件和目录的每次改动。它允许你恢复以前旧版本的数据,或者检查数据变化的历史。因此,很多人把版本控制系统看成某种“时光机”。
Subversion允许通过网络访问它的资料库,因而可以被位于不同计算机前的人们同时使用。在某种程度上,允许人们从自己的地方修改和管理同一组数据有助于促进相互间的合作。由于不再受任何修改都必须通过单一渠道来进行的限制,改进可以更快的实施。而且因为工作被本化了,你不必担心取消限制会导致工作质量下降。如果对数据作了不正确的改动,只要撤销就行了。
此手册中主要阐述以Linux做为服务端,Windows做为客户端的SVN C/S架构的搭建方法,附带客户端的一些基本使用和操作
需要安装的软件包:
httpd-2.2.9.tar.gz
subversion-1.5.2.tar.gz
apr-1.2.12.tar.gz
apr-util-1.2.12.tar.gz
没有的请到Rpmsearch上下载对应的软件包,以下的安装顺序是固定的,请严格按照顺序安装,并且不要用Linux自带的yum命令安装这些软件,会出很多问题。
1、安装APR-1.2.7和APR-util-1.2.7
# tar zxvf apr-1.2.12.tar.gz
# cd apr-1.2.12
# ./configure
# make
# make install
正常安装后,应该在usr/local/下找到/apr目录
# tar zxvf apr-util-1.2.12.tar.gz
#cd apr-util-1.2.12
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
# make
# make install
蓝色字段—prefix代表apr-util的安装目录,--with代表和apr一起编译
2、编译安装APACHE
# tar zxvf httpd-2.2.9.tar.gz
# cd httpd-2.2.9
#./configure --prefix=/usr/local/Apache --enable-so --enable-dav=share --enable-dav-fs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
# make
# make install
蓝色字段指明了Apache的安装位置和与apr和apr-util一起编译,并且支持dav,如果刚才的apr和apr-util安装的没有问题的话,这里不会出现运行错误,如果出现编译错误请检查apr和apr-util的安装。
# /usr/local/Apache/bin/Apachectl start
此时打开浏览器,进入,如果看到It works!的字样,证明Apache架设成功了。
3、安装subversion-1.5.2
# tar zxvf subversion-1.4.5.tar.gz
# cd subversion-1.5.2
# ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/Apache/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
# make
# make install
4、查看subversion两个动态库有没有安装成功
打开/usr/local/Apache/conf/下的httpd.conf
看到下面两个模块说明安装成功
LoadModule dav_svn_module
LoadModule authz_svn_module
如果文档里有上面的俩个字段,证明svn在安装的时候已经成功把mod_dav_svn和Apache绑定,请将如下两行字段用#注释掉:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_svn_module modules/mod_dav_svn.so
如果没有的话,请删除Apache,svn,apr,apr-util的安装目录(都在/usr/local/下)重新安装,手动添加是没有用的。
5、建立SVN存储仓库
# mkdir /svncheck/
# svnadmin create /svncheck/
6、配置SVN
打开/usr/local/Apache/conf/下的httpd.conf开始配置SVN和Apache一起工作
Dav svn
SVNPath /svncheck/
这样设置是最简单的设置,任何人对你的存储仓库都有读写权限,如果想必须登陆才能读写,这样修改Apache的权限:
申请一个用户wangrui并为其设置密码
>htpasswd -c –m /svncheck/htpasswd wangrui
New passwd:*******
Re-type new passwd:*******
Adding passwd for user wangrui
Conf中的权限修改改为:
DAV svn
SVNPath /home/svncheck/
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svncheckhtpasswd
Require Valid-user
此时只有在Server机上申请的用户才能查看和更新SVN文件。
最常见设置是可以匿名读,但是只有登陆才能写的设置,那么可以将设置改成这样
DAV svn
SVNPath /home/svncheck/
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/svncheckhtpasswd
Require Valid-user
7、设置基于路径的安全性
只要mod_authz_svn模块正确安装,Apache还可以设置基于路径的安全性,试用它可以把访问限制在项目仓库中的某些目录
在/svncheck目录下新建一个authz文件
需要在你的httpd.conf中加入如下字段
AuthzSVNAccessFile /svncheck/authz
打开你建立的authz文件,写入:
[/svncheck]
wangrui = rw
wangrui1 = r
wangrui2 =
[/svncheck/trunk]
wangrui = rw
*= r
以上的意思是在/svncheck下用户wangrui是既可读又可写的,wangrui1是只可读的,wangrui2是既不可读又不可写的;在/svncheck/trunk中,wangrui是既可读又可写的,剩下的所有用户是只读的。
8.最后一步!修改SVN和Apache的用户和组使其一致
打开你的httpd.conf ,观察里面有如下字段:
User daemon
Group daemon
在命令行下输入如下字段确保SVN和Apache的用户组一致,否则很容易出现只能读不能写的问题:
>chown –R daemon:daemon /svncheck/
>/usr/local/Apache/bin/Apachectl stop
>/usr/local/Apache/bin/Apachectl start
全部工作完成了,接下来打开你的浏览器,输入http:// Server机的IP/svncheck,看到类似下面的内容证明服务器端架设成功!
Revision 0:/
Powered by Subversion version 1.5.2
Windows客户端需要安装SVN for Windows的MSI安装包和软件TortoiseSVN。请到自行下载。
本次开发的软件是Setup-Subversion-1.5.2.en-us.msi和TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi
在Windows客户端先安装Subversion再安装TortoiseSVN,只读SVN内容可以在浏览器输入http:// ServerIP/仓库名称,如需下载到本地更新或编辑则需用TortoiseSVN软件进行操作。
在本地新建一个工作目录文件夹,右键点击,选择Checkout可checkout到本地工作目录,点击Update可以更新到服务端最新的库版本。如果添加或修改后提交,可选择Commit进行对库进行提交操作。