2008-09-13 96 views
94

我有一台运行Ubuntu的笔记本电脑,我想充当Subversion服务器。既为自己承诺本地,也为远程承诺。需要采取哪些措施才能实现这一目标?请包括步骤:如何在GNU/Linux上设置Subversion(SVN)服务器 - Ubuntu

  • 获取和配置Apache和必要的模块(我知道还有其他方法来创建一个SVN服务器,但我想它阿帕奇专用)
  • 配置访问的安全方式服务器(SSH/HTTPS)
  • 配置一组授权用户(因为他们必须被授权提交,但可以自由浏览)
  • 验证设置的初始提交(“Hello World” )

这些步骤可能涉及命令行或GUI应用程序指令的任意混合。如果可以的话,请注意说明特定分发或版本的说明,以及用户可以选择使用特定工具(例如,nano而不是vi)。

+0

我可以在任何平台上使用Ubuntu的Subversion服务器和客户端?就像Windows上的Tortoise SVN客户端一样? – 2015-01-28 08:24:48

回答

140

我已经采取了使我的笔记本电脑成为Subversion服务器的步骤。信贷必须去AlephZarro的指导here。我现在有一个有效的SVN服务器(目前仅在本地进行过测试)。

具体设置: Kubuntu 8。04哈苍鹭

要求要按照本指南:

  • apt-get的软件包管理器程序
  • 文本编辑器(我用凯特)
  • sudo的访问权限

1:安装Apache HTTP服务器和所需模块:

sudo apt-get install libapache2-svn apache2 

下列额外的软件包将被安装:

apache2-mpm-worker apache2-utils apache2.2-common 

2:启用SSL

sudo a2enmod ssl 
sudo kate /etc/apache2/ports.conf 

添加或检查以下是文件中:

<IfModule mod_ssl.c> 
    Listen 443 
</IfModule> 

3:产生SSL证书:

sudo apt-get install ssl-cert 
sudo mkdir /etc/apache2/ssl 
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem 

4:创建虚拟主机

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver 
sudo kate /etc/apache2/sites-available/svnserver 

变化(ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443" 

和(在svnserver)

<VirtualHost *> to <VirtualHost *:443> 

添加(SERVERADMIN)(下也是在文件svnserver ):

SSLEngine on 
SSLCertificateFile /etc/apache2/ssl/apache.pem 
SSLProtocol all 
SSLCipherSuite HIGH:MEDIUM 

5:启用站点:

​​

为了克服警告:

sudo kate /etc/apache2/apache2.conf 

地址:

"ServerName $your_server_name" 

6:添加库(IES): 以下设置假设我们要托管多个存储库。 运行以创建第一个存储库:

sudo mkdir /var/svn 

REPOS=myFirstRepo 
sudo svnadmin create /var/svn/$REPOS 
sudo chown -R www-data:www-data /var/svn/$REPOS 
sudo chmod -R g+ws /var/svn/$REPOS 

6.a.为多个库:执行步骤6再次(改变REPOS的值),跳过步骤mkdir /var/svn

7:添加认证用户

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name 

8:启用和配置WebDAV和SVN:

sudo kate /etc/apache2/mods-available/dav_svn.conf 

添加或取消注释:

<Location /svn> 
DAV svn 

# for multiple repositories - see comments in file 
SVNParentPath /var/svn 

AuthType Basic 
AuthName "Subversion Repository" 
AuthUserFile /etc/apache2/dav_svn.passwd 
Require valid-user 
SSLRequireSSL 
</Location> 

9:重新启动Apache服务器:

sudo /etc/init.d/apache2 restart 

10:验证:

发射了一个浏览器:

http://localhost/svn/$REPOS 
https://localhost/svn/$REPOS 

两个要求输入用户名和密码。我认为取消注释:

<LimitExcept GET PROPFIND OPTIONS REPORT> 

</LimitExcept> 

in /etc/apache2/mods-available/dav_svn.conf,将允许匿名浏览。

浏览器显示 “修订0:/”

提交的东西:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing” 

接受证书,并输入密码。 看看你刚刚犯了什么:

svn co --username $user_name https://localhost/svn/$REPOS 

遵循这些步骤(假设我没有作出任何错误复制/粘贴),我有我的笔记本电脑工作的SVN仓库。

+0

指令也在Jaunty上完美运行。谢谢! – 2009-11-28 04:41:43

+6

似乎完美的工作,但我试图访问它时,得到一个403禁止,并没有提示输入密码。有什么提示可能是错误的? – korona 2010-06-30 12:16:38

-3

对于Apache:

sudo apt-get -yq install apache2 

对于SSH:

sudo apt-get -yq install openssh-server 

对于颠覆:

sudo apt-get -yq install subversion subversion-tools 

如果你希望你可以像这些组合到一个命令:

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools 

我不能帮助其余的...

1

This article似乎给了整个过程很不错的概要。我建议按照说明进行操作,然后发布一些关于您遇到的问题的更具体的问题,这些问题在文章I和其他人在这些回复中未涉及的问题中未涉及。

1

如果您在访问网络服务器时遇到403禁止,可能是因为您使用的主机名不是您在配置文件中指定的主机名(即localhost或127.0.0.1)。试着打https://whateveryousetasyourhostname,而不是...

2

之后,我需要执行

$ sudo的文件模式G + W/VAR/SVN/$ REPOS/DB/REP-缓存(上面引述的例子的上下文中) .db的

$ sudo的CHOWN WWW的数据:WWW的数据/var/svn/$REPOS/db/rep-cache.db

否则我不停地犯本地修改 时收到一个409错误(虽然承诺服务器端有效,我需要跟进本地更新)

-3

请在终端上写一条命令。

要打开终端,请按Ctrl键+ Alt键+牛逼,然后键入以下命令:

$sudo apt-get install subversion 
相关问题