採用源碼安裝
引文及相關依賴檔案:
http://liuzhigong.blog.163.com/blog/static/178272375201123083815103/
將相關檔案下載解壓後:
1.安裝gcc編譯器:
(略)因為安裝系統時gcc已經安裝好了!
2.源碼安裝GNU M4 (version 1.4)
這個是編譯flex必備的環境,否則會提示“GNU M4 1.4 is required”的錯誤!
在終端下使用命令列進行源碼安裝:
切換到GNU M4那個檔案夾目錄下,執行“./configure”命令,然後執行“sudo make” 命令(普通使用者下),最後執行“sudo make install”命令!GNU M4安裝成功!
3.安裝flex(version 2.5.33)
沒有flex,直接安裝libpcap會提示“Your operating system's lex is insufficient to compile libpcap”錯誤!步驟同上!
4.安裝bison(version 2.3)
在安裝flex後直接安裝libpcap會提示“don't have both flex and bison;reverting to lex/yacc”錯誤,前面安裝的是flex,就需要搭配bison!步驟同上!
5.安裝libpcap
前面四步安裝好以後,就可以安裝libpcap了,步驟同上!
測試機器:Ubuntu10.04 OS!
測試程式:引文中的來源程式!
出現的問題:
error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
這說明共用庫libpcap.so.1沒在預設的/usr/lib目錄下面,因為你寫的C語言所用的標頭檔預設在/usr/include下,而所調用的庫函數(包括共用庫和靜態庫)預設在/usr/lib下!你在/usr/lib目錄下找不到libpcap.so.1這個共用庫,可以找到libpcap.so.0.8和 libpcap.so.1.0.0共用庫,這是因為安裝的版本不一樣!其中libpcap.so.0.8是安裝系統的時候預設安裝好的!而libpcap.so.1.0.0是你通過上面的方法安裝的,但是名字不是libpcap.so.1而已,所以會出現上面的問題!
解決方案一:
搜尋了一下檔案系統libpcap,有兩個結果 libpcap.so.0.8和 libpcap.so.1.0.0,
然後在終端下執行命令(建立libpcap.so.1.0.0的連結檔案libpcap.so.1):
sudo ln -s /usr/lib/libpcap.so.1.0.0 /usr/lib/libpcap.so.1
即可成功!
解決方案二:
在安裝libpcap時,在./configure之後,在make之前,開啟libpcap安裝資料夾中的Makefile檔案,找到prefix那一項“prefix = /usr/local”,這說明,通過上面的安裝步驟,預設的是將libpcap安裝到/usr/local目錄下的,你可以在local目錄下看到Libpcap的標頭檔和函數庫等都被安裝到此目錄下了,而你寫的C來源程式所引用的標頭檔和庫函數的預設路徑不是這個,所以才會出現上面的問題!將路徑改為:“/usr”就可以了!
聲明:由於此文章是自己安裝以後幾天才整理的,所以沒有貼圖片,另外,不同的Linux系統差別不大,自己琢磨應該可以安裝測試成功!
還有就是,自己不太會管理Linux下的軟體,因為通過軟體中心或者新力得軟體源刪除軟體的時候,由於要刪除的軟體有許多依賴軟體,所以有的時候不小心刪了某個軟體而導致其他的軟體突然不能用了!頭疼,求解:如何高效的管理Linux下的軟體?