7-下SVN的安装及基础配置介绍-CentOS

教程大全 2025-07-17 18:16:46 浏览

CentOS 7 下SVN的安装及基础配置介绍

一、实践环境二、安装操作系统三、安装SVN四、基础配置五、启动SVN六、客户端访问七、常见问题排查

一、实践环境

CentOS 7操作系统(CentOS-7-x86_64-DVD-1503-01.iso)

下载地址

二、安装操作系统

软件选择(SOFTWARE SELECTION):

三、安装SVN

[root@localhost ~]# yum install subversion

查看是否安装安装成功

[root@localhost ~]# svnserve –version

svnserve, version 1.7.14 (r1542130)

compiled Jun 9 2014, 18:54:44

Copyright (C) 2013 The Apache Software Foundation.

This software consists of contributions made by many people; see the NOTICE

file for more information.

Subversion is open source software, see

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.

* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

四、基础配置

创建一个空文件夹,例如 svn,作为所有版本库的根目录

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

进入svn目录,创建版本库,比如 repo

[root@localhost ~]# cd /svn/

[root@localhost svn]# svnadmin create –fs-type fsfs repo

# 查看repo目录文件

[root@localhost svn]# cd repo/

[root@localhost repo]# ls

conf db format hooks locks README.txt

[root@localhost repo]# cd conf/

[root@localhost conf]# ls

authz passwd svnserve.conf

文件说明:

1、svnserve.conf文件

该文件用于控制svnserve守护进程(svnserve daemon)的配置,以便访问svn版本库。如果仅是通过 http:// 或者file:URLs方式访问版本库,则与该文件配置不起作用。

[general]结点

anon-access(匿名访问)和auth-access(认证访问)选项,分别用于控制未认证用户和与认证用户对svn版本库的访问,其可选值包含 write,read,none,如果设置为none则无对版本库的读写访问权限;设置为write则有可读可写权限;设置为read则只有读权限。

password-db用于控制密码数据库文件的位置,除非指定了一个带符号‘/’ 的路径,否则文件的位置为包含该配置文件的相对路径,如果开启了SASL,则该文件配置不起作用。

authz-db选项控制基于路径访问控制的认证规则的位置。除非指定了带‘/’的路径,否则该文件位置为包含该配置文件的相对位置。如果不指定authz-db,则没有基于路径的访问控制。

realm 选项指定了版本库的认证域(authentication realm)。如果两个版本库有同样的认认证域(authentication realm),他们应该有相同的密码数据库,反之亦然。缺省的 realm为版本库的uuid

force-username-case 选项,在authz-db文件配置的规则下,让svnserve比较用户名之前,规范化用户名大小写(case-normalize)。合法值有 lowser 转小写;upper转大写;none采用默认的,不进行大小写转化。

下SVN的安装及基础配置介绍

[sasl]结点

用于指定是否为认证使用 Cyrus SASL类库。默认的false。如果svnserve不带Cyrus SASL支持编译的,那么该小节会被忽略。运行’svnserve –version,查找如下行’Cyrus SASL authentication is available.’则表示支持。

该选项指定了想让SASL提供的安全级别,0表示加密,1表示仅集成检查,大于1的的值是和用于加密的有效密匙长度相关的。 (e.g. 128 代表 128-bit加密). 默认值如下

# min-encryption = 0

# max-encryption = 256

2、password文件

该文件为svnserve密码文件实例,每行代表一个svn用户账户

用户名1 = 用户密码1

用户名2 = 用户密码2

用户名n = 用户密码n

3、authz文件

该文件为svnserve认证实例文件,定义路径和版本库(可选)的认证

其中每一行记录可能代表

1)单个用户

2)定义的一组用户([groups]节点中定义的

3)定义的一个别名([aliases]节点中定义的

4)使用$authenticated token的所有认证用户

5)仅使用$anonymous token的匿名用户

6)* 任何人

暂时只知道是设置别名,但是具体是怎么定义的,不是很清楚,先不管吧

自定义分组名1 = 用户1,用户2,……

自定义分组名2 = 用户3,用户4,……

