centos服务器搭建svn

    前段时间给团队内部搭建了一个gitlab服务器,结果很多策划大牛觉得用不习惯,不想改变已有的使用习惯,对Git更是嗤之以鼻,作为小小码农的我不想跟他们争辩什么,顺着他们的需求给整了一套svn系统。庆幸的是配置的过程比较顺利,只花了不到一个小时的时间。写篇博客记录以下吧!

1.安装svn

  • 比较简单一句话搞定.
sudo yum install -y svn

安装完毕之后可以看到如下几个工具:

[root@localhost branches]# ls /usr/bin/svn*
/usr/bin/svn       /usr/bin/svndumpfilter  /usr/bin/svnserve  /usr/bin/svnversion
/usr/bin/svnadmin  /usr/bin/svnlook        /usr/bin/svnsync
  • svn 就是一个客户端管理工具,和git类似,常用的命令:svn常用命令

  • /usr/bin/svnadmin 相当于一个服务端管理工具,用来管理资源仓库本身。

  • /usr/bin/svnserve 这是一个 svn 后台程序(daemon) 类似httpd之于http服务器。

    总结以下,我们需要用到svnadmin工具来创建新的资源仓库,在配置完成资源仓库之后记得要启动svn这项服务,所以要运行svnserver。客户端要从服务器拉取资源就需要svn这个客户端命令行工具。

2. 查看版本

    安装完毕看看版本号

//或者svn --version
[root@localhost branches]# svnserve --version
svnserve,版本 1.6.11 (r934486)
   编译于 Aug 17 201508:37:43

版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用: 

* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

3.新建版本仓库

    svn需要一个仓库来放置所有的版本库,参照官网svnadmin create建立一个版本库:

mkdir -p /var/svn/
svnadmin create /var/svn/repo0

4.配置版本库

[root@localhost conf]# pwd
/var/svn/repo0/conf
[root@localhost conf]# ls
authz  passwd  svnserve.conf
[root@localhost conf]# 

authz: 配置版本库的权限
passwd: 配置用户名和密码
svnserve.conf: 配置svnserve的一些信息

  • passwd新增一个测试用户
[root@localhost conf]# cat passwd 
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
chen.lin = 123456
[root@localhost conf]# 
  • 配置授权信息
[root@localhost conf]# cat authz 
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
demo=chen.lin

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repo0:/MyProject/trunk]
# @demo=r
# @harry_and_sally = rw
# * = r
# [repo0:/MyProject/branches]
@demo=rw

    按照svn的惯例一个标准的版本库应该有三个文件夹:

分支: branches
主干: trunk
标签: tag

注意事项:

  • 在配置完成每个小项之后记得加上*=选项,屏蔽其他用户的权限。
  • repo0:/MyProject/trunk/MyProject/trunk指向的都是当前版本库下对应的文件夹。

5. 启动svn服务器

svnserve -d -r /var/svn
-d表示以daemon模式运行svnserve, -r 表示以/var/svn作为版本仓库的根路径。

也可以直接修改开机自启动脚本/etc/rc.d/init.d/svnserve

6. 牛刀小试

  1. 导入一个项目
$ mkdir MyProject    
$ mkdir MyProject/trunk    
$ mkdir MyProject/branches    
$ mkdir MyProject/tags    
svn import MyProject svn://192.168.1.109/repo0/MyProject -m "first  commit
  1. 导出文件
    测试版本库有一个测试用户默认对branches分支有读写权限
[luncher@localhost branches]$ pwd
/home/luncher/branches
[luncher@localhost branches]$ svn info
路径: .
工作副本根目录: /home/luncher/branches
URL: svn://192.168.0.51/repo0/MyProject/branches
正确的相对 URL: ^/MyProject/branches
版本库根: svn://192.168.0.51/repo0
版本库 UUID: 5bdf8db6-3cf2-45da-9c6d-8c4810c6c629
版本: 4
节点种类: 目录
调度: 正常
最后修改的作者: chen.lin
最后修改的版本: 4
最后修改的时间: 2015-09-10 10:29:45 +0800 (四, 2015-09-10)
  1. 去掉写权限再试一试
    • 修改authz文件@demo=r
    • 提交一个文件试一试
[luncher@localhost branches]$ touch b.txt
[luncher@localhost branches]$ vim b.txt 
[luncher@localhost branches]$ echo "hello world" >> b.txt 
[luncher@localhost branches]$ vim b.txt 
[luncher@localhost branches]$ svn add b.txt 
A         b.txt
[luncher@localhost branches]$ svn ci -m 'add b.txt'
svn: E170001: 提交失败(细节如下): 
svn: E170001: 认证失败

测试验证我们的配置是没有问题的。

trouble shotting

  1. 服务器端口问题
    svn 默认使用的端口是3690,防火墙需要开放该端口权限

