sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install cmake git gcc-7 g++-7
sudo apt install qt5-default libqt5svg5-dev qtmultimedia5-dev qttools5-dev-tools extra-cmake-modules libkf5texteditor-dev
sudo apt install libglib2.0-dev libkrb5-dev flex liblua5.2-dev zlib1g-dev bison libxml2-dev libgeoip-dev libc-ares-dev libssh-gcrypt-dev
sudo apt install python3.5-dev python3-pip
pip3 install cython
BUILD_ROOT=$HOME # or any other path
# where EVERYTHING should be installed to; should be a path where the user can write to
PREFIX=/opt/EPL
[ ! -d "$BUILD_ROOT" ] && mkdir -p "$BUILD_ROOT"
cd "$BUILD_ROOT"
wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
tar -xf libpcap-1.8.1.tar.gz
cd libpcap-1.8.1
./configure --prefix="${PREFIX}"
make
make install
cd "$BUILD_ROOT"
git clone https://github.com/epl-viz/wireshark.git
cd wireshark
git submodule update --init --recursive
mkdir build
cd build
cmake -DPCAP_HINTS="${PREFIX}" -DCMAKE_INSTALL_PREFIX="${PREFIX}" ..
make -j$(nproc)
make install # may require root
# Install include files not covered by make install
cd ..
mkdir -p "${PREFIX}/include/wireshark"
find . -name "*.h" ! -path "*build*" -exec cp --parents {} "${PREFIX}/include/wireshark" \;
cd "$BUILD_ROOT"
git clone https://github.com/leethomason/tinyxml2
cd tinyxml2
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" ..
make -j$(nproc)
make install
cd "$BUILD_ROOT"
wget http://downloads.sourceforge.net/qwt/qwt-6.1.3.tar.bz2
tar -xf qwt-6.1.3.tar.bz2
cd qwt-6.1.3
sed -i 's/^.*local\/qwt-.*$//g' qwtconfig.pri
sed -i 's/QWT_CONFIG[^Q]*QwtDesigner//g' qwtconfig.pri
sed -i "s/\$\$\[QT_INSTALL_PREFIX\]/${PREFIX//\//\\/}/g" qwtconfig.pri
qmake qwt.pro
make -j$(nproc)
make install
cd "$BUILD_ROOT"
git clone https://github.com/epl-viz/EPL_DataCollect
cd EPL_DataCollect
git submodule update --init --recursive
mkdir build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DWireshark_DIR="${PREFIX}/lib/wireshark" \
-DPCAP_HINTS="${PREFIX}" \
-DTinyXML2_ROOT="${PREFIX}" \
-DCMAKE_C_COMPILER=$(which gcc-7) \
-DCMAKE_CXX_COMPILER=$(which g++-7) ..
make -j$(nproc)
make install
cp "${PREFIX}/bin/dumpcap" ./bin
cd "$BUILD_ROOT"
git clone https://github.com/epl-viz/EPL-Viz
cd EPL-Viz
git submodule update --init --recursive
mkdir build
cd build
cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DUSE_SYSTEM_PACKETS=ON \
-DWireshark_DIR="${PREFIX}/lib/wireshark" \
-DPCAP_HINTS="${PREFIX}" \
-DQWT_ROOT="${PREFIX}" \
-DTinyXML2_ROOT="${PREFIX}" \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DCMAKE_C_COMPILER=$(which gcc-7) \
-DCMAKE_CXX_COMPILER=$(which g++-7) ..
make -j$(nproc)
make install
cp "${PREFIX}/bin/dumpcap" ./bin
You have to give dumpcap special privileges to enable live capturing!
For instance you can use sudo setcap cap_net_admin,cap_net_raw+eip "${PREFIX}/bin/dumpcap"
.