1. 安裝
CentOS通過yum安裝subversion。
# yum install subversion
subversion安裝在/bin目錄:
# which svnserve #查看目錄命令/usr/bin/svnserve
檢查一下subversion是否安裝成功。不要使用1.8版本
# svnserve --version
svnserve, version 1.7.14 (r1542130)
2. 建立版本庫
subversion默認以/var/svn作爲數據根目錄,可以通過/etc/sysconfig/svnserve修改這個默認位置。
# vim /etc/sysconfig/svnserve
文件內容
OPTIONS="-r /var/svn"
可修改
使用svnadmin建立版本庫svntest。
# mkdir -p /var/svn/svntest //遞歸創建多個目錄
# svnadmin create /var/svn/svntest
# ll /data/svn/svntest //查看目錄中內容
drwxr-xr-x. 2 root root 51 Nov 10 14:42 conf
drwxr-sr-x. 6 root root 4096 Nov 10 14:42 db
-r--r--r--. 1 root root 2 Nov 10 14:42 format
drwxr-xr-x. 2 root root 4096 Nov 10 14:42 hooks
drwxr-xr-x. 2 root root 39 Nov 10 14:42 locks
-rw-r--r--. 1 root root 229 Nov 10 14:42 README.txt
3. 配置
cd /var/svn/svntest
a、編輯用戶文件passwd,新增兩個用戶:admin和guest。
# vim conf/passwd
[users]
admin = admin
guest = guest
b、編輯權限文件authz,用戶admin設置可讀寫權限,guest設置只讀權限。
# vim conf/authz
[/]
admin = rw
guest = r
c、編輯svnserve.conf:
# vim conf/svnserve.conf
[general]anon-access = none #控制非鑑權用戶訪問版本庫的權限
auth-access = write #控制鑑權用戶訪問版本庫的權限
password-db = passwd #指定用戶名口令文件名
authz-db = authz #指定權限配置文件名
//realm = svntest #指定版本庫的認證域,即在登錄時提示的認證域名稱 //測試不需要
4. SVN服務
啓動SVN服務。
# systemctl start svnserve.service
檢查服務是否啓動成功。
# ps aux | grep svnroot 16349 0.0 0.1 162180 900 ? Ss 15:01 0:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /opt/svn
通過netstat可以看到SVN打開了3690端口。
# netstat -tnlpProto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 16349/svnserve
設置成開機啓動。
# systemctl enable svnserve.service
5. 更改防火牆設置
firewall-cmd --zone=public --add-port=3690/tcp --permanen
systemctl restart firewalld.service
6. 客戶端測試
客戶端可以通過TortoriseSVN測試。
Linux下客戶端使用SVN
將文件checkout到本地目錄svn666
svn checkout svn://127.0.0.1 ./svn666
有修改的時候
# svn add * //添加文件
# svn commit -m '這是註釋內容' //提交
# svn update //更新
svn 設置開機啓動( CentOS7 )
vim /usr/lib/systemd/system/svnserve.service
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
[Install]
WantedBy=multi-user.target
然後將服務設置爲可用
systemctl enable svnserve.service
查看服務列表狀態
systemctl list-units --type=service
重啓服務器,查看svn開啓狀態
ps -aux | grep 'svn'