自定义分组名n = 用户n1,用户n2,……

说明:用户名之间用英文逗号分隔

[repository_name:dir_path]

用户名1 = 权限1

用户名2 = 权限2

用户名n = 权限n

@自定义分组名1 = 权限1

@自定义分组名2 = 权限2

@自定义分组名n = 权限n

&别名1 = 权限1

&别名2 = 权限2

&别名n = 权限n

* = 权限

[dir_path]

用户名1 = 权限1

用户名2 = 权限2

用户名n = 权限n

@自定义分组名1 = 权限1

@自定义分组名2 = 权限2

@自定义分组名n = 权限n

&别名1 = 权限1

&别名2 = 权限2

&别名n = 权限n

* = 权限

说明:

1) [repository_name:dir_path]表示名为repository_name的版本库的dir_path目录,比如 [repo:/]表示repo版本的库的根目录

举例:

svn版本库目录结构为:/svn/repo,,其中/svn为所有版本库的根,repo为其中一个版本库名称,启动方式:svnserve -d -r /svn/,

那么可以如下设置

[repo:/] /代表 /svn/

[repo:/test1]

[repo:/test1/test2]

如果只有一个版本库,等效做法如下

[/test1/test2]

其中,test1,test2都是通过svn客户端创建的目录

3) 权限可为r、w、rw,分别代表只可读,只可写,可读可写,这里r、w、rw只针对dir_path最后层级的目录生效

例:

[repo:/test1/test2]

那么svn:192.168.1.103/test1 进行访问,会提示认证失败

4) 别名,用户名,自定义分组不分先后顺序

5) * = 权限,如果无任何权限则不填写,直接 * = ,这里,*表示除了指定的用户,自定义分组,别名之外的任何人

修改svnserve.conf配置

[root@localhost conf]# vim svnserve.conf

找到如下内容

……(略)

# anon-access = read

# auth-access = write

改成如下内容

……(略)

anon-access = none

auth-access = write

找到如下内容

#password-db = passwd

改成如下内容

password-db = password

找到如下内容

# authz-db = authz

改成如下内容

authz-db = authz

找到如下内容

……(略)

# use-sasl = true

改成如下内容

……(略)

use-sasl = true

新增svn用户

[root@localhost conf]# useradd shouke

[root@localhost conf]# passwd shouke

Changing password for user shouke.

New password:

BAD PASSWORD: The password is shorter than 8 characters

Retype new password:

passwd: all authentication tokens updated successfully.

[root@localhost conf]# vim passwd

说明:用户密码 123456

修改password配置文件

找到如下内容,

# harry = harryssecret

# sally = sallyssecret

在其下新增带背景色内容,如下

# harry = harryssecret

# sally = sallyssecret

shouke=123456

修改authz配置文件

[root@localhost conf]# vim authz

……(略)

找到如下内容

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

在其下新增一行内容,如下

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

group1 = shouke

找到如下内容

# [repository:/baz/fuz]

# @harry_and_sally = rw

在其下新增内容,如下

# [repository:/baz/fuz]

# @harry_and_sally = rw

@group1 = rw

五、启动SVN

[root@localhost conf]# svnserve -d -r /svn/

说明:-d 表示以daemon的方式运行,-r dir_path 表示把dir_path当作版本库的根目录,比如/svn/repo,svn://192.168.1.103/repo,访问的就是/svn/repo

查看

[root@localhost conf]# netstat -antp | grep svn

tcp 00 0.0.0.0:36900.0.0.0:* LISTEN 8474/svnserve

说明:如上,默认端口为3690

六、客户端访问

测试客户端版本:TortoiseSVN-1.9.1.26747-win32-svn-1.9.1.1441852914.msi

七、常见问题排查

1.Unable to connect to repository at url ‘svn://…’ No repositroy found at snv://……,如下

说明:访问方式不对,

1)类似svnserve -d -r /svn/ 方式(即指定路径作为根目录)开启的svn服务,正确的访问方式svn://192.168.1.103/repo 即svn://ip[:port]/repository_name

