linux下SVN的安装、配置详解

简介:

Svn 安装

再讲述SVN的安装步骤时,先了解一下svn的工作原理

我们用一个小小的例子,引出svn;如果有一个项目,需要多个人员共同开发,但这些开发人员并不在一个地方,那如何来完成这个项目呢,每一个项目人员对一些文件或者程序的更改,如何能更快的被其他项目人员获得呢?这时候我们就需要一款管理项目开发程序的管理软件了,可是如何解决项目程序的同步问题、安全问题、以及管理问题呢?

SVN是近期崛起的一款管理软件,是csv的接班人,目前较多开源软件都是用svn作为管理软件

SVN的基本工作思路:在一台server上搭建一个源代码库,库里可以存放许多不同的源程序,由源代码库管理员统一管理这些源程序,每一个用户在使用这些源程序时,都需要将源代码库里的文件下载到本地,之后开发人员可以在本地进行修改,修改后用svn的命令提交,再由源代码库统一管理修改

解决的问题:

1.代码管理混乱

2.解决代码冲突管理困难

3.在代码整合期间引起bug

4.无法对拥有者进行适当的权限控制

5.项目不同,版本的发布困难

现在来讲解一些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 客户端如何去

本次操作沿用为每个项目单独建一版本库的策略,配置文件、认证、密码等都放到版本库下面,所以每一次开始一个新的项目的时候,都需要为项目新建一个版本库,并且需要重新配置相关文件,而且,在客户端上,也是需要重新指定版本库路

1. 本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)  

[root@localhost home]# mkdir -p /home/svndata/repo

2.   建立svn版本库(与上面目录对应)

svnadmin create /home/svndata/repo/

执行此命令后svn自动在repos目录下添加必须的配置文件,可以查看下

3. 修改版本库文件

进入到/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配置文件的格式,请按照以上格式书写。

4.  配置用户 vi /home/svndata/repo/passwd  #加用户名和密码

[users]

# harry = harryssecret

# sally = sallyssecret

admin = admin

wwb = biao_123

配置权限/home/svndata/repo/conf/authz文件

此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,

[/sa]

##[sa]指的是本地库文件,之后会介绍

admin = rw

wwb = r

6. 启动服务 执行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下的硬盘下,配置本地库

svn://ip/sa

连上就ok了






      本文转自天真花语  51CTO博客,原文链接:http://blog.51cto.com/caibird/754221,如需转载请自行联系原作者


相关文章
|
3天前
|
Oracle Java 关系型数据库
Linux环境安装配置JDK11
Linux环境安装配置JDK11
26 0
|
3天前
|
负载均衡 Java 应用服务中间件
nginx安装在linux上
nginx安装在linux上
26 2
|
6天前
|
Linux 开发工具 C语言
Linux 安装 gcc 编译运行 C程序
Linux 安装 gcc 编译运行 C程序
27 0
|
6天前
|
Ubuntu Linux Python
Linux(15)Ubuntu安装ninja构建工具
Linux(15)Ubuntu安装ninja构建工具
16 0
|
9天前
|
NoSQL Linux 测试技术
Redis的安装(Linux版)
Redis的安装(Linux版)
157 1
|
3天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
17 2
|
3天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
16 1
|
4天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
43 2
|
5天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
35 1
|
5天前
|
运维 网络协议 Linux
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
43 1