2008-09-13 98 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 
相關問題