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

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配置服务器,超级详细!

    Ubuntu 下安装Subversion

    完成以上步骤后,您将在Ubuntu系统上成功安装并配置了Subversion,可以通过Web界面和本地文件系统两种方式访问和管理项目版本。这对于团队协作和项目管理具有重要意义,因为它提供了版本控制、冲突解决和历史记录等...

    在Linux下安装与配置subversion独立服务器.pdf

    1. **启动服务**:根据你的Linux发行版,可能需要启动或设置Subversion服务自动启动。 2. **导入数据**:使用 `svn import` 命令将已有项目导入到版本库,例如: ```bash # 进入bin目录 cd /home/local/subversion/...

    Ubuntu-install-Subversion-client.rar_Ubuntu!

    以下将详细介绍如何在Ubuntu上安装并配置Subversion客户端。 ### 1. 更新系统 在开始安装任何新软件之前,确保系统是最新的。打开终端(Terminal)并输入以下命令: ```bash sudo apt update sudo apt upgrade ``...

    [Linux]安装,配置Subversion 1.4.5

    使用`configure`脚本来配置编译选项,然后进行编译和安装: ``` ./configure --prefix=/usr make sudo make install ``` 5. 配置Apache HTTPD服务器: Subversion通常与Apache集成,以提供Web访问和权限控制...

    Ubuntu下Subversion的安装

    现在,Subversion已经在Ubuntu上成功安装并配置好了。你可以开始导入项目到仓库,或者克隆现有的仓库进行开发。使用`svn import`或`svn checkout`命令,根据你的需求操作。 在实际工作中,你可能会遇到各种问题,如...

    ubuntu安装svn步骤及所需文件

    在Ubuntu系统中安装...总的来说,Ubuntu上的Subversion安装涉及更新系统、安装Subversion和Apache模块、配置Apache以提供HTTP访问,以及创建用户和权限。这个过程将使你能够在团队中有效地管理和共享代码资源。

    Ubuntu+svn+ssl+ldap

    【Ubuntu+svn+ssl+ldap】的安装及集成是一个复杂的过程,涉及到Ubuntu操作系统、Subversion (SVN) 版本控制系统、SSL安全套接层以及Lightweight Directory Access Protocol (LDAP) 用户认证。以下是对这些技术的详细...

    svn 服务器+sasl认证在ubuntu 10.04安装文档

    通过以上步骤,你可以在Ubuntu 10.04上成功地安装和配置带有SASL认证功能的SVN服务器。这不仅可以帮助你更好地管理版本控制,还能提供更高的安全性,确保只有授权用户才能访问和修改仓库内容。在实际部署过程中,还...

    subversion-1.9.3安装文件+依赖的所有jar+安装步骤(Linux)

    本篇文章将详细讲解如何在Linux系统中安装Subversion 1.9.3版本,以及所需的依赖项和安装过程。 首先,我们需要确保系统已经更新到最新状态,以获取最新的安全补丁和依赖关系。执行以下命令: ```bash sudo apt-...

    Apache和Subversion集成安装与配置

    - 同样地,Subversion也可以通过包管理器安装,如在Ubuntu上运行`sudo apt-get install subversion`。 - 创建一个SVN仓库,可以使用`svnadmin create /path/to/repo`命令。 3. **安装mod_dav_svn模块**: - 对于...

    Ubuntu16.0.4环境下的Asterisk安装经验

    ### Ubuntu16.0.4环境下Asterisk安装经验 #### 概述 本文将详细介绍如何在Ubuntu 16.0.4系统上安装Asterisk。Asterisk是一款非常强大的开源PBX(Private Branch Exchange)系统,它可以将普通的计算机变成一个功能...

    linux + apache + subversion安装和基本配置

    本文将详细讲解如何在Linux系统上安装和配置Apache Web服务器以及Subversion版本控制系统。 首先,Linux作为开源操作系统,是许多服务器的基础,其稳定性和安全性深受开发者喜爱。在本案例中,我们将使用它作为平台...

    linux第十三刀_Linux上安装Subversion

    这篇博客将指导你如何在Linux系统中安装和配置Subversion。 ### 一、安装前准备 在开始安装Subversion之前,确保你的Linux系统是最新的。你可以通过运行以下命令来更新系统: ```bash sudo apt-get update sudo ...

    Ubuntu系统下安装Reviewboard详解

    本文档将详细介绍如何在Ubuntu系统上安装并配置Reviewboard,一款流行的代码审查工具。通过本文档的学习,您将能够掌握安装过程中所需的关键步骤以及相关软件的配置方法。 #### 二、环境准备与依赖安装 在开始安装...

    ubuntu下SVN服务器安装配置

    在 Ubuntu 系统上安装并配置 Subversion (SVN) 服务器是一种常见的需求,尤其是对于那些希望在本地网络环境中进行版本控制的团队来说。下面我们将详细介绍如何在 Ubuntu 系统上安装和配置 SVN 服务器。 ##### 1. ...

    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下可视化SVN安装

    在Ubuntu系统下,通过可视化方式安装SVN(Subversion)客户端是一种提高开发效率、简化版本控制流程的有效手段。本文将围绕“ubuntu下可视化SVN安装”这一主题,深入解析其重要性和具体步骤,帮助读者更好地理解和...

Global site tag (gtag.js) - Google Analytics