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. Chrome/FireFox处理JSON的插件

    Chrome/FireFox处理JSON的插件 JSON插件   效果对比 对于json的数据如果不编排一下格式查看起来很费劲,今天推荐一款chrome/Firfox下处理json的插件JSON-ha ...

  2. Redis中为什么使用跳表---------转自http://blog.csdn.net/u010412301/article/details/64923131

    最近在研究数据库的一些底层实现,百度的面试官问到了跳表,当时没有回答上来,在csdn上看到了这篇文章,感觉写的比较好,希望大家可以多多交流. Redis里面使用skiplist是为了实现sorted ...

  3. ScrollView 和 ListView 冲突解决方案

    网上说了很多阿,什么linearLayout 实现listView 什么的.还设置高什么的. 其实,你们可能忘记了,如果出现 ScrollView 和 ListView 同时出现,那就是设计错误了. ...

  4. Xshell连接mysql数据库乱码问题解决思路总结

    乱码问题一直是一件让人头疼的事情,乱码就是编码格式不统一产生的,下面将一些常见的解决思路整理: 先Xshell连接上数据库,查看数据的编码格式: 一般需要看这么几个地方(附修改命令): 1.数据库的编 ...

  5. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何修改某个轴的数值单位

    在某个轴上双击,切换到Settings,然后可以再Unit中修改为角度,弧度,mm     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/aceta ...

  6. 利用U盘启动,全新安装Mac操作系统.

    利用U盘启动,全新安装Mac操作系统. OS_X_Yosemite_DP7.dmg Install OS X Yosemite.dmg 简单制作 OS X Yosemite 10.10 正式版U盘US ...

  7. DNS message解析

    案例吐个槽,命苦啊,要自己动手解包. 另外,这里的内容是半路找来的,如果有冲突,自行翻阅rfc1035.我还没校正过. The Structure 如下图: 所有的DNS message都包含了下面这 ...

  8. odoo8登录时,同帐号在其它客户端的连接自动退出

    odoo跟大多数B/S系统一样,同一个帐号可以在不同的电脑上登录,并且可以同时操作,这样子会带来一些权限上的漏洞.为了解决这个问题,经过分析odoo的session处理机制,开发了一个模块,安装此模块 ...

  9. 在linux下的使用复制命令cp,不让出现“overwrite”(文件覆盖)提示的方法。(转)

    在linux下的使用复制命令cp,不让出现“overwrite”(文件覆盖)提示的方法. 一般我们在使用cp命令时加上-f选项,希望不让出现“overwrite”的提示(文件覆盖的提示).如:# cp ...

  10. SSH面试题目

    一简答 spring工作原理 为什么要用spring 3.请你谈谈SSH整合 4.介绍一下Spring的事务管理 5.Struct2基本流程 6.在Hibernate应用中Java对象的状态有哪些? ...