2009年5月12日 星期二

在Linux環境安裝Subversion

最近由於工作需要, 必須在Linux下安裝版本控制系統, 經過比較之後, 雖然Subversion(SVN)在commit的速度不如Git, 而且branch的管理也較差, 但用順手後也就習慣了, 在此紀錄一下安裝過程...
在Linux環境下先抓取Apache和SVN的source後編譯, 由於習慣使用webdav的方式透過http更新, 因此在Apache編譯前要先設定
# ./configure --enable-dav --enable-so --enable-maintainer-mode

根據Apache2.0x的預設安裝路徑, 繼續SVN的編譯
# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/

在安裝SVN的過程中有時會出現'configure: error: Subversion requires SQLite'的錯誤訊息, 這時就須先下載sqlite-amalgamation, 解開壓縮檔後將sqlite3.c複製到subversion-x.x.x/sqlite-amalgamation的目錄下再行安裝,

安裝完成後開始建立Repository, 注意不要建立在web server文件下的目錄,
# svnadmin create /var/svn

有時也會遇到'txn-current-lock': Permission denied的問題, 就必須修改權限給Apache的使用群組(可見httpd.conf)
# chown -R daemon:daemon /var/svn

修改httpd.conf設定,
# vim /usr/local/apache2/conf/httpd.conf
[add]
<location /myprj>
Dav svn
SVNPath /var/svn/myprj
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /usr/local/apache2/conf/auth-file
Require valid-user
<//Location>
[/add]

加上Apache基本認證
# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/conf/auth-file USERNAME

確認是否成功, 重新啟動Apache
# /usr/local/apache2/bin/apachectl restart

開啟瀏覽器輸入以下網址
http://127.0.0.1/myprj

如果在登入帳號密碼後看到下列訊息, 表示成功安裝以webdav存取的的svn server
myprj - Revision 0: /

進一步的設定可參考Subversion系統, Subversion FAQVersion Control with Subversion, 而在Window環境下安裝可參考這裡

沒有留言: