Ubuntu SVN服务器的搭建与配置

一、         安装

sudo apt-get install subversion

sudo apt-get install libapache2-svn

sudo apt-get install apache2

二、         增加组

sudo groupadd svn                  //增加组

sudo usermod–G svn –a admin         // 把用户admin添加到svn组中 (svn为自己的用户)

sudo usermod –G svn –a www-data    // 把apache用户添加到svn组中

三、  创建版本库

由于/home 分配的空间较大(1T),建议将版本库建立在/home 下。

sudo mkdir /home/svn

sudo chown –R root:svn svn

sudo chmod –R g+rws svn

reboot

cd /home/svn

文件夹建好了以后,我们就可以在svn目录下面创建仓库了,当然也可以在它的子目录下创建仓库,为了便于项目的管理,建议在svn的子目录下创建仓库。

例如:有“Embed”项目,项目中有 软件 和 硬件 两个分支,那么我们可以在svn下建立 embed目录: mkdir embed (注意,这个时候不需要用sudo 了)。然后在 embed 目录下再分别创建 solftware 和 hardware两个仓库。

cd embed

svnadmin create /home/svn/embed/solftware

cd solftware

仓库创建好后,会自动生成一些文件和文件夹

其中 conf 文件夹下存放的是一些与控制访问有关的配置文件

四、         SVN 权限管理

A、需要用户名、密码登录

1、   修改 svnserve.conf

svnserve.conf是基础的配置,用于控制访问的权限将[general]前的注释与空格去掉,一定要去掉空格,否则到时客户端登录会出现"Section header must start in the first column的”的告警!最后此文件内容至少包含以下内容:

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

其中,anon-access = none禁止匿名登录,auth-access = write为署名登录获得写权限,password-db = passwd指定用户配置文件,authz-db = authz指定权限配置文件

2、   修改passwd

自动生成的passwd 文件格式如下:

[users]

# harry = harryssecret

# sally = sallyssecret

Harry 表示 用户名,harryssecret 为密码。这种方式是明文方式,也就是说如果要添加访问的用户的话只需按照格式添加用户名密码就可以。

例如添加 zhangsan 用户, 并且密码为123456,那么只需在后面添加如下内容即可:

zhangsan = 123456

但是,这种方法并不安全,下面介绍一种文件加密的方式设置登录的用户名和密码。

1、备份原始的passwd 文件: cp passwd passwd-bak

2、创建新的加密的passwd文件, 并且添加用户名和密码:

htpasswd  -cm passwd zhangsan

如图所示,输入密码后登录用户的用户名和密码就创建好了。下面我们来看一下passwd 文件里面的内容是什么。

现在显示的内容就不是之前的明文了,说明达到了加密的效果。

如果需要添加另外离歌用户名和密码,可以执行一下命令:

htpasswd  passwd zhangsan

3、修改authz

修改完登录方式,增加登录的用户名和密码后,下面我们将进一步设置仓库中文件夹的访问权限。

假设在passwd中设置了3个用户,分别是 zhangsan、 lisi、 wangwu,在仓库solftware下有三个目录,分别是: pro1, pro2, pro3 。那么其访问权限可设置如下方式。

[groups]

everyone = zhangsan, lisi, wangwu

group1 = zhangsan

group2 = lisi

group3 = wangwu

[solftware:/]

* = r     说明:/svn/embed/solftware/z 对所有用户都只有只读权限

也可写成 @everyone = r

[solftware:/pro1]

@group1 = rw   说明:zhangsan 可读可写

也可写成 zhangsan = rw

@group2 = r     说明:lisi 只读

也可写成 lisi = r

@group2 = r     说明:wangwu 只读

也可写成 wangwu = r

注意:如果对文件夹不做设置的话,默认为没有访问权限

4、修改 sudo vi /etc/apache2/mods-enable/dav_svn.conf

<Location /svn/embed/solftware >

DAV svn

SVNPath /home/svn/embed/solftware

AuthType Basic

AuthzSVNAccessFile /home/svn/embed/solft/conf/authz

AuthName "welcome to subversion repository"

AuthUserFile /home/svn/embed/solftware/passwd

#<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

#</LimitExcept>

</Location>

注意:

1、每新建一个仓库的时候,都在该文件下添加类似上面的代码,只需把红色部分内容改成新建仓库的路径即可。

2、每新建一个仓库的时候都执行以下命令

sudo vi dav_svn.conf

cd /home/svn/embed

sudo chmod -R g+rws xxx(版本库)

3:sudo /etc/init.d/apache2 restart

B、设置匿名访问

有时候我们需要设置一些公共目录,使得所有人都能够进行访问,使用上面的设置方法当然也可以实现,只需要把该目录设置为所有的人都可读可写即可,但是,如果这样做的话就显得很麻烦了,假如一个公司有100人的话,那咱们还得设置100个用户,这样做的话就显得有些多余了。下面,咱们来看看简单的设置方法。

1、创建新的版本库(hard)

2、执行下面命令 sudo chmod –R g+rws hard

