SVN的安装配置(linux)

转载自  http://gavinshaw.blog.51cto.com/385947/277489

虽然说是SVN系列,但是想要真正的理解一个前人花费多年时间去做的一个工程,并不是短时间之内可以做到的!还有就是看别人的文章 终究不及自己做一遍来的深刻,
另外要说的一点就是,人们写的文章只能作为参考,权威的,还是官方的文档.(一点写在前面的废话!)
当然了了解一个事物,最好的莫过于搞一个来自己动手摸索.就像是当初接触linux的时候一样,让我看了半天的那一大堆命令,还不如在自己的机器上敲个十遍!(当然说的只是初步的接触,深入的了解 看文档还是必须的!)
扯淡多了会上瘾,为了不上瘾,开始吧!
准备工作:
  一套操作系统(linux)  连接的网络  (没有的话下载的软件包(源码包,rpm包,)也成),源码的下载地址.
在这里插一句话,关于编译安装和rpm软件包安装,个人觉得如果没有什么特殊需求的话,没有必要自己编译安装,既耗时间又耗费精力,编译完了时间一久,自己都不知道放哪边去了.
  所以我选择最简单,也是比较规范的一种安装方式 yum安装(redhat系列).
[root@server ~]# yum install -y subversion-*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
c5-media                                                 | 2.1 kB     00:00    
Setting up Install Process
Package subversion-1.4.2-4.el5_3.1.i386 already installed and latest version
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
.
.
.
Dependencies Resolved
================================================================================
Package                 Arch       Version                Repository      Size
================================================================================
Installing:
subversion-devel        i386       1.4.2-4.el5_3.1        c5-media       199 k
subversion-javahl       i386       1.4.2-4.el5_3.1        c5-media       124 k
subversion-perl         i386       1.4.2-4.el5_3.1        c5-media       753 k
subversion-ruby         i386       1.4.2-4.el5_3.1        c5-media       339 k
Installing for dependencies:
apr-devel               i386       1.2.7-11.el5_3.1       c5-media       231 k
apr-util-devel          i386       1.2.7-7.el5_3.2        c5-media        53 k
ruby-libs               i386       1.8.5-5.el5_3.7        c5-media       1.6 M
Transaction Summary
================================================================================
Install      7 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        
Total download size: 3.3 M
Downloading Packages:
 .
.
.
--------------------------------------------------------------------------------
Total                                           2.8 MB/s | 3.3 MB     00:01    
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
                                      7/7
Installed:
  subversion-devel.i386 0:1.4.2-4.el5_3.1                                      
  subversion-javahl.i386 0:1.4.2-4.el5_3.1                                     
  subversion-perl.i386 0:1.4.2-4.el5_3.1                                       
  subversion-ruby.i386 0:1.4.2-4.el5_3.1                                       
Dependency Installed:
  apr-devel.i386 0:1.2.7-11.el5_3.1    apr-util-devel.i386 0:1.2.7-7.el5_3.2  
  ruby-libs.i386 0:1.8.5-5.el5_3.7   
Complete!

yum安装到这里,只需要修改几个配置文件就可以使用用了(仅仅是使用),在这里我选用的是svnserver这一种管理方式,为啥呢?
因为设置简单,比WebDAV快,不需要建立系统帐号,不会在网络中传输密码!
当然在配置之前我们要建立一个版本库,可以使用以下命令来建立版本库.

[root@server /]# svnadmin create /opt/svn/repos //创建版本库
[root@server /]# ll -sh /opt/svn/repos/  //查看建立的配置文件
total 56K
8.0K drwxr-xr-x 2 root root 4.0K Feb  2 06:43 conf
8.0K drwxr-xr-x 2 root root 4.0K Feb  2 06:43 dav
8.0K drwxr-sr-x 5 root root 4.0K Feb  2 06:43 db
8.0K -r--r--r-- 1 root root    2 Feb  2 06:43 format
8.0K drwxr-xr-x 2 root root 4.0K Feb  2 06:43 hooks
8.0K drwxr-xr-x 2 root root 4.0K Feb  2 06:43 locks
8.0K -rw-r--r-- 1 root root  229 Feb  2 06:43 README.txt
[root@server /]#

这个命令创建了一个新目录 /opt/svn/repos,并在其中创建了一个 Subversion 版本库。这个目录里主要保存了数据库文件(还有其它一些文件).

假定已经有一些需要导入到 Subversion 版本库的条目(一组文件和目录)。
接下来,我们需要把这些条目整理到一个名为 jadeshow 的目录(或者其它任意目录)里。在这个
目录下,创建三个顶级子目录:branches,tags 和 trunk,(这个只是svn的惯例,你也可以不这么做)。将所有需版本化的数据保存到 trunk
目录下,同时保持 branches 和 tags 目录为空:
/tmp/jadeshow/branches/
/tmp/jadeshow/tags/
/tmp/jadeshow/trunk/
可以使用如下命令导入老的文件
[root@server /]# svn import /tmp/jadeshow/\
file:///opt/svn/repos/jadeshow -m "inital import"
Adding         /tmp/jadeshow/trunk
Adding         /tmp/jadeshow/branches
Adding         /tmp/jadeshow/tags

Committed revision 1.
[root@server /]#
(如果没有的话那么这个layer可以跳过)

接下来我们配置三个文件就可以使用svn了!简单吧。

[root@server conf]# pwd
/opt/svn/repos/conf               //配置文件的主目录
root@server conf]# grep -v "#" passwd   //passwd中起作用的配置

[users]
 jadeshow = jadeshow   //用户名 jadeshow 密码 jadeshow
[root@server conf]# grep -v "#" authz   //认证文件      

[groups]
admin = jadeshow        //jadeshowshow属于admin组

[repos:/]              //repos库根目录的权限
@admin = rw            //@表示组 admin组有读写权限
* = r                  //其他人有读权限
[root@server conf]# grep -v "#" svnserve.conf         


[general]
 anon-access = none
 auth-access = write         
 password-db = passwd         //用户文件     
 authz-db = authz            //认证文件
 realm = /opt/svn/repos       //库所在
[root@server conf]#

配置完成.使用svnserver 启动


[root@server conf]# svnserve -d -r /opt/svn/repos/   //更多的用法可以参见svnserve --help
(检查svn是否启动)

[root@server conf]# netstat -antp |grep svn
tcp        0      0 :::3690                     :::*                        LISTEN      5576/svnserve           //svn已经启动为3690端口
[root@server conf]# ps -ef |grep svn
root      5576     1  0 07:30 ?        00:00:00 svnserve -d -r /opt/svn/repos/       //   其实更安全的办法是使用非root用户来启动.
原文地址:https://www.cnblogs.com/alonones/p/6103100.html