[Ethereum] How to install eth on debian? (symbol lookup error)

cpp-ethereumdebianinstallationlinux

I installed from the ubuntu ppa and got this error.

➜  ~  eth
eth: symbol lookup error: eth: undefined symbol: _ZN3dev3eth14EthashGPUMiner14s_numInstancesE

What can I do / check?

I'm on debian testing so maybe something conflicts.

Best Answer

The Ubuntu PPAs are not compatible with Debian. The main issue is the wrong version for libcrypto++-dev package.

You have to follow the generic build process for linux and compile it from source.

Install dependencies

sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcrypto++-dev libjson-rpc-cpp-dev libmicrohttpd-dev libjsoncpp-dev libargtable2-dev llvm-3.7-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev libqt5webengine5-dev ocl-icd-dev libv8-dev libz-dev

Compile from source

git clone --recursive https://github.com/ethereum/webthree-umbrella
cd webthree-umbrella
mkdir build
cd build
cmake ..
make -j $(nproc)

Found binaries:

./build/libethereum/ethminer/ethminer
./build/libethereum/lllc/lllc
./build/libethereum/ethvm/ethvm
./build/libethereum/ethkey/ethkey
./build/libethereum/test/testeth
./build/alethzero/alethzero/alethzero
./build/alethzero/alethone/alethone
./build/alethzero/alethfive/alethfive
./build/mix/mix
./build/webthree/exp/exp
./build/webthree/eth/eth 
./build/webthree/test/testweb3
./build/webthree/test/ethrpctest/ethrpctest
./build/libweb3core/test/testweb3core
./build/libweb3core/rlp/rlp
./build/solidity/solc/solc
./build/solidity/test/soltest

Install

make install

For other users getting this issue with Ubuntu: You have to reinstall eth and all dependencies:

Ubuntu 14.4

sudo apt-get update
sudo apt-get --reinstall install -y libboost-random1.55.0 libboost-system1.55.0 libboost-thread1.55.0 libc6 libcurl3 libgcc1 libjson-rpc-cpp-dev libjsoncpp0 libreadline6 libstdc++6 ocl-icd-libopencl1 libethereum miniupnpc libleveldb1 libmicrohttpd10 libglu1-mesa freeglut3 libboost-random1.55.0 libboost-system1.55.0 libboost-thread1.55.0 libc6 libgcc1 libjson-rpc-cpp-dev libjsoncpp0 libstdc++6 ocl-icd-libopencl1 libethereum-gui qml-module-qtquick-controls qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qt-labs-settings qml-module-qtwebengine ethereum eth

Other Ubuntu versions

Find out the dependencies and reinstall them:

sudo apt-get update
sudo apt-cache depends eth | grep '[ |]Depends: [^<]' | cut -d: -f2 | tr -d ' ' | xargs sudo apt-get --reinstall install -y
sudo apt-cache depends mix | grep '[ |]Depends: [^<]' | cut -d: -f2 | tr -d ' ' | xargs sudo apt-get --reinstall install -y

If this does not do the trick, maybe follow the issue upstream.

Related Topic