Ubuntu下SubVersion服务安装设置
目录
1 SubVersion服务安装设置
1.1 简介
1.2 假设
1.3 本文涉及的范围
1.4 安装
1.5 服务器配置
1.5.1 创建 SVN 仓库
1.6 访问方式
1.6.1 直接访问文件仓库(file://)
1.6.2 通过 WebDAV 协议访问(http://)
1.6.3 通过具有安全套接字(SSL)的 WebDAV 协议访问(https:// )
1.6.4 通过自带协议访问(svn://)
1.6.5 通过具被SSH隧道保护的自带协议访问(svn+ssh://)
本文档阐述了如何在 Ubuntu 上设置 Subversion(通常也被称为 svn)。我们假设本文的读者是具有一定经验的 Linux 用户和系统管理员。
简介
如果您对 Subversion 还比较陌生,本节将给您一个关于 Subversion 的简要介绍。
Subversion 是一款开放源代码的版本控制系统。使用 Subversion,您可以重新加载源代码和文档的历史版本。Subversion 管理了源代码在各个时期的版本。一个文件树被集中放置在文件仓库中。这个文件仓库很像是一个传统的文件服务器,只不过它能够记住文件和目录的每一次变化。
假设
首先我们假设您能够在 Ubuntu 中操作 Linux 的命令、编辑文件、启动和停止服务。当然,我们还认为您的 Ubuntu 正在运行中,您可以使用
本文涉及的范围
要通过 HTTP 协议访问 SVN 文件仓库,您需要安装并配置好 Web 服务器。Apache 2 被证实可以很好的与 SVN 一起工作。关于 Apache 2 的安装超出了本文的范围 ,尽管如此,本文还是会涉及如何配置 Apache 2 使用 SVN。
类似的,要通过 HTTPS 协议访问 SVN 文件仓库,您需要在您的 Apache 2 中安装并配置好数字证书,这也不在本文的讨论范围之中。
安装
幸运的,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”的用户组,该组是SVN仓库所在的目录的拥有者。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:
- 在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
- 切换到“组”标签;
- 点击“添加组”按钮;
- 组名为“subversion”;
- 将您自己和“www-data”(Apache 用户)加入组成员中;
- 点击“OK”以确认修改,关闭该程序。
或者使用命令完成上述功能(增加组,并且把用户加到组里):
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 通道 |