Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link

RobynPan commented Jul 23, 2016

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

This comment has been minimized.

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

This comment has been minimized.

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

This comment has been minimized.

Copy link

mx1010 commented Sep 16, 2017

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

@drandreaskrueger

This comment has been minimized.

Copy link
Owner Author

drandreaskrueger commented Oct 11, 2017

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

@knoxcard

This comment has been minimized.

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
You can’t perform that action at this time.