在FreeBSD 上配置 Sphinx 搜尋引擎

2022-03-06 06:53:44 字數 2717 閱讀 1672

在freebsd 

上配置 

sphinx 

搜尋引擎 和 

linux 

上相比,會有一些差異,而且步驟可能會更加的繁瑣。

有些可能無法用 make 

系統進行編譯,必須手動修改

configure 

檔案,或者**。或者只能手動編譯。

1. 安裝 

mmse

gmmseg 比較成熟,安裝的過程一般不會出什麼問題。但是還是有一些注意事項:

版本,否則可能會有下面的bug

:1. 

不相容 x64 

的作業系統,我的系統就是64

位的,一編譯,發現出問題了。

2. 可能有很多分詞的bug

,在中英文混合的時候,分詞會非常的不準確。

要手動構造一下詞典。如下命令:

mmseg -u unigram.txt

這就會產生乙個 :

unigram.txt.uni

,用如下的命令重新命名:mv 

unigram.txt.uni

uni.lib

2. 安裝下面的程式:

更新最新的port 

,然後,公升級或者安裝下面的程式:

1. python 2.5 以上

2. autoconf-2.4 以上

3. automake 1.10 以上

4. bison 2.3 以上

5. gmake 3.5 以上

6. libtool 2.2 以上

當然,如果你編譯過程中沒有出現問題最好,但是,如果出現問題了,建議先公升級以上程式。

版本。(

coreseek 

對sphinx

的改動版本)

然後,編譯。

我測試過,這個編譯沒有什麼問題。

3、安裝libsphinxclinet

如果要安裝sphinx 

的php

擴充套件,就要事先

編譯sphinx 程式。

wget 

tar -xzf 

sphinx-0.9.9-rc2.tar.gz

cd sphinx-0.9.9-rc2

/api/

libsphinxclinet

你不能直接編譯這個程式,在linux 

下面可以。但是,在

freebsd 

上並不可以。

configure: error: c++ preprocessor "/lib/cpp" fails sanity check

這個錯誤怎麼修改才能改好,我暫時沒有去研究。一般來說,解決的方法可以這樣:

1. 用gcc 

命令直接編譯。

2. 用automake 

重新建立乙份編譯程式。

下面說明一下,如何用gcc 

命令編譯乙份動態鏈結庫。

庫檔案簡介:

簡單地說,庫(library

)就是一組已經寫好了的函式和變數、經過編譯**,是為了能夠提高開發效率和執行效率而設計的。庫分為靜態庫(

static library

)和共享庫(

shared library

)兩類。靜態庫檔案的副檔名是

.a,共享庫檔案的副檔名是

.so(在

cygwin

環境下,分別叫做.o和

.dll

)。共享庫現在常常被叫做動態庫,是由於很多人借用了

ms windows

的dll

(dynamic linked library

)這個詞。

(1)靜態庫

靜態是指每個用到該庫的應用程式都擁有乙份自己的庫拷貝;應用程式執行的時候,即使將庫刪除也沒有問題,因為應用程式自己已經有了自己的拷貝。

(2)共享庫

乙個共享庫有可能被多個所有應用程式共享。因此,對每個應用程式來說,即使不再使用某個共享庫,也不應將其刪除。此外,應用程式需要正確的環境變數設定(ld_library_path

),從而找到共享庫所在的位置,否則,應用程式執行時會報告找不到這個庫。

一般來說,如果庫本身比較大的話,最好編譯成 共享庫,否則,聯合編譯後,檔案會變的比較大。對於上面的 libclientsphinx 

,應為規模比較小,編譯成靜態的或者動態的都可以。我這裡選擇編譯成動態的:

mv sphinx_config,h.in sphinx_config.h

gcc -c -fpci 

sphinx

.cgcc -shared -fpic -o lib

sphinxclient

.so 

sphinx

.omv 

libsphinxclient

.so 

/usr/local/lib

mv sphinx.h /usr/local/include

這樣就可以編譯成功了。

編譯php 

就比較簡單了

cd /ext path/sphinx

phpize

./configure --with-php-config=/usr/local/bin/php-config --with-sphinx=/usr/local

make

make install

這樣就ok 

了。當然,如果你的

extension_path 

改動過的話,把編譯好的擴充套件放到合適的位置上去。

在FreeBSD上使用Docker

freebsd是個好東西,因為有zfs。docker也是個好東西,因為很爽。然而之前docker只支援linux,所以在其它平台上都需要搞個linux虛擬機器才能用,麻煩得很。當然現在也是一樣,只是官方出了乙個docker machine可以更方便地管理虛擬機器裡的docker。基本用法可以參考這篇...

在FreeBSD上CVSD的安裝與配置 轉貼

要說明的是,我是按照老黃的cvsd安裝配置方法來進行的安裝,過程中發現了一些問題,所以我特別重新寫了一篇新的文件,讓大家避免出現不必要的麻煩 1.安裝cvsd by huangyaoshifog 建立cvsd使用者和cvsd組 by huangyaoshifog 建議使用 sysinstall 建立...

在FreeBSD5 0上配置DNS服務手記

file kaifa.com.db 這是kaifa.com域解析資料檔案 zone 253.198.10.in addr.arpa 這是kaifa.com反向域解析資料檔案 3 建立 etc namedb kaifa.com.db 檔案,內容如下 ttl 3600 in soa dns.kaifa....