1. 程式人生 > 實用技巧 >2、SVN之搭建SVN伺服器

2、SVN之搭建SVN伺服器

系統:Ubuntu20.04

連結來自:https://blog.csdn.net/weixin_42171170/article/details/106957520(學習用)

前言

  由於文件資料越來越多,將所有資料都存放在自己的電腦上容易混淆,並且也不利於分享。這種情況下,考慮將資料上傳SVN統一管理,這樣一來其他人也能很方便的查略各種資料,事先說明一下,我用的是Ubuntu20.04的Linux系統搭建的本地SVN伺服器,其他版本的Linux系統需要做一定的改動才能適用,以下是搭建SVN伺服器的步驟。

一、安裝SVN

  安裝前可以更新下源,使用sudo apt update命令,如果有新的安裝包使用sudo apt upgrade

命令安裝。然後就是安裝我們的SVN伺服器了,使用命令:

sudo apt install subversion
  • 1

安裝完成之後通過svnserve --version命令檢視是否安裝成功,正常會顯示如下圖所示的版本資訊
表示安裝成功了,我這裡安裝的SVN版本為1.13.0。

建立SVN版本庫

終端中依次輸入如下命令:

$ cd /opt
$ sudo mkdir svn
$ cd svn
$ sudo mkdir repository
$ sudo svnadmin create /opt/svn/repository   //建立SVN倉庫 
  • 1
  • 2
  • 3
  • 4
  • 5

這樣一來會在repository下面建立以下檔案:

其中conf資料夾下是存放的配置檔案,包括SVN使用者名稱的許可權、密碼這些,db裡面的包含我們上傳到SVN伺服器上面的文件、程式碼等資料的不同版本。這裡需要注意的是要對db資料夾釋放許可權,否則客戶端可能無法連線SVN伺服器。
在終端中輸入如下命令:

sudo chmod -R 777 db
  • 1

正常情況會變成如下圖所示:

db資料夾變綠,代表著它此時擁有執行許可權了。

修改配置檔案

  這一步主要是在repository資料夾下的conf這個資料夾裡面的檔案進行配置。總共有3個檔案需要設定,下面依次說明:

1. 修改svnserve.conf檔案

這個檔案裡面主要設定我們的SVN訪問方式,如下圖所示,主要修改其中3個地方即可:

  這裡主要有4個地方需要注意,具體作用已經在圖片中寫出了,其中需要重點說明的是authz和passwd這兩個檔案,為了後續多倉庫管理的便捷性,這裡的路徑加了…/…/authz和…/…/passwd兩個,代表著我們可以將許可權設定檔案和密碼設定檔案單獨放置,這樣後續需要使用SVN的人員多了,作為SVN伺服器維護人員就可以很方便的新增使用者的許可權和密碼了,團隊大了或者是工程越來越多的時候可以極大的提高維護人員的工作效率。

2. 修改passwd檔案

這個檔案中主要是設定SVN使用者的密碼的,如下圖所示:

設定了4個使用者和對應的密碼,格式為 “ 使用者名稱 = 密碼 ”,此檔案主要管理SVN使用者的密碼。

3. 修改authz檔案

這個檔案相當重要,我們可以在這個檔案中設定使用者的讀寫許可權,做到不同使用者、不同專案組成員之間許可權不互通,起到資訊保安的目的。如下圖所示:

具體意義及說明已經在圖中標註寫明瞭,圖中的授權方式為對使用者組進行授權,這裡再提下

[/]
@admin = rw
@normal = r
  • 1
  • 2
  • 3

這個部分的說明,上面的 [/] 表示對根目錄進行授權,即使用者組成員對所有專案都具有許可權共通性,我們如果要針對不同專案去設定不同許可權,可以如下操作

[JAVA:/]
Heath = rw  //表示使用者 Heath 對專案 JAVA 的所有內容具有讀寫許可權
Liu = r  //表示使用者 Liu 對專案 JAVA 的所有內容僅具有讀許可權

[Python:/]
Ming = rw  //表示使用者 Ming 對專案 Python 的所有內容具有讀寫許可權
Tao = r  //表示使用者 Tao 對專案 Python 的所有內容僅具有讀許可權
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

上面這種做法可以保證Heath僅擁有JAVA專案的讀寫許可權,沒有Python專案的許可權,保證專案組成員之間的資訊保安和專案安全,也便於專案組成員之間的管理。

啟動SVN伺服器

在終端中輸入

sudo svnserve -d -r /opt/svn/
  • 1

啟動SVN伺服器,這裡說明下:

  • -d:表示在後臺執行
  • -r:指定伺服器的根目錄

順便給出停止伺服器的命令:

killall svnserve
  • 1

啟動完成後通過ps aux | grep svnserve命令檢視是否啟動成功,正常會有如下圖所示結果:

表示SVN伺服器啟動成功了,這裡為了保護伺服器主機安全,建議開啟防火牆,開啟防火牆的操作見上一篇文章:Ubuntu20.04防火牆設定(簡易教程)。開啟防火牆之後要給予SVN埠訪問許可權,SVN服務的預設埠為3690,必須先在伺服器主機上開啟3690埠的外部訪問許可權,如下圖:

到這裡,Linux系統上面的SVN伺服器就搭建成功了。

測試伺服器

  首先在官網下載SVN客戶端版本,這裡給出我下好的1.14.0版本的路徑,需要的小夥伴自取:SVN1.14.0&Chinese_Package。連結壓縮包中包含SVN1.14.0的安裝包和對應的簡體中文語言包,安裝好SVN客戶端以後點選SVN Checkout按鈕,在彈出頁面輸入SVN伺服器的地址,格式為svn://伺服器ip/repository。輸入使用者名稱和密碼後正常可以彈出如下介面:

這樣一來就搞定下載了,接下來進行檔案上傳測試。將需要上傳的檔案複製到svn倉庫資料夾中,點選SVN Commit按鈕提交上傳檔案,如下圖所示:

上傳成功會有如下介面彈出:

到此,SVN伺服器的搭建就結束了。