`
lysming
  • 浏览: 24221 次
  • 来自: ...
社区版块
存档分类
最新评论

ubuntu安装和配置subversion

阅读更多
ubuntu:12.04.1
在本地安装ubuntu,并与apache集成

1、安装subversion
引用
apt-get install subversion
apt-get install subversion-tools

2、安装apache
引用
apt-get install apache2
apt-get install libapache2-svn

3、配置subversion与apache集成
1)查看/etc/apache2/mods-enabled/dav_svn.load文件,有mod_dav_svn.so和mod_authz_svn.so这两个动态库说明apache已经加载了Subversion的访问控制模块。
如果没有,手动添加
引用
# Depends: dav
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

2)编辑/etc/apache2/mods-enabled/dav_svn.conf文件,取消svn配置的注释,修改后的内容如下
引用
<Location /svn>

  # Uncomment this to enable the repository
  DAV svn

  # Set this to the path to your repository
  #SVNPath /usr/svn
  # Alternatively, use SVNParentPath if you have multiple repositories under
  # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
  # You need either SVNPath and SVNParentPath, but not both.
  SVNParentPath /usr/svn

  # Access control is done at 3 levels: (1) Apache authentication, via
  # any of several methods.  A "Basic Auth" section is commented out
  # below.  (2) Apache <Limit> and <LimitExcept>, also commented out
  # below.  (3) mod_authz_svn is a svn-specific authorization module
  # which offers fine-grained read/write access control for paths
  # within a repository.  (The first two layers are coarse-grained; you
  # can only enable/disable access to an entire repository.)  Note that
  # mod_authz_svn is noticeably slower than the other two layers, so if
  # you don't need the fine-grained control, don't configure it.

  # Basic Authentication is repository-wide.  It is not secure unless
  # you are using https.  See the 'htpasswd' command to create and
  # manage the password file - and the documentation for the
  # 'auth_basic' and 'authn_file' modules, which you will need for this
  # (enable them with 'a2enmod').
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd

  # To enable authorization via mod_authz_svn (enable that module separately):
  <IfModule mod_authz_svn.c>
    AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  </IfModule>

  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.  It requires the 'authz_user'
  # module (enable it with 'a2enmod').
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
 
</Location>

3)创建配置中的两个文件
引用
touch /etc/apache2/dav_svn.passwd
touch /etc/apache2/dav_svn.authz

4)配置完成后重启apache
引用
/etc/init.d/apache2 restart

4、建立版本库
引用
makedir /usr/svn/
makedir /usr/svn/repos
svnadmin create --fs-type fsfs /usr/svn/repos

指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb,推荐选用FSFS格式。
检查版本库是否可以checkout:
引用
root@AY130321164319777920:~# svn co file:///usr/svn/repos
Checked out revision 0.

5、添加项目
需要考虑的是,将每一个项目分别放在不同的版本库里面,还是将它们放在统一的版本库里面。统一的版本库更加容易升级和备份,但由于访问权限控制是针对整个版本库的,也为不同项目配置不同的访问权限带来了麻烦。所以,应该根据实际情况权衡考虑。
引用
mkdir /home/project
mkdir /home/project/gboat3
root@AY130321164319777920:/home# svn import /home/project file:///usr/svn/repos --message "init"
Adding         /home/project/gboat3

Committed revision 1.

用 svn list 确认导入的项目是否正确
引用
root@AY130321164319777920:/home# svn list --verbose file:///usr/svn/repos
      1 root                  Apr 23 20:02 ./
      1 root                  Apr 23 20:02 gboat3/

6、subversion添加用户
添加第一个用户,要加参数-c。以后不用加。
引用
htpasswd -c /etc/apache2/dav_svn.passwd user1

Subversion追加用户:
引用
htpasswd /etc/apache2/dav_svn.passwd user2

7、subversion分配权限
新添加的用户是不能访问Subversion的,还要为他分配权限。编辑/etc/apache2/dav_svn.authz文件
引用

[groups]
admin = user1
gboat = user1,user2
[/]
@admin = rw
* = r
[/gboat3]
user1= rw
@gboat = rw
* = r

其中* = 表示其它所有用户都没有任何权限。@表示用户组,*表示所有用户,[/]表示全部目录。注意顶格写。UTF-8格式才能配置SVN权限,Linux下默认是UTF-8,Windows下有转换工具,比如Eclipse->Edit->最后一项。
特别注意:权限分配时,不能写成user1, user2=r,这样提交时会出现错误:svn Commit failed checkout of 403 forbidden。应该写成user1= r和user2= r
8、subversion启动
引用
svnserve -d -r /home/svn/repos

Subversion 设计了一个抽象的网络层,版本库建立完毕之后,可以通过各种服务器向外公布。svnserve 是 Subversion 自带的一个小型的服务器,它使用独立的协议与客户端。–i 作为 inetd 启动。-d参数表示svnserve将会作为一个服务程序运行在后台。-r参数表示将/home/svn指定为代码库的根目录。这样,当客户端使用类似svn://192.168.0.1/repos这样的URL访问服务器的时候,其所访问的真实库是/home/svn/repos。另外如 --listen-port,--listen-host 可以指定绑定的地址和端口,-R 可以强制设定为 Read-Only 模式。
启动后检查服务
引用
ps -ef | grep svnserv


P.S.
【1】apache配置说明:
<Location /svn>  意思是Subversion版本可用的URL是http://SubversionServerIP/svn
DAV SVN  告诉Apache是哪个模块响应哪个URL的请求,在这里是Subversion模块
SVNParentPath /home/svn  告诉Subversion需要查看的版本库在/home/svn之下。如果不希望为每个单独的项目都进行单独的设置,可以把所有项目都存放在统一的资源库目录,使用SVNParentPath指令来指定存放所有项目的路径。否则使用SVNPath
SVNPath  单版本库时使用此项指明版本库的路径,但在多版本库中不要使用此项
AuthType Basic  认证类型为基本认证,就是用户名和密码
AuthName "Subversion repository"  认证名称,将在浏览器界面弹出一个对话框,标题为Subversion repository
AuthUserFile /etc/apache2/dav_svn.passwd  指定使用的认证密码文件,即访问版本库用户的文件,用apache的htpasswd命令生成
AuthzSVNAccessFile /etc/apache2/dav_svn.authz  设定访问版本库权限的文件
Require valid-user  要求验证用户,即不能匿名访问。如果没有该语句,则只能第一个用户可以访问新建库
【2】版本库各文件夹说明
conf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容;
dav 目录是提供给 Apache 相关模块的目录;
db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(Berkeley DB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录;
hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序);
locks 目录存放着 Subversion 版本库锁定数据,用来追踪存取文件库的客户端;
format 文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
分享到:
评论

相关推荐

    Ubuntu中安装subversion服务器

    Ubuntu中安装subversion服务器,Ubuntu中安装subversion配置服务器,超级详细!

    Subversion-1.9.4安装与配置[ubuntu]

    ubuntu下Subversion-1.9.4安装与配置,图文描述

    ubuntu_linux_svn服务端客户端配置

    ubuntu_linux_svn 服务端 和 客户端配置

    ubuntu下SVN服务器安装配置

    ubuntu下SVN服务器安装配置 标签: ubuntu svn it 分类: sys-linux/windows 一、SVN安装 1.安装包 $ sudo apt-get install subversion 2.添加svn管理用户及subversion组 $ sudo adduser svnuser $ sudo addgroup...

    tortoiesSVN客户端+Ubuntu上SVN安装配置步骤

    1. 安装SVN  apt-get install subversion 2. 建立svn仓库  1). 建立svn目录:mkdir /home/.svn(使用隐藏目录)  2). cd /home/.svn  3). mkdir astar  4). 创建仓库astar:svnadmin create /home/.svn/astar,...

    Ubuntu下Subversion(SVN)的快速安装与配置详解

    主要介绍了Ubuntu下Subversion(SVN)的快速安装与配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Ubuntu_10.04_安装手记

    Ubuntu 的安装手记 很不错 本安装记录内容目录 说明 环境 常用命令与快捷键 文件系统中的系统文件夹说明 Ubuntu中的隐藏文件或文件夹方法 三种安装方法 apt-get/dpkg/sources pack Ubuntu 9.04 中 F1 帮助摘要 硬盘...

    svn_subversion

    ubuntu安装配置svn全过程指定下载文件

    SCM Manager 简体中文版

    中文版由木鱼制作,除了进行全面的中文化以外,还提供了配置脚本、预置了插件并进行了插件的中文化,以及安装说明。 SCM Manager 是一款同时支持Git、Subversion、Mercurial的源代码管理服务器,基于Java构建。相...

    常用Java Web应用软件 (LNMJ,LAMJ)安装

    本文主要总结了在Ubuntu10下常用Java Web应用软件的安装,特别是LNMJ Web(Linux+Nginx+Mysql+Java Tomcat)架构和LAMJ Web(Linux+Apache+Mysql+Java Tomcat)架构下的软件安装。为进一步配置和实现LNMJ和LAMJ架构(负载...

    Debian下svn服务器的安装与配置

    dedian环境下subversion的安装以及配置,ubuntu下的也差不多,可以参考使用

    Linux或Ubuntu下SVN服务器自动发送邮件配置

    需要注意的是如果该文件是在windows下创建的,在拷贝到Ubuntu或Linux环境下需要转换格式,可使用dos2unix进行转换。 2.安装Authen::SASL模块 因为Perl通过SMTP发送邮件,其中SMTP验证的时候需要Authen::SASL模块。 ...

    htan:这是用于Debian和Ubuntu服务器的初始安装和配置的一组脚本,以用作虚拟主机

    TAN 这是用于Debian或Ubuntu服务器的初始安装和配置的脚本集,以用作Web托管。要求没有预装软件的服务器Debian 7或Debian 8 要么Ubuntu服务器16 可以上网。 最小RAM 256 MB 。 推荐的RAM 1 GB或更多。 软件安装的...

    install.rar

    新装虚拟机下的Ubuntu,环境配置,常用插件工具一个个手工下载安装不方便,整理实用工具一键安装apt-get install -y net-tools apt-get install -y openssh-server apt-get install -y git apt-get install -y vim ...

    salt-shared:salt-shared-适用于UbuntuDebian的有用的Salt状态

    :通过webhook支持从git部署和更新机器# :禁用或启用ubuntu细节 行政 :命令行工具 :git,git-crypt,git-bridge,mercurial,bzr,subversion : : 桌面 :桌面安装所需的一切 网络 : :trafficserver...

    openwrt-lede-17.01.zip

    1: 在ubuntu 16虚拟机器上 安装 openwrt 的编译环境, 和初步编译 x86 镜像。步奏如下: (1). 在已有的 ubuntu 16虚拟机器上 先更新系统 执行sudo apt-get update  sudo apt-get upgrade (2). 安装基础环境:...

    在Linux/Apache2.2上配置SVN服务器

    火龙果软件工程技术中心 准备,下载所需要文件本文测试环境:ubuntu6.06LTS(kernel2.6.15-25-k7,gcc-4.0.3)/ubuntuserver(2.6.15-26-server,gcc-4.0.4)Subversion1.3.2/1.4.2Apache2.2.2/2.2.3GCC4.1.2最新的版本...

    ansible-oracle-java:以Ansible Galaxy格式安装Oracle JDK的Ansible角色

    为CentOS,Debian / Ubuntu,SUSE和Mac OS X系列安装。 如果您更喜欢OpenJDK,请尝试使用诸如或替代。 角色变量 强制变量 没有。 可选变量 用户可配置的默认值: # which version? java_version : 8 # which ...

Global site tag (gtag.js) - Google Analytics