SDN環境下安裝Wireshark 2.2.5(問題彙總)
本文用到的軟件及其版本如下:
FVMware Workstation 12.5.5 build-5234757
F Mininet鏡像:mininet-2.2.2-170321-ubuntu-14.04.4-server-amd64
FOpenDayLight(硼Boron版本0.5.2)即karaf-0.5.2-Boron-SR2
F Wireshark軟件:wireshark-2.2.5
F操作系統:windows10
延續上一篇文章《Mininet+Opendaylight+Wireshark搭建SDN環境》繼續wireshark 2.2.5的部署工作。
據說ubuntu自帶的wireshark版本比較舊,無法直接支持OpenFlow,卸載舊的版本以及清除配置文件,安裝最新版的wireshark。PS:軟件我都喜歡最新的穩定版
(1)卸載舊版本及其配置文件
說實話,自帶的版本我也打不開wireshark,乾脆把它卸載了安裝最新的
mininet@mininet-vm:~$sudo apt-get remove wireshark
mininet@mininet-vm:~$sudo apt-get purge wireshark
(2)安裝依賴包
mininet@mininet-vm:~$sudo apt-get install bison flex libpcap-dev gcc -y
(3)源碼編譯安裝
Windows10從官網上(https://www.wireshark.org/download.html)下載最新的wireshark源碼(wireshark-2.2.5.tar.bz2),跟上面一樣,把它傳輸到ubunutu上,進行解壓編譯
mininet@mininet-vm:~$sudo tar -vxjf wireshark-2.2.5.tar.bz2 -C /opt/
慢慢編譯折騰長征路纔剛開始
mininet@mininet-vm:~$cd /opt/wireshark-2.2.5/
mininet@mininet-vm:/opt/wireshark-2.2.5$sudo ./configure
報錯1:configure: error: GLib 2.16.0 or later not found.
源碼編譯安裝glib
無法直接用apt-get直接安裝,好吧,又得源碼編譯
官網上(http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.52/)下載源碼(glib-2.52.0.tar.xz)導入到ubuntu上
不知道爲什麼,無法進行導入,好吧,換一種安裝方法
mininet@mininet-vm:/$sudo wget https://ftp.gnome.org/pub/gnome/sources/glib/2.52/glib-2.52.0.tar.xz
mininet@mininet-vm:/$sudo tar -vxf glib-2.52.0.tar.xz -C /opt/
mininet@mininet-vm:/$cd /opt/
mininet@mininet-vm:/opt$cd ./glib-2.52.0/
mininet@mininet-vm:/opt/glib-2.52.0$sudo ./configure
報錯2:configure: error: Package requirements (libffi >= 3.0.0) were notmet:
No package 'libffi' found
安裝Libffi
mininet@mininet-vm:/$sudo apt-get install libffi-dev
mininet@mininet-vm:/$cd /opt/glib-2.52.0/
mininet@mininet-vm:/opt/glib-2.52.0$sudo ./configure
報錯3:configure: error:
*** You must have either have gettext support in your Clibrary, or use the
*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html
安裝gettext,
mininet@mininet-vm:/$sudo apt-get install gettext
checkinglibmount/libmount.h usability... no
checkinglibmount/libmount.h presence... no
checkingfor libmount/libmount.h... no
configure:error: *** Could not find libmount
安裝libmount-dev
報錯4:好吧,apt-get安裝還出錯,安裝libmount-dev,而不是libmount
報錯5:configure: error: Package requirements (libpcre >= 8.13) were notmet:
No package 'libpcre' found
源碼編譯安裝libpcre
由提示可知,少了libpcre,以爲apt-get install安裝個libpcre就可以了,結果它又有個依賴包pcre,打算再安裝個pcre包好了,結果不支持apt-get安裝,真矯情,又得源碼編譯安裝。
源碼編譯安裝pcre
mininet@mininet-vm:/$sudo wget https://sourceforge.net/projects/pcre/files/pcre/8.40/pcre-8.40.tar.gz/
mininet@mininet-vm:/$sudo tar -zxvf pcre-8.40.tar.gz -C /opt/
mininet@mininet-vm:/$cd /opt/pcre-8.40/
mininet@mininet-vm:/opt/pcre-8.40$sudo ./configure --enable-utf8 --enable-unicode-properties
這裏必須要加上utf8和unicode的字符編碼格式的參數,否則編譯還是不會通過的
mininet@mininet-vm:/$cd /opt/pcre-8.40/
mininet@mininet-vm:/opt/pcre-8.40$sudo ./configure --enable-utf8 --enable-unicode-properties
mininet@mininet-vm:/opt/pcre-8.40$sudo make
mininet@mininet-vm:/opt/pcre-8.40$sudo make install
測試pcre是否正常安裝:
mininet@mininet-vm:/opt/pcre-8.40$pcretest -C
報錯6:pcretest: error while loading shared libraries: libpcre.so.1: cannotopen shared object file: No such file or directory
pcretest: error while loading shared libraries:libpcreposix.so.0: cannot open shared object file: No such file or directory
遇到以上兩個錯誤,加上軟鏈接就可以
mininet@mininet-vm:/opt/glib-2.52.0$sudo ./configure
mininet@mininet-vm:/opt/glib-2.52.0$sudo make
mininet@mininet-vm:/opt/glib-2.52.0$sudo make install
至此,glib已經安裝完畢
重新編譯wireshark,
mininet@mininet-vm:/opt/wireshark-2.2.5$sudo ./configure
又報錯,缺少QT以及GTK
報錯7:“configure: error: Neither Qt nor GTK+ are available, so Wiresharkcan't be compiled”
QT5系列安裝
ubuntu下安裝的時候直接sudo apt-get install libqt4-dev
但是apt-get安裝的是4.6.2,而wireshark最低要求是4.7.0,所以此處採用QT5
A、源碼編譯安裝
官網(http://download.qt.io/official_releases/qt/)下載進行安裝,如下:
mininet@mininet-vm:/$sudo wget http://download.qt.io/official_releases/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.gz
解壓編譯安裝
mininet@mininet-vm:/$sudo tar -zxvf qt-everywhere-opensource-src-5.8.0.tar.gz -C /opt/
mininet@mininet-vm:/$cd /opt/qt-everywhere-opensource-src-5.8.0/
mininet@mininet-vm:/opt/qt-everywhere-opensource-src-5.8.0$sudo ./configure
(依據提示輸入“o”選擇“Open Source Edition”版本進行安裝)
到這裏時,出現以下錯誤信息,打算放棄了,google了好久沒找到合適答案,若有其他兄弟遇到請分享一下,謝謝
報錯8:Note: No wayland-egl support detected. Cross-toolkit compatibilitydisabled.
ERROR: The OpenGL functionality tests failed!
B、最簡單的安裝方式
自從secureCRT與Xmanager Passive完美結合以後,發現QT5安裝也可以實現跟windows一樣的傻瓜式安裝方法
在QT官網上下載基於linux圖形界面安裝的版本qt-opensource-linux-x64-5.8.0.run,如下圖
mininet@mininet-vm:/$sudo wget http://download.qt.io/official_releases/qt/5.8/5.8.0/qt-opensource-linux-x64-5.8.0.run
報錯1:此時我遇到了一個問題,磁盤無空餘空間寫入,怎麼辦?
嘗試着去處理,發現確實硬盤的根目錄無空間了,網上有一種說法是/var/目錄下的日誌文件佔用太大空間了,inode被寫滿了,
但我這裏不是(/var只佔到355M,且第一天使用)
網上有種做法是增加硬盤掛接到根目錄下,或者通過虛擬機(VMware workstation)去擴充硬盤空間,於是關閉虛擬機,在“虛擬機設置”裏通過“磁盤整理”和“擴展”兩個功能去處理,無果,提示“文件系統空間硬盤”,難道就這樣了嗎?
最後嘗試在當前用戶根目錄下以及/opt/目錄下去刪除臨時保存的壓縮文件、以及解壓文件,終於解決了。
mininet@mininet-vm:~$rm -rf distribution-karaf-0.5.2-Boron-SR2.zip
mininet@mininet-vm:~$rm -rf jdk-8u121-linux-x64.tar.gz
發現跟我猜想一樣,於是把/opt/目錄下其他無關文件也一起刪除了
mininet@mininet-vm:~$rm -rf qt-everywhere-opensource-src-5.8.0.tar.gz
繼續前面QT5的安裝
如下圖,添加可執行權限,像windows一樣傻瓜式安裝及可
報錯9:接下繼續安裝wireshark,發現還是同樣的錯誤
mininet@mininet-vm:/opt/wireshark-2.2.5$sudo ./configure
這時候重新configurewireshark還是找不到Qt,這是因爲configure找不到QT相關的“.pc”文件(默認在/usr/lib64中查找)。找到安裝目錄下*.pc文件的位置,將該目錄添加到PKG_CONFIG_PATH環境變量中,即在/etc/profile文件最後加上以下內容
exportQT_PC=/home/mininet/Qt5.8.0/5.8/gcc_64/lib/pkgconfig(這是因爲我的*.pc文件是存儲目錄,一般都是安裝目錄**/gcc_64/lib/pkgconfig地方)
export PKG_CONFIG_PATH=$QT_PC
最後安裝一下GTK3
mininet@mininet-vm:/$sudo apt-get install libgtk-3-dev
見證奇蹟的時刻:
mininet@mininet-vm:/opt/wireshark-2.2.5$sudo ./configure
看到如下設置即可進行一下操作
mininet@mininet-vm:/opt/wireshark-2.2.5$sudo make
mininet@mininet-vm:/opt/wireshark-2.2.5$sudo make install
至此以爲大功告成,準備試驗一把時,發現不管我輸入“wireshark”或者“sudowireshark”都是提示我存在,找了網上的資料,有人提到說要在安裝目錄下輸入纔可以,我也跟着在安裝目錄/opt/wireshark-2.2.5/bin以及軟件默認安裝目錄/usr/local/bin做了嘗試還是說我沒安裝wireshark或者命令不存在,難道我沒有安裝成功,由重新編譯安裝了一遍,發現還是不行。
報錯10:
最後發現新版本不是直接輸入wireshark或者sudo wireshark,而是wireshark-gtk,因爲我發現只有/usr/local/bin/wireshark-gtk和/opt/wireshark-2.2.5/bin/wireshark-gtk而沒有/usr/local/bin/wireshark和/opt/wireshark-2.2.5/bin/wireshark,原來如此,把自己坑了
但是爲什麼沒有網卡信息呢?可能是bug吧,只有先開啓wireshark下,再開啓mininet以及opendaylight是纔會正常。且必須採用sudo wireshark-gtk的方式開啓
熟悉的畫面,大功告成。