3、在/etc/apache/mods-enable/dav_svn.conf 增加一下代码即可

<Location /embed/hard>

DAV svn

SVNPath /home/svn/embed/hard

AuthType Basic

Authname "polarbear"

</Location>

C、如何在版本库中创建文件夹

首先,如果我们只是简单的在版本库中执行mkdir命令创建文件夹的话,在客户端上checkout的时候是不显示新创建的文件夹的。可是,假如这个版本库(hard)中需要有三个文件夹,比如分别为:src、lib、usr,而且我们又希望用户在客户端checkout的时候能够看到相应的文件夹,那么这个时候该怎么办呢?执行以下命令即可:

1、svnadmin create hard

2、sudo chmod –R g+rws hard

3、cd hard

4、mkdir src lib usr

5、svn import –m “” src http://192.168.86/hard/src

6、svn import –m “” lib http://192.168.86/hard/src

7、svn import –m “” usr http://192.168.86/hard/src

 

第 4、5、6、7步骤,还可以用下面的方法实现

Svn mkdir –m “” usr http://192.168.86/hard/src

svn mkdir –m “” lib http://192.168.86/hard/lib

svn mkdir –m “” lib http://192.168.86/hard/usr

双引号内可以为空,也可以填入对文件夹的说明。

注意:如果有用户反映提交的时候出现类似“Can't open file 'D:\Reositories\Doc\db\txn-current-lock':拒绝访问。”这样的错误提示,则很可能是在创建仓库后没有执行sudo chmod –R g+rws hard命令。

Ubuntu SVN服务器的搭建与配置(转)的更多相关文章

  1. SVN服务器本地搭建与使用

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html  使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或 ...

  2. svn服务器的搭建备份和还原和svnmanager的使用

    svn服务器的搭建备份和还原和svnmanager的使用 一.svn服务端软件的安装和配置 1.安装svn版本库软件 # yum install -y subversion 2.建立svn版本库数据存 ...

  3. centos7下SVN服务器如何搭建

    Centos7 搭建svn服务器 linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(ce ...

  4. linux(centos7)下SVN服务器如何搭建

    linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...

  5. svn 服务器的搭建以及客户端的使用

    1.svn 服务器的搭建以及客户端的使用,安装见下面的博客 https://blog.csdn.net/zh123456zh789/article/details/80921179 说明:服务器只是用 ...

  6. svn 服务器的搭建 on Ubuntu

    Subversion 如何在Ubuntu下安装配置Subversion服务器.已经配置好,不过没有配置开机自启动, 需要的时候,使用如下命令开启svn服务svnserve -d  -r  /opt/s ...

  7. Linux SVN服务器的搭建配置及分支的创建与合并

    第一步:通过yum命令安装svnserve,命令如下: >yum -y install subversion 若需查看svn安装位置,可以用以下命令: >rpm -ql subversio ...

  8. svn服务器快速搭建及简单配置

    http://www.360doc.com/content/11/0711/19/5131531_132950891.shtml 简介Svn已经不容质疑的成为了一款流行的代码控制工具,但是你是否还在为 ...

  9. Windows下SVN服务器的搭建步骤

    1.下载svn服务端和客户端 服务端VISUALSVN SERVER:https://www.visualsvn.com/ 客户端TortoiseSVN:https://tortoisesvn.net ...

随机推荐

  1. 蓝牙中文API文档

    蓝牙是一种低成本.短距离的无线通信技术.对于那些希望创建个人局域网(PANs)的人们来说,蓝牙技术已经越来越流行了.每个个人局域网都在独立设备的周围被动态地创建,并且为蜂窝式电话和PDA等设备提供了自 ...

  2. 代码练习之 登陆 PHP会话控制 session cookie

    log.html <html> <head><title>Home Page</title></head> <body> < ...

  3. linux中添加开机自启服务的方法

    往文件/etc/rc.d/rc.local中追加内容即可,如: /mongodb/start_mongoDB.sh

  4. STL源码剖析(list)

    SGI STL中list是使用环状双向链表实现的.它的结点结构定义如下: template <class T> struct __list_node { typedef void* voi ...

  5. marquee.js

      图片无缝滚动工具类 CreateTime--2018年3月7日17:11:03 Author:Marydon /** * 图片无缝滚动 * @description * 将要滚动的图片复制一份作为 ...

  6. Android之常用功能代码

    透明导航栏 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManage ...

  7. 基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...

  8. Eclipse - JAR包制作

    Eclipse - JAR包制作细节   1.Jar包分为两种,一种是不可运行的,一种是可运行的Jar包,他们的主要区别如下:     > 不可直接运行的Jar包主要是用于给别的程序提供调用   ...

  9. sklearn中xgboost模块中plot_importance函数(特征重要性)

    # -*- coding: utf-8 -*- """ ######################################################### ...

  10. idea lib下有jar包但是仍然报错 找不到类

    现象: idea lib下有jar包但是仍然报错 找不到类 但是有个奇怪现象 同样的配置下项目在eclipse中可以正常编译 启动. package com.puhui.car.aspect; imp ...