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,如需转载请自行联系原作者


相关文章
|
6天前
|
Java Linux Maven
Linux环境下maven的安装
Linux环境下maven的安装
16 0
|
7天前
|
Unix Linux
Linux/FreeBSD 安装
在Linux/FreeBSD上安装Julia 1.7.2的步骤:从[官方](https://julialang-s3.julialang.org/bin/linux/x64/1.7/julia-1.7.2-linux-x86_64.tar.gz)或[Tsinghua镜像](https://mirrors.tuna.tsinghua.edu.cn/julia-releases/bin/linux/x86/1.7/julia-1.7.2-linux-i686.tar.gz)下载二进制包,然后使用`tar`解压。
|
1天前
|
资源调度 JavaScript Ubuntu
Yarn介绍及快速安装Debian/Ubuntu Linux
现在,你已经成功安装了Yarn,可以在你的JavaScript项目中使用它来管理依赖。
16 3
|
5天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
6天前
|
Linux Python Windows
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
|
6天前
|
Ubuntu Linux 开发工具
【专栏】如何在 Linux 上安装和使用 exa?
【4月更文挑战第28天】在Linux上,exa是一个现代化的文件管理系统替代工具,提供直观的文件信息展示。要安装exa,可以在基于Debian的系统(如Ubuntu)上运行`sudo apt install exa`,基于RedHat(如CentOS)的系统运行`sudo yum install exa`,或从源代码编译安装。使用exa的基本命令是`exa`,它列出当前目录的文件和目录。通过选项如`-F`(显示文件类型)、`-h`(人类可读大小)、`-l`(详细信息)和`-s`(排序)可以定制输出。exa还能与其他命令(如grep)结合使用,提升效率。
|
6天前
|
存储 监控 Linux
【专栏】如何在 Linux 中列出已安装的驱动器?
【4月更文挑战第28天】在 Linux 中,了解已安装驱动器是系统管理的关键。本文介绍了三种方法:1) 使用 `lsblk` 命令显示设备名、大小和类型;2) `fdisk -l` 命令提供详细分区信息;3) `gnome-disks` 等系统管理工具展示驱动器信息。此外,还讨论了驱动器类型识别、挂载点概念及其应用。通过这些方法,用户能有效地监控和管理 Linux 系统中的驱动器。
|
6天前
|
存储 安全 数据管理
【专栏】如何在 Rocky Linux 8 上安装和配置 Elasticsearch
【4月更文挑战第28天】本文指导在Rocky Linux 8上安装配置Elasticsearch,包括添加仓库,运行`yum install elasticsearch`进行安装,修改配置文件如`cluster.name`和`network.host`,启动服务并验证其正常运行。同时,文章提及了内存、文件描述符设置及安全配置,并列出常见问题及解决方法,帮助用户成功搭建Elasticsearch。
|
6天前
|
Linux 网络安全 Docker
【Linux】-docker配置容器并打包成镜像
【Linux】-docker配置容器并打包成镜像
|
7天前
|
网络协议 Linux 开发工具