2013年11月3日 星期日

安裝 Subversion server 在 Raspberry Pi (OS: Raspbian)

由於要把開發的一些程式以版本控制系統管理, 如果安裝版本控制系統在本機上, 萬一系統毀了
那一切資料都會毀了, 家裡有一臺 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 及資料。
 



沒有留言:

張貼留言