66 lines
1.8 KiB
Bash
66 lines
1.8 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
# let's install packages
|
||
|
sudo apt-get update
|
||
|
sudo apt-get upgrade
|
||
|
sudo apt-get -y install build-essential g++-4.8 git cmake libboost-all-dev automake unzip libgmp-dev libtool libleveldb-dev yasm libminiupnpc-dev libreadline-dev scons libncurses5-dev libcurl4-openssl-dev wget qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev libjsoncpp-dev libargtable2-dev nodejs npm
|
||
|
|
||
|
# Setup Ethereum repos
|
||
|
sudo add-apt-repository -y ppa:ethereum/ethereum
|
||
|
sudo add-apt-repository -y ppa:ethereum/ethereum-dev
|
||
|
sudo apt-get update
|
||
|
sudo apt-get install libcryptopp-dev libjson-rpc-cpp-dev
|
||
|
|
||
|
# add node symlink
|
||
|
sudo ln -s /usr/bin/nodejs /usr/bin/node
|
||
|
|
||
|
# create directories structure
|
||
|
[ ! -d "ethereum" ] && mkdir ethereum # ethereum dir maybe mapped from host machine
|
||
|
mkdir opt
|
||
|
mkdir bin
|
||
|
mkdir logs
|
||
|
|
||
|
# download cpp-ethereum if needed
|
||
|
cd ethereum
|
||
|
[ ! -d "cpp-ethereum" ] && git clone --depth=1 --branch develop https://github.com/ethereum/cpp-ethereum
|
||
|
|
||
|
# download and build ethereum's dependencies
|
||
|
cd ~/opt
|
||
|
if [ ! -d "cryptopp562" ]; then
|
||
|
mkdir cryptopp562
|
||
|
cd cryptopp562
|
||
|
wget http://www.cryptopp.com/cryptopp562.zip
|
||
|
unzip cryptopp562.zip
|
||
|
CXX="g++ -fPIC" make
|
||
|
make dynamic
|
||
|
sudo make install
|
||
|
fi
|
||
|
|
||
|
# build ethereum
|
||
|
cd ~/opt
|
||
|
mkdir cpp-ethereum-build
|
||
|
cd cpp-ethereum-build
|
||
|
cmake ~/ethereum/cpp-ethereum -DCMAKE_BUILD_TYPE=Debug
|
||
|
make
|
||
|
|
||
|
# build alethzero GUI client
|
||
|
mkdir alethzero
|
||
|
cd alethzero
|
||
|
qmake ~/ethereum/cpp-ethereum/alethzero
|
||
|
make
|
||
|
|
||
|
# now let's create bin folder in user's home dir and create symlinks to executables
|
||
|
cd ~
|
||
|
ln -s ~/opt/cpp-ethereum-build/alethzero/alethzero ~/bin/alethzero
|
||
|
ln -s ~/opt/cpp-ethereum-build/eth/eth ~/bin/eth
|
||
|
|
||
|
# add node service
|
||
|
cd ~/bin
|
||
|
[ ! -d "www" ] && git clone https://github.com/cubedro/eth-netstatsservice www
|
||
|
cd www
|
||
|
sudo npm install pm2 -g
|
||
|
sudo npm install
|
||
|
|
||
|
pm2 start processes.json
|
||
|
pm2 startup ubuntu
|
||
|
pm3 save
|