安装
幸运的,Subversion 已经包含在 main 仓库中。所以,要安装 Subversion,您只需要简单的运行:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
如果系统报告了依赖关系的错误,请找出相应的软件包并安装它们。如果存在其它问题,也请自行解决。如果您是再不能解决这些问题,可以考虑通过 Ubuntu 的网站、Wiki、论坛或邮件列表寻求支持。
[编辑
]
服务器配置
您应该已经安装了上述的软件包。本节将阐述如何创建 SVN 文件仓库以及如何设置项目的访问权限。
[编辑
]
创建 SVN 仓库
许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。
同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。典型的情况下,您应该创建一个名为“Subversion”的组来拥有文件仓库所在的目录。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:
- 在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
- 将您自己和“www-data”(Apache 用户)加入组成员中;
或者使用命令完成上述功能(增加组,并且把用户加到组里):
sudo addgroup subversion
sudo usermod -G subversion -a www-data
再或者直接使用命令编辑组文件"sudo vi /etc/group",增加组和成员(不推荐):
$ sudo vi /etc/group
结果看上去,像这样。
$ cat /etc/group|grep subversion
subversion:x:1001:www-data,exp
您需要注销然后再登录以便您能够成为 subversion 组的一员,然后就可以执行签入文件(Check in,也称提交文件)的操作了。
现在执行下面的命令
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/myproject
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ sudo chmod -R g+rws myproject
如果上面这个命令在创建SVN文件仓库之前运行,你可能在后续Check in的时候遇到如下错误:
Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied
查看txn-current-lock文件的权限和用户以及组信息,应该类似于:
$ ls -l /home/svn/myproject/db/txn-current-lock
-rw-rwSr-- 1 root subversion 0 2009-06-18 15:33 txn-current-lock
除了权限以外,用户及其组如果不对,则仍然会遇到上述问题,可以再次运行命令:
$ sudo chown -R root:subversion myproject
[编辑
]
访问方式
Subversion 文件仓库可以通过许多不同的方式进行访问(Check Out,签出)——通过本地硬盘,或者通过各种网络协议。无论如何,文件仓库的位置总是使用 URL 来表示。下表显示了不同的 URL 模式对应的访问方法:
模式
|
访问方法
|
file:/// |
直接访问本地硬盘上文件仓库 |
http:// |
通过 WebDAV 协议访问支持 Subversion 的 Apache 2 Web 服务器 |
https:// |
类似
http://,支持
SSL 加密 |
svn:// |
通过自带协议访问 svnserve 服务器 |
svn+ssh:// |
类似 svn://,支持通过 SSH 通道 |
本节中,我们将看到如何配置 SVN 以使之能够通过所有的方法得以访问。当然这里我们之讨论基本的方法。要了解更高级的用途,我们推荐您阅读《使用 Subversion 进行版本控制》在线电子书
。
[编辑
]
直接访问文件仓库(file://)
这是所有访问方式中最简单的。它不需要事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文件仓库。语法是:
$ svn co file:///home/svn/myproject
或者
$ svn co file://localhost/home/svn/myproject
注意:如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).
对文件仓库的访问权限基于文件系统的权限。如果该用户具有读/写权限,那么他/她就可以签出/提交修改。如果您像前面我们说描述的那样设置了相应的组,您可以简单的将一个用户添加到“subversion”组中以使其具有签出和提交的权限。
[编辑
]
通过 WebDAV 协议访问(http://
)
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apache2/mods-available/dav_svn.conf中:
<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。
当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart
接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:
sudo htpasswd -c /etc/subversion/passwd user_name
它会提示您输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/etc/subversion/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:
sudo htpasswd /etc/subversion/passwd other_user_name
您可以通过下面的命令来访问文件仓库:
$ svn co http://hostname/svn/myproject myproject --username user_name
它会提示您输入密码。您必须输入您使用 htpasswd 设置的密码。当通过验证,项目的文件就被签出了。
警告:密码是通过纯文本传输的。如果您担心密码泄漏的问题,我们建议您使用 SSL 加密,有关详情请看下一节。
[编辑
]
通过具有安全套接字(SSL)的 WebDAV 协议访问(https://
)
通过具有 SSL 加密的 WebDAV 协议访问 SVN 文件仓库(https://)非常类似上节所述的内容,除了您必须为您的
Apache 2 Web 服务器设置数字证书之外。
您可以安装由诸如 Verisign 发放的数字签名,或者您可以安装您自己的数字签名。
我们假设您已经为 Apache 2 Web 服务器安装和配置好了相应的数字证书。现在按照上一节所描述的方法访问 SVN 文件仓库,别忘了把
http://
换成https://
。如何,几乎是一模一样的!
[编辑
]
通过自带协议访问(svn://)
当您创建了 SVN 文件仓库,您可以修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。
例如,您可以取消下面的注释符号来设置授权机制:
# [general]
# password-db = passwd
现在,您可以在“passwd”文件中维护用户清单。编辑同一目录下“passwd”文件,添加新用户。语法如下:
username = password
#(注意行开始不要有多余空格)
要了解详情,请参考该文件。
现在,您可以在本地或者远程通过 svn:// 当文 SVN 了,您可以使用“svnserve”来运行 svnserver,语法如下:
$ svnserve -d --foreground -r /home/svn
# -d -- daemon mode
# --foreground -- run in foreground (useful for debugging)
# -r -- root of directory to serve
要了解更多信息,请输入:
$ svnserve --help
当您执行了该命令,SVN 就开始监听默认的端口(3690)。您可以通过下面的命令来访问文件仓库:
$ svn co svn://hostname/myproject myproject --username user_name
基于服务器的配置,它会要求输入密码。一旦通过验证,就会签出文件仓库中的代码。
要同步文件仓库和本地的副本,您可以执行 update 子命令,语法如下:
$ cd project_dir
$ svn update
要了解更多的 SVN 子命令,您可以参考手册。例如要了解 co (checkout) 命令,请执行:
$ svn co --help
或者这样
$ svn --help commit
或者直接
☎ svn help co
checkout (co): 从版本库签出工作副本。
使用: checkout URL[@REV]... [PATH]
。。。。。
一个实例:
☎ killall svnserve; svnserve -d -r /home/svn/
/home/svn/lj12-source/conf ☎ dog *
authz:[groups]
authz:lj12 = veexp
authz:[lj12-source:/] <-注意写法。
authz:veexp = rw
authz:@lj12 = rw
authz:* = passwd:[users] <-2个用户和密码。
passwd:veexp = icep
passwd:test = test
svnserve.conf:[general]
svnserve.conf:anon-access = none
svnserve.conf:auth-access = write
svnserve.conf:password-db = passwd
svnserve.conf:authz-db = authz <-如果不启用authz,则test也可以取出。
☎ svn co svn://localhost/lj12-source --username veexp
认证领域: <svn://localhost:3690> a712643f-661e-0410-8ad4-f0554cd88977
用户名: veexp “veexp”的密码:
A lj12-source/tim.h A lj12-source/en.c
......
认证失败的密码缓冲记录位置,明文密码。到1.6版本,可能使用keyring管理。如果调试密码,直接删除如下文件就可。
~/.subversion/auth/svn.simple/:
eea34a6f7baa67a3639cacd6a428dba4
[编辑
]
通过具被SSH隧道保护的自带协议访问(svn+ssh://)
配置和服务器进程于上节所述相同。我们假设您已经运行了“svnserve”命令。
我们还假设您运行了 ssh 服务并允许接入。要验证这一点,请尝试使用 ssh 登录计算机。如果您可以登录,那么大功告成,如果不能,请在执行下面的步骤前解决它。
svn+ssh:// 协议使用 SSH 加密来访问 SVN 文件仓库。如您所知,数据传输是加密的。要访问这样的文件仓库,请输入:
$ svn co svn+ssh://hostname/home/svn/myproject myproject --username user_name
注意:在这种方式下,您必须使用完整的路径(/home/svn/myproject)来访问 SVN 文件仓库
基于服务器的配置,它会要求输入密码。您必须输入您用于登录 ssh 的密码,一旦通过验证,就会签出文件仓库中的代码。
您还应该参考 SVN book 以了解关于 svn+ssh:// 协议的详细信息。
[编辑
]
启动svnserve,并在开机时自动执行
執行以下命令,即可啟動 SVN:
# sudo svnserve -d -r /home/svn
在 /etc/init.d 目录下谢一个脚本svnd.sh,内容如下:
#!/bin/bash
#svnserve startup
svnserve -d -r /home/svn
然后执行:
update-rc.d svnd.sh defaults
只需两步就可以让svn在系统启动时启动
之後,便可以使用 /etc/init.d/svn-serve start/stop/restart 來 啟動/停止/重新啟動 svn 服務。
使用svnadmin搬移Repositor
在旧主机上执行
# svnadmin dump /home/svn | gzip > backup.svn.gz
复制到新主机上,并在新主机上执行
# gzip -d -r backup.svn.gz
# svnadmin load < backup.svn /home/svn
分享到:
相关推荐
Ubuntu 下 SVN 服务器安装配置 本资源提供了 Ubuntu 下 SVN 服务器安装配置的详细步骤,旨在帮助用户快速安装和配置 SVN 服务器。下面是本资源的主要知识点: 1. SVN 简介:Subversion 是一款开放源代码的版本控制...
完成上述步骤后,你将拥有一个配置了SSL安全和LDAP认证的Ubuntu SVN服务器,允许团队成员通过HTTP/HTTPS安全地访问和操作版本库。这个过程确保了数据的保密性和用户的身份验证,提高了协作的效率和安全性。在实际...
通过以上步骤,您已经成功地在Ubuntu 12.04上配置了一个基本的SVN服务器。这使得团队成员可以通过指定的URL访问代码库,进行代码的提交、更新和版本控制。记住,根据实际项目需求,可能还需要进一步配置防火墙规则、...
在Linux或Ubuntu环境中,配置SVN(Subversion)服务器自动发送邮件主要涉及到以下几个关键步骤,这些步骤可以帮助开发者在每次提交代码时,...同时,了解如何配置SVN服务器发送邮件也是提升DevOps效率的一个关键技能。
### Ubuntu下配置SVN服务器详解 #### 一、前言 在开源软件开发及团队协作过程中,版本控制系统扮演着至关重要的角色。Subversion (SVN) 是一款非常流行且功能强大的集中式版本控制系统,适用于各种规模的项目。...
若要启动一个基于HTTP/HTTPS的服务,以便远程访问仓库,你需要安装Apache HTTP服务器并配置SVN模块。执行以下命令安装Apache2和`libapache2-svn`包: ```bash sudo apt install apache2 libapache2-svn ``` 然后,...
### Ubuntu上搭建SVN服务器全攻略 #### 1. 概述 本文旨在详细介绍如何在Ubuntu环境下搭建SVN(Subversion)服务器,并结合Apache服务器以及SSL加密技术,实现安全、高效的版本控制服务。通过HTTPS协议访问SVN...
以下是如何在Ubuntu上设置SVN服务器的详细步骤: 首先,确保安装了Subversion和Apache2的SVN模块。在终端中运行以下命令: ```bash sudo apt-get install subversion sudo apt-get install libapache2-svn ``` 如果...
本文将详细介绍如何在Ubuntu上配置和运行一个SVN服务器。 首先,我们需要了解SVN的基本概念。SVN是一个开源的版本控制系统,它允许用户对文件和目录进行版本控制,便于多人协作开发,同时保持代码的历史记录。通过...
在Ubuntu 16.04 LTS环境下搭建...以上步骤为在Ubuntu 16.04 LTS系统中搭建SVN服务器的具体操作,由亲测经验得出,可作为参考。如果在实践过程中遇到任何问题,需要根据具体的错误信息进行相应的问题排查和解决。
在Ubuntu操作系统下安装SVN服务器是一个较为直接的过程,虽然本指南针对的是Ubuntu 9.10版本,但其基本步骤对于大多数Ubuntu及其衍生版本都是适用的。SVN,即Subversion,是一种版本控制系统,广泛用于代码的版本...
总之,配置SVN服务器涉及安装SVN软件、设置Apache模块、创建仓库、配置Apache配置文件以及管理用户权限。这是一项至关重要的任务,因为它确保了团队的协作效率和代码的版本控制。随着对SVN服务器配置的深入理解和...
本文将详细介绍 Ubuntu 环境下搭建 SVN 服务器的过程,包括安装 Ubuntu 服务器、安装 Apache 服务器、创建 SVN 服务器、配置 Apache 服务器、设置 SVN 权限等步骤。 标题:Ubuntu 上搭建 SVN 服务器全攻略 描述:...
本文档将指导您在 Ubuntu 操作系统下安装和配置 SVN(Subversion)和 Apache 服务器。 一、准备源码包 在开始安装之前,需要下载以下三个源码包: 1. Subversion 1.6.17:...
配置 svn 服务器需要设置 svn 服务器的配置文件,通常位于 /etc/subversion 目录下。需要设置 svn 服务器的认证机制,使用 ldap 服务器进行用户认证。 5. 配置 sasl 认证协议 配置 sasl 认证协议需要设置 sasl 的...
【Ubuntu SVN】搭建指南 Ubuntu下安装和配置SVN(Subversion)...通过以上步骤,你已经在Ubuntu上成功搭建了SVN服务器,并了解了基本的客户端操作。记得保持你的SVN版本和配置文件的更新,以确保最佳的稳定性和性能。
为此,本教程将详细介绍如何在Ubuntu环境下安装界面化的SVN客户端——RabbitVCS,使其能够访问Windows服务器上的SVN仓库。RabbitVCS是一款轻量级且易于使用的SVN和Git客户端,它集成了Nautilus文件管理器,为用户...
### SVN服务器+SASL认证在Ubuntu 10.04上的安装与配置 #### 安装Subversion(SVN) 1. **安装Subversion:** 首先确保Ubuntu 10.04系统已安装Subversion。可以使用`sudo apt-get install subversion`命令进行安装...
总结来说,这个教程详细地阐述了在Ubuntu 8.10系统上建立一个安全且功能完备的SVN服务器的全过程,涵盖了从环境准备、服务器安装、SVN仓库创建、Apache配置到权限管理和SSL安全的各个环节,对于需要在Linux环境中...