在Linux上部署Subversion(SVN)服務器,可以按照以下步驟進行:
首先,你需要在你的Linux系統上安裝Subversion??梢允褂冒芾砥鱽戆惭b。例如,在基于Debian的系統(如Ubuntu)上,可以使用以下命令:
sudo apt update
sudo apt install subversion
在基于RPM的系統(如CentOS、Fedora)上,可以使用以下命令:
sudo yum install subversion
安裝完成后,你可以創建一個新的SVN倉庫。倉庫通常存儲在一個目錄中,你可以使用svnadmin create
命令來創建倉庫。例如:
sudo mkdir /var/svn/myrepo
sudo svnadmin create /var/svn/myrepo
你可以通過編輯倉庫的conf
目錄下的文件來配置倉庫。主要的配置文件是svnserve.conf
和passwd
文件。
svnserve.conf
sudo nano /var/svn/myrepo/conf/svnserve.conf
確保以下配置項沒有被注釋掉(即沒有前面的#
):
anon-access = read
auth-access = write
password-db = passwd
passwd
文件sudo nano /var/svn/myrepo/conf/passwd
在這里添加用戶和密碼。例如:
[users]
user1 = password1
user2 = password2
你可以使用svnserve
來啟動SVN服務器。默認情況下,svnserve
會在本地端口3690上運行。你可以使用以下命令啟動服務器:
sudo svnserve -d -r /var/svn
-d
選項表示以守護進程模式運行,-r
選項表示指定倉庫的根目錄。
一旦服務器啟動,你可以從客戶端檢出項目。例如:
svn checkout svn://localhost/myrepo /path/to/checkout
如果你使用的是基于iptables的系統,你可能需要允許SVN服務器的端口(默認是3690)。例如:
sudo iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
sudo service iptables save
如果你希望通過Web界面訪問SVN倉庫,可以使用Apache HTTPD作為反向代理。首先安裝Apache和相關的模塊:
sudo apt install apache2 libapache2-mod-svn
然后編輯Apache的配置文件(例如/etc/apache2/sites-available/svn.conf
):
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>
創建用戶并添加到dav_svn.passwd
文件中:
sudo htpasswd -cm /etc/apache2/dav_svn.passwd user1
sudo htpasswd -cm /etc/apache2/dav_svn.passwd user2
最后,啟用配置并重啟Apache:
sudo a2ensite svn.conf
sudo systemctl restart apache2
現在你可以通過HTTP訪問SVN倉庫:
svn checkout http://localhost/svn/myrepo /path/to/checkout
通過以上步驟,你應該能夠在Linux上成功部署一個Subversion服務器。