SVN安装

来源:互联网 发布:网络格斗游戏大全 编辑:程序博客网 时间:2024/05/18 03:33

SVN是一个文件版本控制的免费软件。功能和微软的source safe和clearcase差不多,功能介于两者之间,比clearcase稍差,但易于使用。我们可以在http://www.svn8.com/svnjs/20080930/1040.html.了解到更多这款软件的信息。

     今天下午和同事安装SVN server整整浪费了一个下午的时间,让人很恼火,但是这里记录安装时遇到的问题避免以后犯同样的错误。

#########################################################################

安装SVN使用的所有命令:

#########################################################################

1. sudo apt-get install apache2
2. sudo apt-get install subversion libapache2-svn
3. $sudo groupadd subversion
4. $sudo usermod -g subversion www-data (apache user)
4. $sudo usermod -g subversion username
5. $sudo chown -R www-data:subversion /home/svn/project/ (此处必须使apache user的名字否则会遇到访问权限的问题) 

$sudo chmod -R 1776 /home/svn/project/

$sudo svnadmin create /home/svn/project/

$sudo vim /home/svn/project/conf/svnserve.conf

去掉#[general]和# password-db = passwd 前的#

//$sudo vim /home/svn/project/conf/passwd

//以username = password形式添加用户

//$sudo vim /home/svn/project/conf/passwd/authz
$sudo vim /home/svn/project/conf/passwd
username = password

sudo vim /home/svn/project/conf/authz
]
subversion = xjvm36,jqc837
# harry_sally_and_joe = harry,sally,&joe

#[/foo/bar]
# harry = rw
# &joe = r
# * =
[/]
*=r

[myproject:/]
xjvm36=rw
jqc837=rw

修改用户权限配置

6. sudo vim /etc/apache2/mods-available/dav_svn.conf

<Location /svn/myproject>  <--这里将是以后你使用TortoiseSVN or RapidSvn的时候添加URL时的ip地址后的内容
DAV svn
SVNPath /home/svn/myproject   <--这里是你的project存放的目录
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>

$svnserve -d -r /home/svn

——————————————————————————————————————————————————————

#########################################################################

安装SVN时遇到的问题及解决方法

#########################################################################

问题1:由于IE使用proxy无法访问到SVN Server

解决方法:在IE里面设置选项中添加SVN Server的地址在No proxy list中

问题2:apache访问无权限

在/var/log/apache2/error.log下的apache的信息显示如下:

[Thu Feb 05 16:20:59 2009] [error] [client 10.194.66.225] (20014)Internal error: Can't open file '/home/svn/project/format': No such file or directory
[Thu Feb 05 16:20:59 2009] [error] [client 10.194.66.225] Could not fetch resource information.  [500, #0]
[Thu Feb 05 16:20:59 2009] [error] [client 10.194.66.225] Could not open the requested SVN filesystem  [500, #2]
[Thu Feb 05 16:20:59 2009] [error] [client 10.194.66.225] Could not open the requested SVN filesystem  [500, #2]

解决方法:sudo chown -R www-data:subversion /home/svn/project/ (此处必须使apache user的名字否则会遇到访问权限的问题)  这个问题浪费了我们3个小时的时间,呜呜~~~

 

以下为转载


 

#########################################################################

来自网络的安装方法

#########################################################################

Subversion
是一款开放源代码的版本控制系统。使用Subversion,您能够重新加载源代码和文档的历史版本。Subversion管理了源代码在各个时期的版
本。一个文档树被集中放置在文档仓库中。这个文档仓库很像是个传统的文档服务器,只但是他能够记住文档和目录的每一次变化。
2. 假设
首先我们假设您能够在 Ubuntu 中操作 Linux 的命令、编辑文档、启动和停止服务。当然,我们还认为您的 Ubuntu 正在运行中,您能够使用 sudo 操作并且您打算使用 Subversion。
我们假设您可能需要使用任何可能的方法访问 SVN 文档仓库。同时我们也认为您应该已配置好了您的 /etc/apt/sources.list 文档。
3. 本文涉及的范围
要通过 HTTP 协议访问 SVN 文档仓库,您需要安装并配置好 Web 服务器。Apache 2 被证实能够很好的和 SVN 一起工作。关于 Apache 2 的安装超出了本文的范围,尽管如此,本文还是会涉及怎样配置 Apache 2 使用 SVN。
类似的,要通过 HTTPS 协议访问 SVN 文档仓库,您需要在您的 Apache 2 中安装并配置好数字证书,这也不在本文的讨论范围之中。
4. 安装
幸运的,Subversion 已包含在 main 仓库中。所以,要安装 Subversion,您只需要简单的运行:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
假如系统报告了依赖关系的错误,请找出相应的软件包并安装他们。假如存在其他问题,也请自行解决。假如您是再不能解决这些问题,能够考虑通过 Ubuntu 的网站、Wiki、论坛或邮件列表寻求支持。
5. 服务器配置
您应该已安装了上述的软件包。本节将阐述怎样创建 SVN 文档仓库连同怎样配置项目的访问权限。
5.1. 创建 SVN 仓库
许多位置都能够放置
Subversion文档仓库,其中两个最常用的是:/usr/local/svn 连同
/home/svn。为了在下面的描述中简单明了,我们假设您的Subversion 文档仓库放在
/home/svn,并且您的项目名称是简单的“myproject”。
同样的,也有许多常用的方式配置文档仓库的访问权限。然而,这也是安装过程中最经常出现错误
的地方,因此我们会对此进行一个周详说明。典型的情况下,您应该创建一个名为“Subversion”的组来拥有文档仓库所在的目录。下面是个快速的操
作说明,有关内容请参考相关文档的周详说明:
在 Ubuntu 菜单上选择“系统->系统管理->用户和组”;
转换到“组”标签;
点击“添加组”按钮;
组名为“subversion”;
将您自己和“www-data”(Apache 用户)加入组成员中;
点击“OK”以确认修改,关闭该程式。
您需要注销然后再登录以便您能够成为 subversion 组的一员,然后就能够执行签入文档(Check in,也称提交文档)的操作了。
现在执行下面的命令
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
$ sudo chmod -R g+rws myproject
最后的一条命令赋予组成员对任何新加入文档仓库的文档拥有相应的权限。
下面的命令用于创建 SVN 文档仓库:
$ sudo svnadmin create /home/svn/myproject
6. 访问方式
Subversion 文档仓库能够通过许多不同的方式进行访问(Check Out,签出)??通过本地硬盘,或通过各种网络协议。无论怎样,文档仓库的位置总是使用 URL 来表示。下表显示了不同的 URL 模式对应的访问方法:
模式
访问方法
file:///
直接访问本地硬盘上文档仓库
http://
通过 WebDAV 协议访问支持 Subversion 的 Apache 2 Web 服务器
https://
类似 http://,支持 SSL 加密
svn://
通过自带协议访问 svnserve 服务器
svn+ssh://
类似 svn://,支持通过 SSH 通道
本节中,我们将看到怎样配置 SVN 以使之能够通过任何的方法得以访问。当然这里我们之讨论基本的方法。要了解更高级的用途,我们推荐您阅读《使用 Subversion 进行版本控制》在线电子书。
6.1. 直接访问文档仓库(file://)
这是任何访问方式中最简单的。他无需事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文档仓库。语法是:
$ svn co file:///home/svn/myproject

$ svn co file://localhost/home/svn/myproject
注意:假如您并不确定主机的名称,您必须使用三个斜杠(///),而假如您指定了主机的名称,则您必须使用两个斜杠(//).
对文档仓库的访问权限基于文档系统的权限。假如该用户具备读/写权限,那么他/她就能够签出/提交修改。假如您像前面我们说描述的那样配置了相应的组,您能够简单的将一个用户添加到“subversion”组中以使其具备签出和提交的权限。
6.2. 通过 WebDAV 协议访问(http://)
要通过 WebDAV 协议访问 SVN 文档仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apach2/apache2.conf 中:
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user

当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart
接下来,您需要创建 /etc/subversion/passwd 文档,该文档包含了用户授权的周详信息。要添加用户,您能够执行下面的命令:
sudo htpasswd2 /etc/subversion/passwd user_name
他会提示您输入密码,当您输入了密码,该用户就建立了。您能够通过下面的命令来访问文档仓库:
$ svn co http://hostname/svn/myproject myproject --username user_name
他会提示您输入密码。您必须输入您使用 htpasswd2 配置的密码。当通过验证,项目的文档就被签出了。
警告:密码是通过纯文本传输的。假如您担心密码泄漏的问题,我们建议您使用 SSL 加密,有关详情请看下一节。
6.3. 通过具备安全套接字(SSL)的 WebDAV 协议访问(https://)
通过具备 SSL 加密的 WebDAV 协议访问 SVN 文档仓库(https://)很类似上节所述的内容,除了您必须为您的 Apache 2 Web 服务器配置数字证书之外。
您能够安装由诸如 Verisign 发放的数字签名,或您能够安装您自己的数字签名。
我们假设您已为 Apache 2 Web 服务器安装和配置好了相应的数字证书。现在按照上一节所描述的方法访问 SVN 文档仓库,别忘了把 http:// 换成 https://。怎样,几乎是一模相同的!
6.4. 通过自带协议访问(svn://)
当您创建了 SVN 文档仓库,您能够修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。
例如,您能够取消下面的注释符号来配置授权机制:
# [general]
# password-db = passwd
现在,您能够在“passwd”文档中维护用户清单。编辑同一目录下“passwd”文档,添加新用户。语法如下:
$sudo vim /home/svn/project/conf/passwd
username = password

sudo vim /home/svn/project/conf/passwd/authz
]
subversion = xjvm36,jqc837
# harry_sally_and_joe = harry,sally,&joe

#[/foo/bar]
# harry = rw
# &joe = r
# * =
[/]
*=r

[myproject:/]
xjvm36=rw
jqc837=rw

. $sudo usermod -g subversion username

要了解详情,请参考该文档。
现在,您能够在本地或远程通过 svn:// 当文 SVN 了,您能够使用“svnserve”来运行 svnserver,语法如下:i

$ 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
6.5. 通过具备安全套接字(SSL)的自带协议访问(svn+ssh://)
配置和服务器进程于上节所述相同。我们假设您已运行了“svnserve”命令。
我们还假设您运行了 ssh 服务并允许接入。要验证这一点,请尝试使用 ssh 登录电脑。假如您能够登录,那么大功告成,假如不能,请在执行下面的步骤前解决他。
svn+ssh:// 协议使用 SSL 加密来访问 SVN 文档仓库。如您所知,数据传输是加密的。要访问这样的文档仓库,请输入:
$ svn co svn+ssh://hostname/home/svn/myproject myproject --username user_name
注意:在这种方式下,您必须使用完整的路径(/home/svn/myproject)来访问 SVN 文档仓库
基于服务器的配置,他会需要输入密码。您必须输入您用于登录 ssh 的密码,一旦通过验证,就会签出文档仓库中的代码。
您还应该参考 SVN book 以了解关于 svn+ssh:// 协议的周详信息。
7. 参考资料
Setting up Apache on Ubuntu
SVN Home page
SVN Book
Apache 2 Documentation
Mod-SSL
Apache-SSL

原创粉丝点击