2)不指定路径作为版本库的跟目录里,svnserve -d 方式开启的svn服务,正确的访问方式svn://192.168.1.103/svn/repo 即svn://[:port]/path_of_repository

2、 please wait while the repository browser is initializing

说明:防火墙阻止了端口,解决方法(centos7下测试),开放端口

[root@localhost conf]# firewall-cmd –permanent –zone=public –add-port=3690/tcp

[root@localhost conf]# firewall-cmd –reload

3、类似如下,目标计算机积极拒绝或者

说明: 服务器 svnserve未开启.


如何为CentOS 7配置静态IP地址

首先用ifconfig命令看一下你的网卡的名字和mac地下,假设名字为eth0mac为 ab:54:00:e4:c9:99编辑下面的文件(如,没有就新建)vim /etc/sysconfig/network-scripts/ifcfg-etho输入以下内容TYPE=EthernetBOOTProTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noipv6INIT=noIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noNAME=上面查到的名字如eth0ONBOOT=yesIPADDR0=你的IPPREFIX0=你子网掩码GATEWAY0=你的网关ip地址DNS1=你的DNS(如果不知道可不写这一条)IPV6_PEERDNS=yesIPV6_PEERROUTES=yesHWADDR=(你的网卡的mac如ab:54:00:e4:c9:99)

如何在DOS里使用SVN呢?

进行完apache和svn的配置后,下面讲一下如何使用svn:创建版本库你可以使用 FSFS 或较老的 Berkeley 数据库(BDB)作为版本库的后端,FSFS 格式通常更快一点,还容易管理,而且可以正常运行在网络共享磁盘上 或 windows 98 中。 BDB 格式曾经简单的被认为更加稳定,因为其经过了更长时间的验证,但是既然 FSFS 已经使用了几年,这个论据已经相当不牢固了。 参考 Subversion 手册的 选择数据存储 以获得更多信息。 使用命令行工具创建版本库1.创建一个名为SVN(例如D:\SVN\)的空文件夹,作为你的所有版本库的根。 2.在D:\SVN\里创建另一个目录MyNewRepository。 3.打开命令行窗口(或DOS窗口),进入D:\SVN\目录,输入svnadmin create --fs-type bdb MyNewRepository或svnadmin create --fs-type fsfs MyNewRepository现在你在D:\SVN\MyNewRepository创建了一个新的版本库。 下面进行数据导入D:\lj>svn import file:///d:/svn/mynewrepository -m Initial import.增加 user_提交后的版本为 1。

如何通过SVN进行协同设计

1、安装svn客户端svn工具凡是有开发经验的人员都比较熟悉,他主要是用来管理代码和文档版本,跟git的分布式管理工具是有区别的根据自己的操作系统选择是64或者32位的,具体安装过程自行网络。 2、创建一个svn目录这里我以一个托管平台为示例,一般每个公司都有自己的svn服务器3、创建team project填写svn地址和工程名称及本地路径创建成功后,列表左侧的图标多了一个正方形显示。 svn目录对应的结构会生成如下目录结构,不用关心,也不要修改此目录下的东西4、获取team project验证另外一个用户是否能够同步原型目录,重新打开Axure软件,空白页面点击获取项目填写刚新建的svn地址并且已经更换目录了,如果本地没有保存过svn用户名密码,会提示用户名密码,因为我是已经保存了svn用户名密码,所以没有提示输入svn用户名密码的截图。 到此处我们已经创建好项目并且已经模拟另外一个用户获取团队项目。 5、签入签出平时工作的时候就需要像我们熟悉的svn单个文件签入签出,如果要修改文件必须先签出。 签出之后图标会变成绿色,并且可以修改文件修改之后再签入,会跟平时使用svn一样填写commit。 6、获取修改后的最新文件此处是单个文件获取,我们也可以获取整个目录,在文件修改比较多的情况下获取。 7、查看历史记录同样我们也可以像svn一样查看修改的历史记录点击上面的Browse Team Project History ,即可查看到历史记录。 其他类似svn的功能就不再继续举例了。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