文档章节

安装 Svn服务器

cas_
 cas_
发布于 2017/03/12 21:37
字数 1696
阅读 15
收藏 1

1、检查svn版本是否有安装     

[root@huangkai200 ~]# rpm -qa subversion
[root@huangkai200 ~]# 

执行上面的命令,没有任何显示,表示没有安装,如果有,执行 yum remove subversion 删除。

2、执行安装

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

等待安装完成即可

3、配置和启动svn服务器

  创建目录 :   

[root@huangkai200 ~]# mkdir -p /data/svn/data   # svn数据保存目录 
[root@huangkai200 ~]# mkdir -p /data/svn/passwd   #svn公共用户密码与权限目录

  启动 svn服务:

 [root@huangkai200 ~]#svnserve -d -r /data/svn/data/ 

# -d 守护进程启动

# -r  指定svn目录

  查看服务进程:

[root@huangkai200 ~]# ps -ef|grep svn
root      1748     1  0 21:44 ?        00:00:00 svnserve -d -r /data/svn/data/
root      1771  1401  0 21:45 pts/0    00:00:00 grep --color=auto svn
[root@huangkai200 ~]# 

  查看端口号

    svn默认使用的端口号为 3690

[root@huangkai200 ~]# lsof -i:3690
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
svnserve 1748 root    3u  IPv4  24804      0t0  TCP *:svn (LISTEN)

[root@huangkai200 ~]# netstat -lntup|grep 3690
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      1748/svnserve       
[root@huangkai200 ~]#

 

4、创建svn仓库

[root@huangkai200 data]# svnadmin create hk   #创建仓库, hk 是仓库名称

[root@huangkai200 data]# ls  
hk
[root@huangkai200 data]# cd hk/
[root@huangkai200 hk]# ll  # 查看仓库目录结构
total 16
drwxr-xr-x 2 root root   51 Mar 12 21:58 conf   # svn仓库配置文件 
drwxr-sr-x 6 root root 4096 Mar 12 21:58 db   #数据存放文件
-r--r--r-- 1 root root    2 Mar 12 21:58 format 
drwxr-xr-x 2 root root 4096 Mar 12 21:58 hooks
drwxr-xr-x 2 root root   39 Mar 12 21:58 locks
-rw-r--r-- 1 root root  229 Mar 12 21:58 README.txt
[root@huangkai200 hk]# cd conf/ 
[root@huangkai200 conf]# ll 
total 12
-rw-r--r-- 1 root root 1080 Mar 12 21:58 authz    #权限管理文件 
-rw-r--r-- 1 root root  309 Mar 12 21:58 passwd    #用户与密码文件 
-rw-r--r-- 1 root root 3090 Mar 12 21:58 svnserve.conf  #主配置文件,包含上面authz 与 passwd文件
[root@huangkai200 conf]# 

5、修改 svnserver.conf 主配置文件 :

[root@huangkai200 conf]# vi svnserve.conf

1 ### This file controls the configuration of the svnserve daemon, if you
      2 ### use it to allow access to this repository.  (If you only allow
      3 ### access through http: and/or file: URLs, then this file is
      4 ### irrelevant.)
      5 
      6 ### Visit http://subversion.apache.org/ for more information.
      7 
      8 [general]
      9 ### The anon-access and auth-access options control access to the
     10 ### repository for unauthenticated (a.k.a. anonymous) users and
     11 ### authenticated users, respectively.
     12 ### Valid values are "write", "read", and "none".
     13 ### Setting the value to "none" prohibits both reading and writing;
     14 ### "read" allows read-only access, and "write" allows complete
     15 ### read/write access to the repository.
     16 ### The sample settings below are the defaults and specify that anonymous
     17 ### users have read-only access to the repository, while authenticated
     18 ### users have read and write access to the repository.
     19 # anon-access = read #将此项目默认配置改为 none,svn默认对未认证的用户有只读权限,我们要将此用户的权限设置为 none,然后将 20行 的 auth-access 的注解删除

      anon-access = none    
     20 auth-access = write
     21 ### The password-db option controls the location of the password
     22 ### database file.  Unless you specify a path starting with a /,
     23 ### the file's location is relative to the directory containing
     24 ### this configuration file.
     25 ### If SASL is enabled (see below), this file will NOT be used.
     26 ### Uncomment the line below to use the default password file.

# svn默认每个仓库会指定密码文件 ,为了多个仓库统一密码管理 ,将此选项设置为公共的密码文件
     27 password-db = /data/svn/passwd/passwd
     28 ### The authz-db option controls the location of the authorization
     29 ### rules for path-based access control.  Unless you specify a path
     30 ### starting with a /, the file's location is relative to the the
     31 ### directory containing this file.  If you don't specify an
     32 ### authz-db, no path-based access control is done.
     33 ### Uncomment the line below to use the default authorization file.
     34 authz-db = /data/svn/passwd/authz  #和密码一样,将此选项设置为公共的权限文件
     35 ### This option specifies the authentication realm of the repository.
     36 ### If two repositories have the same authentication realm, they should
     37 ### have the same password database, and vice versa.  The default realm
     38 ### is repository's uuid.
     39 # realm = My First Repository

6、拷贝authz  和 passwd 文件 到 公共用户与密码的目录 

[root@huangkai200 hk]# cp authz passwd /data/svn/passwd

[root@huangkai200 passwd]# ll # 可以看到,如下两个文件的权限为 644(文件所有者可读可写,所在组可读,其它组可读,这样,其它用户就可以看到这两个文件 ,文件的安全性就降低了)
total 8
-rw-r--r-- 1 root root 1080 Mar 12 22:27 authz
-rw-r--r-- 1 root root  329 Mar 12 22:25 passwd
[root@huangkai200 passwd]# 

 修改文件权限:

