chia-blockchain/install.sh

122 lines
3.9 KiB
Bash
Raw Normal View History

#!/bin/bash
Separate timelord, add Windows/CentOS/AMZN (#62) 1.1.1 release * windows build instructions * install.sh newline fix \n wasn't as cross platform as it should be so reverted to an extra echo * Add CentOS to README.md Full CentOS 7.7 install instructions * mention blspy * confirmed boost 1.67.0 works on Ubuntu * Update README.md. * Fix problem with zip download. * Remove scm warning Revert install instructions due to scm fix * Update README and install scripts to separate timelord installation Do not install VDF server and its dependencies in install.sh, create a separate script install_timelord.sh for that. * Move installation of VDF server dependencies to install_timelord.sh * First and broken attempt at CentOS install * Working CentOS 7.7 install * typos in timelord explanation * Timlord/VDF build instructions Specifics for CentOS and MacOS * Various install tips and tricks * spelling error * Add AMZN linux 2 install * Add AMZN linux 2 timelord install Also clean up base install instructions * Combine TL for AMZN and CentOS * Nits for AMZN and CentOS * CentOS, AMZN timelord paralleling * Fix header layouts * Replace VDF server compilation scripts with Makefile * layout improvements * fast_vdf: Remove unused files * Partial ARM install support * missing l in lib * Fleshed out Windows/WSL installs And verified the method for upgrade to 19.x * Move MacOS install fullnode to bottom * Change to mongo "system-wide" * Add mongo start to WSL * Add actual upgrade for WSL/Ubuntu Co-authored-by: Mariano Sorgente <sorgente711@gmail.com> Co-authored-by: Rostislav Skudnov <skrostislav@gmail.com> Co-authored-by: Richard Kiss <him@richardkiss.com> Co-authored-by: wjblanke <wjb2002@flex.com>
2019-12-25 22:18:07 +03:00
set -e
UBUNTU=false
if [ "$(uname)" = "Linux" ]; then
#LINUX=1
if type apt-get; then
UBUNTU=true
fi
fi
Separate timelord, add Windows/CentOS/AMZN (#62) 1.1.1 release * windows build instructions * install.sh newline fix \n wasn't as cross platform as it should be so reverted to an extra echo * Add CentOS to README.md Full CentOS 7.7 install instructions * mention blspy * confirmed boost 1.67.0 works on Ubuntu * Update README.md. * Fix problem with zip download. * Remove scm warning Revert install instructions due to scm fix * Update README and install scripts to separate timelord installation Do not install VDF server and its dependencies in install.sh, create a separate script install_timelord.sh for that. * Move installation of VDF server dependencies to install_timelord.sh * First and broken attempt at CentOS install * Working CentOS 7.7 install * typos in timelord explanation * Timlord/VDF build instructions Specifics for CentOS and MacOS * Various install tips and tricks * spelling error * Add AMZN linux 2 install * Add AMZN linux 2 timelord install Also clean up base install instructions * Combine TL for AMZN and CentOS * Nits for AMZN and CentOS * CentOS, AMZN timelord paralleling * Fix header layouts * Replace VDF server compilation scripts with Makefile * layout improvements * fast_vdf: Remove unused files * Partial ARM install support * missing l in lib * Fleshed out Windows/WSL installs And verified the method for upgrade to 19.x * Move MacOS install fullnode to bottom * Change to mongo "system-wide" * Add mongo start to WSL * Add actual upgrade for WSL/Ubuntu Co-authored-by: Mariano Sorgente <sorgente711@gmail.com> Co-authored-by: Rostislav Skudnov <skrostislav@gmail.com> Co-authored-by: Richard Kiss <him@richardkiss.com> Co-authored-by: wjblanke <wjb2002@flex.com>
2019-12-25 22:18:07 +03:00
2021-02-20 21:35:31 +03:00
# Check for non 64 bit ARM64/Raspberry Pi installs
if [ "$(uname -m)" = "armv7l" ]; then
echo ""
echo "WARNING:"
echo "Chia Blockchain requires a 64 bit OS and this is 32 bit armv7l"
2021-02-20 21:38:39 +03:00
echo "For more information:"
echo "https://github.com/Chia-Network/chia-blockchain/wiki/Raspberry-Pi"
2021-02-20 21:35:31 +03:00
echo "Exiting."
exit 1
fi
# get submodules
2021-03-08 22:47:41 +03:00
git submodule update --init mozilla-ca
2021-02-20 21:35:31 +03:00
UBUNTU_PRE_2004=false
if $UBUNTU; then
LSB_RELEASE=$(lsb_release -rs)
# In case Ubuntu minimal does not come with bc
if [ "$(which bc |wc -l)" -eq 0 ]; then sudo apt install bc -y; fi
# Mint 20.04 repsonds with 20 here so 20 instead of 20.04
UBUNTU_PRE_2004=$(echo "$LSB_RELEASE<20" | bc)
2021-04-21 00:36:12 +03:00
UBUNTU_2100=$(echo "$LSB_RELEASE>=21" | bc)
fi
2020-04-06 11:19:25 +03:00
# Manage npm and other install requirements on an OS specific basis
if [ "$(uname)" = "Linux" ]; then
#LINUX=1
if [ "$UBUNTU" = "true" ] && [ "$UBUNTU_PRE_2004" = "1" ]; then
# Debian/Ubuntu
echo "Installing on Ubuntu/Debian pre 20.04 LTS"
sudo apt-get update
sudo apt-get install -y python3.7-venv python3.7-distutils
2021-04-23 00:13:48 +03:00
elif [ "$UBUNTU" = "true" ] && [ "$UBUNTU_PRE_2004" = "0" ] && [ "$UBUNTU_2100" = "0" ]; then
echo "Installing on Ubuntu/Debian 20.04 LTS"
sudo apt-get update
sudo apt-get install -y python3.8-venv python3-distutils
2021-04-21 00:36:12 +03:00
elif [ "$UBUNTU" = "true" ] && [ "$UBUNTU_2100" = "1" ]; then
echo "Installing on Ubuntu/Debian 21.04 or newer"
sudo apt-get update
sudo apt-get install -y python3.9-venv python3-distutils
elif type pacman && [ -f "/etc/arch-release" ]; then
# Arch Linux
echo "Installing on Arch Linux"
sudo pacman -S --needed python git
elif type yum && [ ! -f "/etc/redhat-release" ] && [ ! -f "/etc/centos-release" ] && [ ! -f "/etc/fedora-release" ]; then
# AMZN 2
echo "Installing on Amazon Linux 2"
sudo yum install -y python3 git
elif type yum && [ -f "/etc/redhat-release" ] || [ -f "/etc/centos-release" ] || [ -f "/etc/fedora-release" ]; then
# CentOS or Redhat or Fedora
echo "Installing on CentOS/Redhat/Fedora"
fi
elif [ "$(uname)" = "Darwin" ] && ! type brew >/dev/null 2>&1; then
echo "Installation currently requires brew on MacOS - https://brew.sh/"
elif [ "$(uname)" = "OpenBSD" ]; then
export MAKE=${MAKE:-gmake}
export BUILD_VDF_CLIENT=${BUILD_VDF_CLIENT:-N}
elif [ "$(uname)" = "FreeBSD" ]; then
export MAKE=${MAKE:-gmake}
export BUILD_VDF_CLIENT=${BUILD_VDF_CLIENT:-N}
2020-02-07 08:14:54 +03:00
fi
find_python() {
set +e
unset BEST_VERSION
for V in 37 3.7 38 3.8 39 3.9 3; do
if which python$V >/dev/null; then
if [ x"$BEST_VERSION" = x ]; then
BEST_VERSION=$V
fi
fi
done
echo $BEST_VERSION
set -e
}
if [ x"$INSTALL_PYTHON_VERSION" = x ]; then
INSTALL_PYTHON_VERSION=$(find_python)
fi
# this fancy syntax sets INSTALL_PYTHON_PATH to "python3.7" unless INSTALL_PYTHON_VERSION is defined
# if INSTALL_PYTHON_VERSION=3.8, then INSTALL_PYTHON_PATH becomes python3.8
INSTALL_PYTHON_PATH=python${INSTALL_PYTHON_VERSION:-3.7}
echo "Python version is $INSTALL_PYTHON_VERSION"
$INSTALL_PYTHON_PATH -m venv venv
2020-03-28 03:52:24 +03:00
if [ ! -f "activate" ]; then
ln -s venv/bin/activate .
2020-03-28 03:52:24 +03:00
fi
# shellcheck disable=SC1091
. ./activate
2020-03-27 05:50:34 +03:00
# pip 20.x+ supports Linux binary wheels
2020-03-25 07:52:23 +03:00
pip install --upgrade pip
pip install wheel
2020-04-06 10:19:39 +03:00
#if [ "$INSTALL_PYTHON_VERSION" = "3.8" ]; then
# This remains in case there is a diversion of binary wheels
pip install --extra-index-url https://pypi.chia.net/simple/ miniupnpc==2.1
pip install -e . --extra-index-url https://pypi.chia.net/simple/
Separate timelord, add Windows/CentOS/AMZN (#62) 1.1.1 release * windows build instructions * install.sh newline fix \n wasn't as cross platform as it should be so reverted to an extra echo * Add CentOS to README.md Full CentOS 7.7 install instructions * mention blspy * confirmed boost 1.67.0 works on Ubuntu * Update README.md. * Fix problem with zip download. * Remove scm warning Revert install instructions due to scm fix * Update README and install scripts to separate timelord installation Do not install VDF server and its dependencies in install.sh, create a separate script install_timelord.sh for that. * Move installation of VDF server dependencies to install_timelord.sh * First and broken attempt at CentOS install * Working CentOS 7.7 install * typos in timelord explanation * Timlord/VDF build instructions Specifics for CentOS and MacOS * Various install tips and tricks * spelling error * Add AMZN linux 2 install * Add AMZN linux 2 timelord install Also clean up base install instructions * Combine TL for AMZN and CentOS * Nits for AMZN and CentOS * CentOS, AMZN timelord paralleling * Fix header layouts * Replace VDF server compilation scripts with Makefile * layout improvements * fast_vdf: Remove unused files * Partial ARM install support * missing l in lib * Fleshed out Windows/WSL installs And verified the method for upgrade to 19.x * Move MacOS install fullnode to bottom * Change to mongo "system-wide" * Add mongo start to WSL * Add actual upgrade for WSL/Ubuntu Co-authored-by: Mariano Sorgente <sorgente711@gmail.com> Co-authored-by: Rostislav Skudnov <skrostislav@gmail.com> Co-authored-by: Richard Kiss <him@richardkiss.com> Co-authored-by: wjblanke <wjb2002@flex.com>
2019-12-25 22:18:07 +03:00
echo ""
echo "Chia blockchain install.sh complete."
echo "For assistance join us on Keybase in the #testnet chat channel"
echo "https://keybase.io/team/chia_network.public"
2020-03-27 20:37:22 +03:00
echo ""
echo "Try the Quick Start Guide to running chia-blockchain"
echo "https://github.com/Chia-Network/chia-blockchain/wiki/Quick-Start-Guide"
echo ""
echo "To install the GUI type 'sh install-gui.sh' after '. ./activate'"
echo ""
echo "Type '. ./activate' and then 'chia init' to begin"