51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Centos6.5搭建SVN服务端完整配置

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。

运行方式:svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择

svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

安装了一下SVN服务器,本文没有与Apache整合,过程如下:

一、下载相应的软件

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz
[root@localhost src]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz

二、安装及配置

1、解压,要在同一个目录下:

[root@localhost src]# tar zxvf subversion-1.6.1.tar.gz
[root@localhost src]# tar zxvf subversion-deps-1.6.1.tar.gz

2、编译及安装

[root@localhost src]# yum -y install gcc-c++
[root@localhost src]# yum -y install openssl-devel
[root@localhost src]# yum -y install expat
[root@localhost src]# cd subversion-1.6.1
[root@localhost subversion-1.6.1]# ./configure
Centos6.5搭建SVN服务端完整配置_https://www.tiejiang.org_Linux安全运维_第1张
出现这个的时候代表 安装成功了!
成功后执行下列操作!
[root@localhost subversion-1.6.1]# ./configure --prefix=/usr/local/svn/
[root@localhost subversion-1.6.1]# make && make install

3、把SVN相关的命令添加到环境变量中:

[root@localhost subversion-1.6.1]# echo "export PATH=$PATH:/usr/local/svn/bin/">> /etc/profile
[root@localhost subversion-1.6.1]# source /etc/profile
[root@localhost subversion-1.6.1]# cd /usr/local/svn/
[root@localhost svn]# ls
bin build-1 include lib share
[root@localhost svn]# /usr/local/svn/bin/svnserve --version 查看SVN版本信息,出现版本信息为正确!

三、建立测试仓库

1、建立SVN的根目录,研发中心有多个项目部。

[root@localhost svn]# mkdir -p /opt/svn/

2、建立一个测试仓库

[root@localhost svn]# mkdir -p /opt/svn/svntest/
[root@localhost svn]# svnadmin create /opt/svn/svntest/

3、修改配置文件

[root@localhost svn]# cd /opt/svn/svntest/conf
[root@localhost conf]# vim svnserve.conf #修改svn配置文件
Centos6.5搭建SVN服务端完整配置_https://www.tiejiang.org_Linux安全运维_第2张
以上语句都必须顶格,左侧不能留空格,否则会出错!
[root@localhost conf]# vim passwd
Centos6.5搭建SVN服务端完整配置_https://www.tiejiang.org_Linux安全运维_第3张
用户名 = 密码
这样我们就建立了hl8031用户,tiejiang为登陆密码。
以上语句都必须顶格,左侧不能留空格,否则会出错!
[root@localhost conf]# vim authz
Centos6.5搭建SVN服务端完整配置_https://www.tiejiang.org_Linux安全运维_第4张

将用户添加到组,利用组来设置权限,也可以不需要租,直接在版本库下设置用户,例如

aaa = r ,意思是aaa用户对svntest测试库下所有的目录有读权限,而hello和www有读写权限。
如果是自己用,就直接是读写吧。
以上语句都必须顶格,左侧不能留空格,否则会出错!
[root@localhost conf]# svnserve -d -r /opt/svn/svntest/ #启动SVN的测试库

如果已经有svn在运行,可以换一个端口运行:[root@localhost conf]# svnserve -d -r /opt/svn/ --listen-port 3391

四、启动服务器及测试:

1、启动SVN服务,并指定SVN的根目录:

[root@localhost conf]# netstat -apn | grep svn 首先查看一下端口3069是否被占用。
[root@localhost conf]# svnserve -d -r /opt/svn/
在这里特别的要注意,/opt/svn是仓库的根目录,不要和[svntest:/]目录重叠了。如果重叠是会提示错误
[root@localhost conf]# svn co svn://127.0.0.1/svntest #在本机上测试SVN是否生效!
Centos6.5搭建SVN服务端完整配置_https://www.tiejiang.org_Linux安全运维_第5张
认证领域: <svn://127.0.0.1:3690>ed4c06a0-3c8f-11e3-b7ad-e704fa0b2aec
用户名: hl8031

"hl8031"的密码:

-----------------------------------------------------------------------

注意! 你的密码,对于认证域:

<svn://127.0.0.1:3690> ed4c06a0-3c8f-11e3-b7ad-e704fa0b2aec

只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在"/root/.subversion/servers"中设置选项"store-plaintext-passwords"为"yes"或"no",

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?y

请输入 'yes' 或 'no': yes

取出版本 1。

不让它每次输入都提示yes/no的办法:

vim /root/.subversion/servers 找到下行去掉#号将on改为yes,上面绿色部分已提示 store-plaintext-passwords = no

2、服务已经正常起来:

[root@localhost conf]# netstat -anpl | grep svn
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 15015/svnserve
到此,SVN服务端就配置完成了!

五、Linux SVN客户端配置

1、检查以安装版本

[root@localhost ~]# rpm -qa subversion #检查是否安装了低版本的SVN
[root@localhost ~]# yum remove subversion #如果存放旧版本,卸载旧版本SVN

2、安装SVN

[root@localhost ~]# yum install subversion -y

3、验证安装

[root@localhost ~]# svnserve --version #检查已经安装的SVN版本信息

4、SVN客户端下载文件

[root@localhost ~]# mkdir /svn
[root@localhost ~]# cd /svn/
[root@localhost svn]# svn checkoutsvn://192.168.163.7/svntest #输入用户名和密码
注:可以使用带用户名和密码的访问:
[root@localhost svn]# svn co --username hl8031 --password tiejiang svn://192.168.163.7/svntest

5、SVN版本库更新

[root@localhost ~]# svn up /svn/repo

6、上传到服务器

[root@localhost ~]# touch /svn/repo/test.php
[root@localhost ~]# svn add /svn/repo/test.php

7、删除服务器上的文件

[root@localhost ~]# svn rm /svn/repo/test.php --force

8、查看版本库内容

[root@localhost ~]# svn list /svn/repo/
到此,SVN客户端就配置完成了!

创建版本库:

终端输入:svnadmin create [路径]
该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。

将文件导入版本库:

终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
例如将当前目录导入版本库myproject:
svn import . file:///home/user/svn/myproject -m"导入文件"

从版本库导出:

导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径]
例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .

赞(0)
未经允许不得转载:工具盒子 » Centos6.5搭建SVN服务端完整配置