Svn 安装
再讲述SVN的安装步骤时,先了解一下svn的工作原理
我们用一个小小的例子,引出svn;如果有一个项目,需要多个人员共同开发,但这些开发人员并不在一个地方,那如何来完成这个项目呢,每一个项目人员对一些文件或者程序的更改,如何能更快的被其他项目人员获得呢?这时候我们就需要一款管理项目开发程序的管理软件了,可是如何解决项目程序的同步问题、安全问题、以及管理问题呢?
SVN是近期崛起的一款管理软件,是csv的接班人,目前较多开源软件都是用svn作为管理软件
SVN的基本工作思路:在一台server上搭建一个源代码库,库里可以存放许多不同的源程序,由源代码库管理员统一管理这些源程序,每一个用户在使用这些源程序时,都需要将源代码库里的文件下载到本地,之后开发人员可以在本地进行修改,修改后用svn的命令提交,再由源代码库统一管理修改
解决的问题:
代码管理混乱
解决代码冲突管理困难
在代码整合期间引起bug
无法对拥有者进行适当的权限控制
项目不同,版本的发布困难
现在来讲解一些svn的安装步骤:
在这里不仅仅会介绍svn的安装,还会介绍一些配置,以及在win客户端下的使用
我现在是在centos 5.3版本上安装的,你前期需要准备的是有gcc这个编译器,最好能搭建一个YUM,这样可以帮你解决在安装过程中,缺少一些包的问题,本地源服务器YUM的安装,可参考:
http://1413570.blog.51cto.com/1403570/631226
接下来就开始我们的辛酸之旅,途中会遇到很多困难哦,加油吧!
先下载两个包,
subversion-1.7.2.tar.gz
subversion-deps-1.6.1.tar.gz
这两个包,可以从http://down.51cto.com/data/314148 下载
解压:
tar -zxvf subversion-1.7.2.tar.gz
tar -zxvf subversion-deps-1.6.1.tar.gz
进入目录,准备编译安装:
[root@localhost software]# cd subversion-1.7.2
[root@localhost subversion-1.7.2]#  指定安装的路径是在home下面,zlib需要zlib-devel- ,查了一下这个包是FSFS文件系统用到的包
安装遇到的第一个error,
checking for APR... no
configure: WARNING: APR not found
The Apache Portable Runtime (APR) library cannot be found.
Please install APR on this system and supply the appropriate
--with-apr option to 'configure'
解决办法:
到tar -zxvf subversion-deps-1.6.1.tar.gz 解压的目录下,有一个apr的文件夹,放到subversion-1.7.2下即可
[root@localhost subversion-1.7.2]# cp -rf ../subversion-1.6.1/apr .
Ok,再重新执行./configure 命令
遇到第二个error:
checking APR version... 1.3.3
configure: Apache Portable Runtime Utility (APRUTIL) library configuration
checking for APR-util... no
configure: WARNING: APRUTIL not found
The Apache Portable Runtime Utility (APRUTIL) library cannot be found.
Either install APRUTIL on this system and supply the appropriate
提示的是apache的端口没有找到,因为此安装并没有与apache结合,到tar -zxvf subversion-deps-1.6.1.tar.gz 解压的目录下,发现有一个 APR-util,再移动到ubversion-1.7.2下
重新执行./configure 命令
Ok,遇到第三个error,
checking sqlite library version (via pkg-config)... no

An appropriate version of sqlite could not be found.  We recommmend
3.7.6.3, but require at least 3.6.18.
错误有提示:解决办法
get the sqlite 3.7.6.3 amalgamation from:
    http://www.sqlite.org/sqlite-amalgamation-3.7.6.3.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/home/software/subversion-1.7.2/sqlite-amalgamation/sqlite3.c