[root@huangkai200 passwd]# chmod 600 * #(给文件所有者可读写权限,其它用户没有权限)
[root@huangkai200 passwd]# ll
total 8
-rw------- 1 root root 1080 Mar 12 22:27 authz
-rw------- 1 root root  329 Mar 12 22:25 passwd
[root@huangkai200 passwd]# 

 

7、svn添加账户

在 passwd文件中[users]下按例子添加账户

[root@huangkai200 passwd]# vi 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
huangkai = huangkai  #添加账号,等号前为用户名,等号后为 密码

8、修改authz配置文件

[root@huangkai200 passwd]# vi 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

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

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

[hk:/]

huangkai = rw

#权限配置规则
#[版本库:/项目/目录]
#用户名 = rw(可写可读) | r (只读)
#也可以指定组,一个组对应一个或多个用户多个用户用 逗号隔开
# gruop_1 = huangkai,...
#为组配置权限规则,如 : @ 组名
# @gruop_1 = rw

 

修改 authz 与 passwd文件 不需要重启svn服务器,但修改 svnserver.conf 必须重启使配置生效,

authz 与 passwd 配置文件不能写错,否则服务可能不能正常启动。

启动服务
[root@huangkai200 passwd]# lsof -i:3690
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
svnserve 1748 root    3u  IPv4  24804      0t0  TCP *:svn (LISTEN)

root@huangkai200 passwd]# kill -9 1748
[root@huangkai200 passwd]# ps -ef|grep svn
root      3252  1401  0 22:58 pts/0    00:00:00 grep --color=auto svn
[root@huangkai200 passwd]# svnserve -d -r /data/svn/data/

9、svn 开机启动

首先:编写一个启动脚本svn_startup.sh,我放在/data/svn/svn_startup.sh

#!/bin/bash
/usr/bin/svnserve -d -r /data/svn/data/

这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
绝对路径怎么查?使用 which svnserve查看

[root@huangkai200 hk]# which svnserve 
/usr/bin/svnserve
[root@huangkai200 hk]# 

然后修改该脚本的执行权限

[root@huangkai200 svn]# chmod 700 svn_startup.sh

最后:加入自动运行

[root@huangkai200 svn]#vi /etc/rc.d/rc.local

在末尾添加脚本的路径,如:/data/svn/svn_startup.sh

看看 /etc/rc.d/rc.local的权限,如果没有可执行权限,则需要设置 , chmod 711 /etc/rc.d/rc.local

 现在,你可以重启一下试试了

10、svn 客户端连接 :

svn://ip地址:3690/hk

 

 

© 著作权归作者所有

上一篇: ActiveMQ(一)
下一篇: Linux 静态IP配置
cas_
粉丝 1
博文 26
码字总数 19578
作品 0
广州
后端工程师
私信 提问
SVN跨服务器配置post-commit提交后自动更新(SVN与WEB服务器不在同一台机器)

背景情况:SVN与WEB不在同一台服务器上,需要SVN提交后WEB站点自动进行SVN UPDATE更新,查阅网上的教程,发现部分的细节和权限部分没有提到导致跨服务器ssh执行更新脚本失败,手动执行post-...

PartyAnimals
2018/06/26
0
0
CentOS下使用yum安装配置和使用svn

安装说明 系统环境:CentOS-6.3 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件 检查已安装版本 #检查是否安装了低版本的SVN[root@zck /]# rpm ...

Junn
2013/09/25
0
0
linux下svn服务安装(转)

linux下svn服务安装 博客分类: Linux SVN 一.环境准备 1.linux版本为centos6.4 X64 2.软件安装 yum install subversion httpd moddavsvn modperl sendmail mailx wget gcc-c++ make unzip ......

greenblue
2015/08/13
0
0
2014-01-16 SVN使用手册Windows X86平台

1.安装Setup-Subversion-1.8.5.msi http://jaist.dl.sourceforge.net/project/win32svn/1.8.5/Setup-Subversion-1.8.5.msi 2.安装VisualSVN-Server-2.7.3.msi http://www.visualsvn.com/fil......

查封炉台
2014/01/16
0
0
Linux SVN 搭建(YUM)安装

安装说明 系统环境:CentOS-6.2 安装方式:yum install (源码安装容易产生版本兼容的问题) 安装软件:系统自动下载SVN软件 Linux svn服务端配置 检查已安装版本 #检查是否安装了低版本的S...

Yomut
2015/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

二进制位操作

单片机,或者一些模块的设置操作,都是由一个字节数据来完成,每位各有定义。就需进行位操作来组合需要的数字结果。 以JavaScript为例,编写位操作。 我们期望得到这样一个二进制数:0101101...

format
6分钟前
1
0
聊聊中国的通信行业:从“七国八制”到“中华”脊梁

本期文章和大家一起来聊一聊我曾经从事过的通信行业吧。最近各方面信息的泛滥,包括和华为的同学聊天,自己确实也感慨颇多。想想我自己本科主修通信工程,研究生再修信息与通信工程,从本科开...

CodeSheep
今天
4
0
MDK:ARM M451M:exceed the range of code meory, continue to erase or not?

问题: 代码空间超限 几天前就遇到:exceed the range of code meory, continue to erase or not? 如下所示: 解决过程 开始以为中MDK软件的128KB限制,如是就不能生成HEX文件,应该链接时有提...

SamXIAO
今天
1
1
OSChina 周六乱弹 —— 因违反《中华人民共和国治安管理处罚法》第四十四条之规定

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @xiaoshiyue :#今日歌曲推荐# 惊艳分享谷微的单曲《安守本份》(@网易云音乐) 《安守本份》- 谷微 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
397
9
Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部