由於要把開發的一些程式以版本控制系統管理, 如果安裝版本控制系統在本機上, 萬一系統毀了
那一切資料都會毀了, 家裡有一臺 Raspberry Pi 由於耗電不高, 因此會一直開機, 所以打算安裝
版本控制系統 Subversion 在上面, Open Source 中版本控制有好幾種選擇從比較早就被開發
使用的 CVS 到近幾年流行的 Git 都有許多的擁護者, 而我因為對 Subversion (SVN) 比較熟,
因此選用 Subversion。
1. 首先安裝相關套件, 開啟終端機視窗, 輸入以下指令:
sudo apt-get install apache2 apache2-utils apache2-doc libapache2-svn subversion
2. 接著建立 SVN Root 目錄, 我選擇的目錄是 /var/www/svn, 所以指令如下:
sudo mkdir /var/www/svn
3. 接著建立我們的 Repository, 我的專案名稱是 MyWebSite, 因此指令如下:
sudo svnadmin create /var/www/svn/MyWebSite
4. 由於我們使用 http/https 來當做 SVN client 與 server 間的通訊協定, 在 server 端是由系統中
的 Apache server 來幫我們工作, 所以要讓 Apache 有權限來讀寫我們的目錄及檔案, 而
Ubuntu/Debian 預設的 Apache user 是 www-data, 因此我們將專案目錄的使用者更改為
www-data, 指令如下:
sudo chown -R www-data:www-data /var/www/svn/MyWebSite
5. 新增 dav_svn.conf 中關於我們的 repository 的設定, 指令如下:
sudo vi /etc/apache2/mods-available/dav_svn.conf
6. 增加以下內容:
<Location /MyWebSite>
DAV svn
SVNPath /var/www/svn/MyWebSite
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>
其中 <Location /MyWebSite> 是指出我們可以用 Apache 根目錄下的 MyWebSite 來存取此ㄧ
repository, 例如我的 SVN Server IP 是 192.168.100.123, 我可以在其他電腦上以
http://192.168.100.123/MyWebSite 的方式連接此 repository。
SVNPath /var/www/svn/MyWebSite 則是指出我們的 repository 在系統中的真實位置。
AuthUserFile /etc/subversion/passwd 指出使用此 repository 所需認證的檔案位置。
要建立使用者認證資訊可使用 sudo htpasswd [-c] /etc/subversion/passwd username
系統會要求輸入兩次密碼, 以後就可以使用此組帳號密碼來存取此 repository。
其中 -c 參數只需第一次建立時使用, 第二次以後使用會清空原本密碼檔案內資料。
7.重新啟動 Apache, 使用指令如下:
sudo /etc/init.d/apache2 restart
將來如果要新增 Repository 只需重複步驟 3 到 7 即可。
我們可以用瀏覽器來試試看是否成功
輸入正確的帳號密碼後,
當然我已經先 import 資料進入 repository 所以才會有 Revision 1 及資料。
沒有留言:
張貼留言