下载这个包,解压,将sqlite3.c放到指定的位置
http://down.51cto.com/data/314253
下载,解压
unzip sqlite-amalgamation-3070900.zip
[root@localhost software]# mkdir -p subversion-1.7.2/sqlite-amalgamation
[root@localhost software]# cd sqlite-amalgamation-3070900
[root@localhost sqlite-amalgamation-3070900]# cp sqlite3.c  ../subversion-1.7.2/sqlite-amalgamation/
之後重新執行./configure
见到这表示。、config执行ok
checking for ctypesgen.py... none
configure: creating ./config.status
config.status: creating Makefile
config.status: creating tools/backup/hot-backup.py
config.status: creating tools/hook-scripts/commit-access-control.pl
config.status: creating subversion/bindings/swig/perl/native/Makefile.PL
config.status: creating subversion/svn_private_config.h.tmp
config.status: executing libtool commands
config.status: executing svn_private_config.h.tmp commands
[root@localhost subversion-1.7.2]# make clean[
root@localhost subversion-1.7.2]# make && make install
只要没有遇到error,就是ok的,
cd subversion/po ; /usr/bin/install -c -m 644 zh_TW.mo /home/svn/share/locale/zh_TW/LC_MESSAGES/subversion.mo
test -d /home/svn/include/subversion-1 || \
          /usr/bin/install -c -d /home/svn/include/subversion-1
(subversion/svnversion/svnversion . 2> /dev/null ||  \
         svnversion . 2> /dev/null ||                        \
         echo "unknown";                                                 \
        ) > /home/svn/include/subversion-1/svn-revision.txt
[root@localhost subversion-1.7.2]#
现在在home下面可以找到svn这个目录,说明我们的安装已经结束,[root@localhost home]# cd svn/
[root@localhost svn]# ls
bin  build-1  include  lib  share
[root@localhost svn]# pwd
/home/svn
[root@localhost svn]#
要让系统找到这些命令还需要将这些命令添加到系统的环境变量中。 操作为
Vi  /etc/profile
找到export PATH
export PATH=/home/svn/bin:$PATH  USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
命令:[root@localhost bin]# source  /etc/profile
让profile文件生效
[root@localhost bin]# svnserve --version
svnserve,版本 1.7.2 (r1207936)
   编译于 Dec 29 2011,17:17:19
安装ok
下面继续讲解的是如何去配置svn以及win 客户端如何去
本次操作沿用为每个项目单独建一版本库的策略,配置文件、认证、密码等都放到版本库下面,所以每一次开始一个新的项目的时候,都需要为项目新建一个版本库,并且需要重新配置相关文件,而且,在客户端上,也是需要重新指定版本库路
本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)  
[root@localhost home]# mkdir -p /home/svndata/repo
  建立svn版本库(与上面目录对应)
svnadmin create /home/svndata/repo/
执行此命令后svn自动在repos目录下添加必须的配置文件,可以查看下
修改版本库文件
进入到/home/svndata/repo/conf目录下,之前有讲过/home/svndata/repo目录
[general] anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = /home/svndata/repo/conf/password # 指明密码文件路径
authz-db = /home/svndata/repo/conf/authz.# 访问控制文件
realm = /home/svndata/repo # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。 其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.  指令简介:这是svn配置文件的格式,请按照以上格式书写。
配置用户 vi /home/svndata/repo/passwd  #加用户名和密码

[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
wwb = biao_123
5 配置权限/home/svndata/repo/conf/authz文件
此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,
[/sa]
##[sa]指的是本地库文件,之后会介绍
admin = rw
wwb = r
启动服务 执行svnserve –d –r /home/svndata/repo这是小团队项目的推荐方法. 这种方法维护最少, 配置最简单. 指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。 使用以下命令检出:(svnserver方式) svn checkout svn://127.0.0.1/dir 以上为示例。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。 版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。 另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。
启动:
[root@localhost conf]# svnserve  -d -r /home/svndata/repo/
[root@localhost conf]# netstat -antp | grep svn
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      6397/svnserve  
端口默认是3690,需要在防火墙配置文件中,[root@localhost conf]# vi /etc/sysconfig/iptables添加3690端口
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3690  -j ACCEPT
[root@localhost conf]# service iptables restart    重启iptables
查看iptables规则链
14   ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:svn
Ok,目前配置已经结束,下面就看如何在win下配置客户端
在win下下载TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi客户端,安装
在win下的硬盘下,配置本地库


连上就ok了