# Linux系統中如何安裝SVN服務
## 一、SVN簡介
Apache Subversion(簡稱SVN)是一個開源的版本控制系統,廣泛用于軟件開發中的代碼版本管理。與Git不同,SVN采用集中式版本控制模式,適合需要嚴格權限控制的企業環境。本文將詳細介紹在Linux系統中安裝和配置SVN服務的完整流程。
---
## 二、環境準備
### 1. 系統要求
- 操作系統:Ubuntu 20.04/CentOS 7(其他Linux發行版可參考調整)
- 用戶權限:root或具有sudo權限的賬戶
- 磁盤空間:至少1GB可用空間(根據倉庫大小調整)
### 2. 更新系統
安裝前建議更新系統軟件包:
```bash
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt install subversion libapache2-mod-svn -y
# CentOS/RHEL
sudo yum install subversion mod_dav_svn -y
svn --version
正常輸出應顯示版本信息(如 svn, version 1.14.1
)
sudo mkdir -p /var/svn/repositories
sudo chown -R www-data:www-data /var/svn/repositories # Ubuntu
# CentOS使用:sudo chown -R apache:apache /var/svn/repositories
以創建名為myproject
的倉庫為例:
sudo svnadmin create /var/svn/repositories/myproject
創建后的倉庫包含以下關鍵文件:
conf/ # 配置文件目錄
├── authz # 權限控制文件
├── passwd # 密碼文件
└── svnserve.conf # 服務配置文件
db/ # 版本數據庫
hooks/ # 鉤子腳本目錄
編輯配置文件:
sudo nano /var/svn/repositories/myproject/conf/svnserve.conf
取消注釋并修改以下參數:
[general]
anon-access = none # 禁止匿名訪問
auth-access = write # 認證用戶可寫
password-db = passwd # 指定密碼文件
authz-db = authz # 啟用權限控制
編輯passwd文件:
sudo nano /var/svn/repositories/myproject/conf/passwd
添加用戶格式:
[users]
user1 = password123
user2 = abc@456
編輯authz文件示例:
[groups]
developers = user1,user2
admins = user1
[/]
@admins = rw
@developers = r
* =
sudo svnserve -d -r /var/svn/repositories --listen-port 3690
-d
:后臺運行-r
:指定根目錄--listen-port
:指定端口(默認3690)創建服務文件:
sudo nano /etc/systemd/system/svnserve.service
內容示例:
[Unit]
Description=Subversion Daemon
[Service]
ExecStart=/usr/bin/svnserve -d -r /var/svn/repositories --listen-port 3690
User=www-data
[Install]
WantedBy=multi-user.target
啟用服務:
sudo systemctl enable --now svnserve
sudo systemctl enable svnserve
sudo systemctl start svnserve
# Ubuntu
sudo ufw allow 3690/tcp
# CentOS
sudo firewall-cmd --permanent --add-port=3690/tcp
sudo firewall-cmd --reload
telnet 服務器IP 3690
成功連接會顯示 ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries ) ) )
svn checkout svn://服務器IP/myproject --username user1
svn commit -m "初次提交"
安裝模塊后配置:
<Location /svn>
DAV svn
SVNParentPath /var/svn/repositories
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn-auth-users
Require valid-user
</Location>
使用svnadmin dump
:
svnadmin dump /var/svn/repositories/myproject > myproject_backup.svn
權限拒絕錯誤
檢查倉庫目錄的所屬用戶是否與運行用戶一致
連接被拒絕
確認防火墻規則和svnserve服務狀態
認證失敗
檢查passwd文件中的用戶名密碼是否包含特殊字符
通過以上步驟,您已成功在Linux系統上搭建了完整的SVN服務環境。建議定期維護倉庫并做好備份,更多高級功能可參考官方文檔:https://subversion.apache.org/docs/ “`
注:本文實際約1100字,可根據需要補充以下內容擴展: 1. 具體鉤子腳本示例(如post-commit郵件通知) 2. 與CI/CD工具的集成方法 3. 圖形化管理工具推薦
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。