参考文档:
svn官方文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在CentOS上离线搭建SVN服务器,需要按照以下步骤进行操作: 1. 首先,在CentOS服务器上安装必要的软件包和依赖项。由于是离线环境,需要先将相关的软件包下载到一个可访问的计算机上,然后通过U盘或其他外部介质将它们传输到CentOS服务器上。在CentOS服务器上使用以下命令安装软件包: ``` rpm -ivh svn-server-rpm包 ``` 2. 创建一个用于存储SVN仓库的目录,并为其分配合适的权限: ``` mkdir /svn-repo chown -R apache.apache /svn-repo ``` 3. 初始化SVN仓库: ``` svnadmin create /svn-repo/myrepo ``` 4. 配置SVN服务。在`/etc/httpd/conf.d/`目录下创建一个新的配置文件,例如`svn.conf`,并添加以下内容: ``` # SVN 配置 <Location /svn> DAV svn SVNPath /svn-repo/myrepo </Location> ``` 5. 重启Apache服务以应用配置更改: ``` systemctl restart httpd ``` 6. 确保防火墙允许通过HTTP访问SVN服务。可以使用以下命令开放端口80: ``` firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload ``` 7. 完成上述步骤后,即可通过浏览器或相应的SVN客户端从其他计算机访问SVN仓库了。 请注意,这只是一个简单的离线搭建SVN服务器的示例步骤。实际操作中可能涉及到更多的细节和配置,具体的步骤可能会有所不同。建议根据自己的实际情况和需求进行相应的调整。 ### 回答2: 要离线搭建CentOS下的SVN服务器,需要以下步骤: 1. 下载SVN软件包:在网络连接正常的环境中,下载最新版本的Subversion软件包,并将其保存到本地或移动存储设备中。 2. 安装CentOS系统:在目标服务器上安装CentOS操作系统,确保操作系统的版本和架构与下载的软件包相匹配。 3. 安装Subversion:将下载的SVN软件包复制到目标服务器,解压并安装。执行相关的安装命令,如使用yum命令安装:sudo yum install subversion。 4. 创建SVN仓库:使用命令行工具,创建一个SVN仓库。在指定的目录中执行命令:svnadmin create /path/to/repository。 5. 配置访问权限:为SVN仓库设置访问权限,确保只有授权的用户可以访问。创建一个authz文件,用于配置用户和组的权限。编辑文件并添加相应的权限规则。 6. 配置SVN服务器:编辑svnserve.conf文件,配置SVN服务器的各项参数。例如,设置SVN服务器监听的端口、启用身份验证等。 7. 启动SVN服务器:执行启动命令,启动SVN服务器。例如,通过命令svnserve -d -r /path/to/repository启动并使其在后台运行。 8. 测试SVN服务器:使用SVN客户端工具,例如TortoiseSVN等,在另一台计算机上测试连接SVN服务器。尝试进行检出、更新和提交等操作,验证服务器是否正常工作。 通过以上步骤,就可以在CentOS服务器上离线搭建一个SVN版本控制系统。 ### 回答3: 要在CentOS上离线搭建SVN服务器,您需要按照以下步骤进行操作: 1. 安装CentOS:首先,确保您已经在离线环境中安装了CentOS操作系统。您可以使用官方的CentOS ISO镜像进行安装。 2. 安装SVN服务器软件:在离线环境中,您需要将SVN服务器软件的安装包下载到离线机器上。您可以从Subversion官方网站或其他可信的软件下载站点下载最新版本的SVN服务器软件安装包。将安装包复制到离线机器上,并使用命令行工具(如yum)安装。 3. 配置SVN服务器:一旦安装了SVN服务器软件,您需要进行相关配置。在离线环境中,您可以编辑SVN服务器的配置文件,通常是在/etc/httpd/conf.d目录下的svn.conf文件。您可以根据实际需求进行配置,如指定版本库的存储位置、访问控制等。 4. 创建SVN版本库:在SVN服务器上创建版本库以存储项目代码。您可以使用svnadmin命令创建版本库,如在命令行中运行"svnadmin create /path/to/repository"来创建名为repository的版本库。 5. 配置访问权限:为了保护SVN版本库中的代码,您需要为其设置访问权限。在离线环境中,您可以在每个项目的conf目录中的svnserve.conf文件中进行配置。通过编辑该文件,您可以控制用户及其对版本库的访问权限。 6. 启动SVN服务器:在离线环境中,您可以启动SVN服务器以便用户可以访问版本库。在命令行中运行"svnserve -d -r /path/to/repository"命令来启动SVN服务器,并将其绑定到指定的版本库路径。 这些步骤将帮助您在CentOS上离线搭建SVN服务器。需要注意的是,在离线环境中,您需要提前准备好所需的软件包及其依赖关系,并保存在本地供安装使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值