在最目前所釋出的 FreeBSD Ports 當中的 mod_security2 2.1.7 強制使用 libxml2,這本來是一件好事情,不過,真的裝下去後會發現根本不能動。原因是 ports 的 Makefile 又寫錯了,導致編譯出來的 apache module 根本不會動。
這是 mod_security2 不知道第幾次出錯了。上次是忽略了所安裝的 apache 版本,就算已經裝了 apache-2.2 他還是會強制裝 apache-2.0。害我手上一堆服務出錯,不會動。真不知道該怎麼說?雖然 FreeBSD 經常對外放話說他們品質管制最佳等等,遠遠超過 linux 各種 distribution,不過,我是感覺不出來。
除了這次以外,我之前也處理過好幾次 ports 亂搞的問題,我現在手上已經一堆 local ports 了。 @.@、、
之前有人號召我加入,不過,很抱歉,我對加入具有封閉式的意識型態的團體不太有興趣。當然這是指三不五時就有些基本教義派跳出來攻擊 Linux 陣營的這件事情,我是覺得完全沒必要。那種狗咬狗的言論,看多了以後會覺得很煩。自己的事情作好就好,何必攻擊別人?
這次的問題,修正的方法不太難。只要在 /usr/ports/www/mod_security2/Makefile 當中加上以下幾行就可以搞定了。簡單的解決方法。
AP_EXTRAS+= -DWITH_LIBXML2
AP_INC= ${LOCALBASE}/include/libxml2
AP_LIB= ${LOCALBASE}/lib
重新安裝之後就可以用了。不然會跳出一堆類似下面的訊息,看了會瘋掉:
Syntax error on line 64 of /usr/local/apache/conf/modsecurity/modsecurity_crs_20_protocol_violations.conf:
Error creating rule: Unknown variable: XML
在 Google 上查了一下,竟然還有人說那就把 XML 的檢查拿掉就好了,這個答案真的是給他「三條槓」。遇到問題要稍微找一下問題在哪裡,不要太隨意的就把問題迴避掉,這個問題是有解的,迴避掉真的不是很好的方法。
不過,還真的滿期望 FreeBSD 的某些 Ports comitter(不只是 mod_security2 的這位,還有好幾位也常出包)作事情,稍微用心一點。每次要用的東西都要收拾善後才能用,給人的觀感,真的不是很好。