2010年7月28日 星期三

繼續昨天的奮鬥──Subversion + Trac on Solaris, Part 2

今天花的時間比較少,但是一樣遇到問題。

依照昨天的作法,已經把所有該 compile 的東西都 compile 好了,但是今天啟動 apache 的時候才發現,mod_dav_svn 和 mod_authz_svn 這兩個 module 版本和 Solaris 內建的 Apache 不合。內建的是 2.0.x 系列,Collabnet 上面抓下來的是給 2.2 系列用的。所以……係裡~又要自己來惹~

參考了這篇文章,先去這裡抓 subversion 最新版的 source 回來。後來發現直接用 Sun Studio 12 也可以順利 compile,唯二的麻煩是 neon 和 sqlite3;這兩個 lib 在系統裡面都是沒有的,要另外抓。sqlite3 要抓這個版本,neon 要抓這個

sqlite3 裡面有個 sqlite3.c,解開後放在 subversion/sqlite-amalgamation 底下,然後把 neon 整個放在 subversion/neon 下。這時還要解決 ld 找 library 的問題。

Solaris 下,常用 LD_LIBRARY_PATH 來取得 ld(1) 找 library 的位置,但是也可以用 crle(1) 來設定整個機器上整體的 library search path。編譯 subversion 需要 libexpat (會在 install phase 的時候用到),這個奧妙的 library 放在 /usr/sfw/lib 裡面,往裡面一看還有好多其他常用的 3rd party library。

總結一下我們需要以下幾個 LD_LIBRARY_PATH:

/usr/local/lib
/usr/local/ssl/lib
/usr/sfw/lib

PATH 裡面則必須至少含

/usr/local/bin
/usr/ccs/bin

全部準備好,就可以開始下指令了:

./configure --prefix=/opt/subversion --with-apxs=/usr/apache2/bin/apxs --enable-shared --enable-ssl

這樣編譯出來的 subversion 會自動把該有的 module 丟進 apache2 的 libexec 目錄裡面,也會把 LoadModule 的敘述行放進 /etc/apache2/httpd.conf

經過這樣下來,至少已經把 subversion/apache2 這對工具搞定了,已經可以開始提供服務了,至於 Trac,那又是另外一個我還沒寫的故事了~

沒有留言:

張貼留言