Skip to content

Instantly share code, notes, and snippets.

@drandreaskrueger
Last active April 5, 2022 07:00
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save drandreaskrueger/912e704cfc86fd757277a5fd9bd372d4 to your computer and use it in GitHub Desktop.
Save drandreaskrueger/912e704cfc86fd757277a5fd9bd372d4 to your computer and use it in GitHub Desktop.
Debian 8 - ethereum and eth-dev-tools - installation manual
#
# Ethereum and eth-dev-tools: Debian 8
#
# rev 9
#
# started midsummer 2016-06-21 Andreas Krueger
# https://github.com/drandreaskrueger
# https://twitter.com/drandreaskruger
# please contact me with improvements, thanks.
#
# home of this manual:
# https://gist.github.com/drandreaskrueger/912e704cfc86fd757277a5fd9bd372d4
#
# inspired by
# http://ethereum.stackexchange.com/a/1450/2937
# http://ethereum.stackexchange.com/a/2220/2937
# and
# http://www.ethdocs.org/en/latest/ethereum-clients/cpp-ethereum/building-from-source/linux-debian.html#debian-jessie-8-5
# but that took long to compile llvm, so I took this route:
#
# these I had installed earlier, perhaps also necessary:
# sudo apt-get -y install unzip cmake libminiupnpc-dev gcc g++
# cmake 3.5.2:
wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar -xf cmake-3.5.2.tar.gz
cd cmake-3.5.2/
cmake .
make -j 3
sudo make install
cmake --version
source ~/.profile # or open new terminal
cmake --version
# cryptopp:
mkdir cryptopp && cd cryptopp
wget https://www.cryptopp.com/cryptopp563.zip
unzip -a cryptopp563.zip
make static dynamic cryptest.exe
# testing installation
./cryptest.exe v
./cryptest.exe tv
# install cryptopp
make libcryptopp.a libcryptopp.so cryptest.exe
sudo make install PREFIX=/usr/local
# json-rpc-cpp
sudo apt-get -y install opencl-dev libcurl4-openssl-dev
sudo apt-get source libmicrohttpd-dev
sudo apt-get -y install libargtable2-dev libmicrohttpd-dev
git clone git://github.com/cinemast/libjson-rpc-cpp.git
cd libjson-rpc-cpp && mkdir -p build && cd build
cmake ..
make -j 3
sudo make install
sudo ldconfig
cd ../..
# Dependencies ...
# missing libjson-rpc-cpp-dev (see above)
# missing libqt5webengine5-dev (see Qt below)
# and llvm-3.5-dev instead of llvm-3.7-dev
# so:
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 libmicrohttpd-dev libjsoncpp-dev libargtable2-dev llvm-3.5-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev ocl-icd-dev libv8-dev libz-dev
# get Qt 5.4
# https://www.qt.io/download-open-source/
chmod 700 ./qt-unified-linux-x64-2.0.3-1-online.run
./qt-unified-linux-x64-2.0.3-1-online.run
# SKIP the personal questions.
# version 5.4! Qt 5.4 and Tools
# I installed in /home/andreas/dev/Qt/
sudo sh -c 'echo "/home/andreas/dev/Qt/5.4/gcc_64/lib/" > /etc/ld.so.conf.d/Qt.conf'
sudo ldconfig
# finally, ethereum & friends:
git clone --recursive https://github.com/ethereum/webthree-umbrella
cd webthree-umbrella
mkdir build && cd build
cmake .. -DCMAKE_PREFIX_PATH=/home/andreas/dev/Qt/5.4/gcc_64
make -j 3
sudo make install
sudo ldconfig
cd ../..
# installed:
eth
mix-ide # warning: "slated for death" (B.S.). See https://blog.ethereum.org/2016/05/04/c-dev-update-announcing-remix/
alethzero
ethrpctest --help
ethkey --help | less
ethminer --help | less
solc | less
ethvm
lllc --help
rlp --help
bench
# mist wallet
# https://github.com/ethereum/mist/releases
mkdir mist && cd mist
wget https://github.com/ethereum/mist/releases/download/0.7.5/Ethereum-Wallet-linux64-0-7-5.zip
unzip Ethereum-Wallet-linux64-0-7-5.zip
cd Ethereum-Wallet-linux64-0-7-5/
less README.txt
./Ethereum-Wallet
#
# donations welcome: [btc] 153vJTNuk1AMch4Lj6r45r5y5hcTKeSCpG
# [eth] 0xFC0628D33661661e2438059500722680d6B1DA1D
#
@RobynPan
Copy link

You are an angel in my time of need. (well, maybe not need, but certainly want)
I will definitely mark your key down for a donation because you spared me a sleepless night. (dont have ether yet, but premsumably will soon :P )

One question: in the paragraph marked: # installed: (ether, mix-ide) do I need to install those manually, or have they already been installed by this point? What is this paragraph meant to convey?

Thank you so much again!

@anax32
Copy link

anax32 commented May 14, 2017

There is a problem with libjson-rpc-cpp which has a compilation error:

[ 18%] Building CXX object src/jsonrpccpp/CMakeFiles/jsonrpcserver.dir/server/connectors/httpserver.cpp.o
/home/ed/ethmine/gist/cmake-3.5.2/cryptopp/libjson-rpc-cpp/src/jsonrpccpp/server/connectors/httpserver.cpp: In member function ‘virtual bool jsonrpc::HttpServer::StartListening()’:
/home/ed/ethmine/gist/cmake-3.5.2/cryptopp/libjson-rpc-cpp/src/jsonrpccpp/server/connectors/httpserver.cpp:58:25: error: ‘MHD_USE_EPOLL_INTERNALLY’ was not declared in this scope
mhd_flags = MHD_USE_EPOLL_INTERNALLY;

This was fixed in a branch but has not gone to the master yet.
If you change line 55 to:
git clone -b develop git://github.com/cinemast/libjson-rpc-cpp.git
to clone the branch rather than the master this should fix that problem

@brawaga
Copy link

brawaga commented Jun 7, 2017

In LMDE2 x64 many of dependences failed to install hence not available, some packages failed to build.
https://github.com/ethereum/webthree-umbrella repo is obsolete.
For who will try next, I spend some hours to try to fix this, and seems this does not worth it.
Please do not spend time on this..

@mx1010
Copy link

mx1010 commented Sep 16, 2017

😆 I was about to spend time on this ... thanks @brawaga

@drandreaskrueger
Copy link
Author

drandreaskrueger commented Oct 11, 2017

Wow, I never realized I actually earned some 5$ donation, and probably with this. Thanks, much appreciated.

@knoxcard
Copy link

knoxcard commented Jan 30, 2018

json-rpc-cpp failed for me in Debian 9.3 Stretch

I solved it by running this...

sudo apt-get install libjsonrpccpp-dev libjsonrpccpp-tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment