今天花的時間比較少,但是一樣遇到問題。
依照昨天的作法,已經把所有該 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,那又是另外一個我還沒寫的故事了~
沒有留言:
張貼留言