SVN(Subversion)安装全过程

一 svn说明
Subversion是基于APR构建的。APR全称Apache Portable Runtime Library,是一个独立的且移植性很好的程序库,任何应用程序都可以使用它(Apache也是基于APR开发的)。这使得Subversion可以工作在任何可以执行Apache的操作系统上,如windows、Linux、各种BSD、MacOS、NetWare等等。
    Subversion 有两种运行方式,一是可以作为Apache 2.0的一个模块, 以WebDAV/DeltaV协议与外界连通;另外,也可使用Subversion 自带的小型服务器程序。该程序使用的是自带的通讯协议, 可以很容易地透过SSH以tunnel方式使用。
最简单的安装Subversion的方法就是使用其提供的二进制版本(在项目网站上,有RPM、DEB和PORTS等格式的文件下载)。
访问svn的方式有 http、https、svn 、svn+ssh等,我们使用https+证书方式。
二 svn服务器配置(RedHat EL 4 系统)
相关文件:
rpm包:apr-0.9.4-24.5.i386.rpm 、apr-util-0.9.4-21.i386.rpm、neon-0.24.7-4.i386.rpm、perl-URI-1.30-4.noarch.rpm、subversion-1.4.6-0.1.el4.rf.i386.rpm、mod_dav_svn-1.4.6-0.1.el4.rf.i386.rpm;
证书工具:ssl.ca.tar;        //https访问证书制作工具
配置文件:ssl.conf           //ssl访问配置文件
subversion.conf    //svn认证授权配置文件。
(准备工作,需要安装smb服务,并将上述文件都复制到共享目录中)
1         安装RedHat EL操作系统到svn库机器(svnip),安装成功后,查看httpd、apr、apr-util、neon、perl-URI包是否安装,

方式:
#rpm -q httpd
#rpm –q apr
#rpm –q apr-util
#rpm –q neon
#rpm –q perl-URI
如果没有安装,则需要下载相应的rpm包安装后再执行以下操作。
并确认http://svnip/ 或https://svnip  可以访问,即web服务正常运行;

启动httpd服务service httpd start,尝试打开连接
!!!一定要确保https://localhost可以访问后在进行下列步骤

2  安装svn软件
2.1   安装subversion、mod_dav_svn包;
进入之前设置的smb共项目录后,执行如下操作
命令 # rpm – ivh  subversion-1.4.6-0.1.el4.rf.i386.rpm,
     # rpm – ivh  mod_dav_svn-1.4.6-0.1.el4.rf.i386.rpm;

2.2  先将/etc/httpd/conf.d/目录的ssl.conf和subversion.conf文件做个备份,然后复制文件ssl.conf和subversion.conf到目录/etc/httpd/conf.d/,subversion.conf文件是有关svn库基本访问的配置(需根据具体认证选项进行配置)。
进入之前设置的smb共项目录后,执行如下操作
cp ssl.conf /etc/httpd/conf.d/
cp subversion.conf /etc/httpd/conf.d/

3  建立目录 /repository
  #mkdir /repository
#chmod 777 /repository
3.1       建立svn库,
# cd /usr/bin
(svnadmin所在目录/usr/bin/svnadmin)
# ./svnadmin create  /repository/test,test就是具体项目库的名称,可取任意名字,比如Project1。

       
3.2       创建授权目录repository/auth
#cd /repository/
#mkdir auth
#chmod 777 auth

      建立授权用户文件# htpasswd -c  /repository/auth/authfile administrator hello
      (注释:用户名administrator  密码hello)

      #cd /repository/auth/
      # htpasswd –b authfile user pass     //增加用户
      # htpasswd –D authfile user        //删除用户
      建立授权用户访问svn库的权限配置文件/repository/auth/auth.conf,格式如下:
  (建立组或者用户权限时,需要顶格写,中间不要敲空格键,否则会导致用户或组不可用)
   [groups]   //用户组定义
    harry_and_sally = test,test2   //表示harry_and_sally组有成员test、test2
          [test:/]    //test仓库根目录访问权限配置
@harry_and_sally = rw   //前面的@符号表示群组权限设置             test = rw   //test用户对test仓库具有读和写权限

   [test1:/]
windone = rw    //bao用户具有读权限
test2 = r     //test2用户对test2仓库根目录只有读权限
* =      //表示对所有的用户对test2仓库根目录无任何权限
       
3.3       对目录/repository赋予apache用户权限,
#chown -R apache.apache /repository 
#chmod -R 777 /repository
  
4 建立证书,将证书制作工具ssl.ca.tar解压到目录/etc/httpd/conf/ssl.ca
mkdir /etc/httpd/conf/ssl.ca
chmod 777 /etc/httpd/conf/ssl.ca/
tar xvf /opt/share/ssl.ca.tar –C /etc/httpd/conf/ssl.ca/
   4.1  生成根证书,并签署证书 # ./new-root-ca.sh  ...,按照提示进行,最终生成了ca.key和ca.crt两个文件;
   4.2  生成服务器证书# ./new-server-cert.sh server (这个证书的名字是server) ...,按照提示进行,签署服务器证书 # ./sign-server-cert.sh server,...,按照提示进行,最后生成server.crt、server.csr、server.key文件。
   4.3 创建客户端证书# ./new-user-cert.sh amgo (这个证书的名字是user) ...,按照提示进行,签署客户端证书 # ./sign-user-cert.sh amgo,...,按照提示进行,最后生成user.crt、user.csr和user.key文件。
   4.4  生成客户端证书 # ./p12.sh user,生成证书文件user.p12,此证书是svn客户端访问svn服务器认证文件。
      
(将证书通过设置的smb共享复制出服务器,证书文件请放置在客户端上的一个绝对路径中不能含有中文字符的路径下面)。
三 svn客户端安装(TortoiseSVN-1.5.2)
1 软件安装:  按照提示安装即可(TortoiseSVN-1.5.2.13595-win32-svn-1.5.1.msi)。
2 使用手册:  http://svndoc.iusesvn.com/tsvn/1.5/
3使用IE登录,先导入证书,IE—>工具—>选项—>内容—>证书—>导入(注意要选择文件的类型为“个人信息交换(*.pfx、*.p12)”),在IE中输入https://IP/repos/Project1,即可使用浏览器连接上SVN服务器,但只能浏览和下载,不能上传。
4使用TortoiseSVN在终端上先导入证书,后输入正确的用户名和密码即可登录。

四 svn库配置示例
1 登录进入Svn机器:192.168.1.200;
2 假设要在目录 /repository下建立某项目库Project1,则运行建库命令#svnadmin create /repository/ Project1,并赋予项目库目录apache用户权限: # chown -R apache.apache  /repository/;
3 编辑授权文件/repository/auth/auth.conf,增加对RigTMS的用户授权访问,如下:
  [Project1:/]
  Test2 = r
  Dev = rw
  Test = r
  说明:test2 、dev、test都是访问用户,所有用户都必须已在授权用户文件/repository/auth/authfile中建立,若没有建立,则用命令建立:# htpasswd –b /repository/auth/authfile user pass(参考3.2部分)。
4 导入本地文件,假如要导入本地目录“E:\瑞格终端管理系统\v2.0\svn”中的文件入Project1
库,则在目录“E:\ Project1\v2.0\svn”的空白处鼠标右击如下,选择Import



在弹出的对话框中,输入想在Project1库中的目录结构,比如https://192.168.1.200/repos/ Project1/v2.0/svn
 

按【ok】按钮,会弹出认证界面,认证通过后会将当前目录文件入库。






文件导入成功,可以进一步做其它操作了。

具体操作,推荐学习   《SVN book》这本电子书,全面详细地介绍了SVN的功能和使用详解。

你可能感兴趣的:(apache,应用服务器,SVN,IE,subversion)