安装Subversion和配置访问通过不同的协议在Debian Squeeze

安装Subversion并通过不同协议配置访问Debian Squeeze

Subversion (svn)是一个开源版本控制系统(VCS),用于开发许多软件项目。 本教程将介绍如何在Debian Squeeze上安装Subversion,以及如何配置它以允许通过不同的协议访问存储库: file://http://https://svn://svn + ssh: //

我不会保证这将为您工作!

1初步说明

本教程专注于Subversion安装和配置,而不是其使用。 您可以在这里找到usefull svn命令列表: http : //wiki.greenstone.org/wiki/index.php/Useful_SVN_Commands 。 完整的svn文档在这里: http : //svnbook.red-bean.com/en/1.5/index.html

我在这里使用的Debian Squeeze系统具有IP地址192.168.0.100 ,我将在本教程中的各种svn命令中使用。 确保将其替换为您自己的服务器的IP /主机名。

2安装Subversion

Subversion可以安装如下:

apt-get install subversion

接下来我们创建一个保存我们的存储库/存储库的目录 - 我使用/ var / lib / svn ,但是如果你喜欢,可以使用另一个目录。

mkdir -p /var/lib/svn

我想在/ var / lib / svn目录中为我的名为myproject的软件项目创建一个存储 ,这可以如下完成:

svnadmin create /var/lib/svn/myproject

当然,仓库是空的,直到我们将项目导入它。

有几种可以用来访问svn的方法或协议:

  • file:// - 通过这个协议可以直接访问存储库。 仅在同一系统(本地磁盘)上运行,而不是通过网络运行。 开箱即用
  • http:// - 可以在Subversion感知的Apache2服务器上使用WebDAV来访问存储库。 通过网络(端口80)工作。
  • https:// - 与http://相同,但通过安全的SSL连接(端口443)。
  • svn:// - 通过svnserve服务器访问存储库。 通过网络工作(端口3690)。
  • svn + ssh:// - 与svn://相同,但通过SSH隧道(端口22)。

3使用文件://协议

文件://协议工作开箱即用(不需要任何服务器进程),但仅在本地,不通过网络。

我们可以使用它将我们的软件项目(我已经存储在/ home / falko / myproject中 )导入到/ var / lib / svn / myproject存储库中:

svn import /home/falko/myproject file://localhost/var/lib/svn/myproject

结帐可以如下进行:

svn co file://localhost/var/lib/svn/myproject /home/falko/somedir

4使用http://协议

对于http://协议,我们需要在Apache2服务器上配置WebDAV。 因此,我们现在安装Apache2和Apache2 SVN模块:

apt-get install apache2 libapache2-svn

现在我们通过编辑/etc/apache2/mods-available/dav_svn.conf来配置Apache2 SVN模块:

vi /etc/apache2/mods-available/dav_svn.conf

该文件中已有一个配置,但已被注释掉。 您可以将其注释掉,但在文件末尾,请添加以下行:

[...]
 <Location /svn>
  DAV svn
  SVNParentPath /var/lib/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
 </Location>

重新启动Apache:

/etc/init.d/apache2 restart

因为我们将从现在开始就像Apache用户( www-data )和组( www-data )一样读写我们的存储库,所以我们必须将/ var / lib / svn及其子目录的所有者和组更改为Apache用户现在组:

chown -R www-data:www-data /var/lib/svn

请注意:如果您决定使用http://https://访问SVN, 请不要再使用任何其他协议写入SVN ,因为更改后的文件的所有权将与Apache用户/组不匹配,如果你不要使用http://https://

现在我们必须创建包含所有可以访问SVN的用户的密码文件/etc/apache2/dav_svn.passwd (我将使用用户falko 直到这里)。

htpasswd -c /etc/apache2/dav_svn.passwd falko

请注意:仅当您首次创建/etc/apache2/dav_svn.passwd文件时,才使用-c开关。 如果要添加其他用户,请将其退出(否则文件将从头开始创建,这意味着您丢失了已经在文件中的所有用户):

htpasswd /etc/apache2/dav_svn.passwd till

您现在可以使用http://协议进行如下检查请确保使用正确的用户名:

svn co --username falko http://192.168.0.100/svn/myproject /home/falko/somedir
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