You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.8 KiB
88 lines
2.8 KiB
1 year ago
|
#!/bin/sh
|
||
|
|
||
|
# This spell installs bitcoin on almost any Linux platform, from source when possible, otherwise from precompiled binary.
|
||
|
|
||
|
# Set Bitcoin version
|
||
|
BITCOIN_VERSION=24.1
|
||
|
|
||
|
# Install Bitcoin from source
|
||
|
install_bitcoin_from_source() {
|
||
|
say "Installing Bitcoin Core from source"
|
||
|
if [ ! -e bitcoin-$BITCOIN_VERSION* ]; then
|
||
|
wget https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/bitcoin-$BITCOIN_VERSION.tar.gz
|
||
|
fi
|
||
|
. ./path_to_install_if_needed_script.sh boost
|
||
|
tar -xvf bitcoin-$BITCOIN_VERSION.tar.gz
|
||
|
sleep 1
|
||
|
cd bitcoin-$BITCOIN_VERSION
|
||
|
chmod +x autogen.sh
|
||
|
./autogen.sh
|
||
|
./configure --disable-wallet
|
||
|
make
|
||
|
if [ $? -ne 0 ]; then
|
||
|
return 1
|
||
|
fi
|
||
|
sudo make install
|
||
|
cd ..
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
# Install Bitcoin ARM precompiled binary
|
||
|
install_bitcoin_arm_binary() {
|
||
|
say "Installing Bitcoin Core ARM precompiled binary"
|
||
|
if [ ! -e bitcoin-$BITCOIN_VERSION* ]; then
|
||
|
wget https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/bitcoin-$BITCOIN_VERSION-arm-linux-gnueabihf.tar.gz
|
||
|
tar -xzf bitcoin-$BITCOIN_VERSION-arm-linux-gnueabihf.tar.gz
|
||
|
fi
|
||
|
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-$BITCOIN_VERSION/bin/*
|
||
|
}
|
||
|
|
||
|
# Install Bitcoin x86_64 precompiled binary
|
||
|
install_bitcoin_x86_64_binary() {
|
||
|
say "Installing Bitcoin Core x86_64 precompiled binary"
|
||
|
if [ ! -e bitcoin-$BITCOIN_VERSION* ]; then
|
||
|
wget https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/bitcoin-$BITCOIN_VERSION-x86_64-linux-gnu.tar.gz
|
||
|
tar -xzf bitcoin-$BITCOIN_VERSION-x86_64-linux-gnu.tar.gz
|
||
|
fi
|
||
|
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-$BITCOIN_VERSION/bin/*
|
||
|
}
|
||
|
|
||
|
# Install Bitcoin macOS precompiled binary
|
||
|
install_bitcoin_macos_binary() {
|
||
|
say "Installing Bitcoin Core macOS precompiled binary"
|
||
|
if [ ! -e bitcoin-$BITCOIN_VERSION* ]; then
|
||
|
wget https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VERSION/bitcoin-$BITCOIN_VERSION-osx-signed.dmg
|
||
|
hdiutil attach bitcoin-$BITCOIN_VERSION-osx-signed.dmg
|
||
|
cp -R /Volumes/Bitcoin-Core/Bitcoin-Qt.app /Applications/
|
||
|
hdiutil detach /Volumes/Bitcoin-Core
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# Detect the operating system
|
||
|
OS=$(uname -s)
|
||
|
|
||
|
# Install Bitcoin based on the OS
|
||
|
case $OS in
|
||
|
Darwin)
|
||
|
install_bitcoin_macos_binary
|
||
|
;;
|
||
|
Linux)
|
||
|
ARCH=$(uname -m)
|
||
|
case $ARCH in
|
||
|
x86_64)
|
||
|
if ! install_bitcoin_from_source; then
|
||
|
install_bitcoin_x86_64_binary
|
||
|
fi
|
||
|
;;
|
||
|
arm* | aarch64)
|
||
|
install_bitcoin_arm_binary
|
||
|
;;
|
||
|
*)
|
||
|
say "Unsupported architecture: $ARCH"
|
||
|
exit
|
||
|
esac
|
||
|
;;
|
||
|
*)
|
||
|
say "Unsupported operating system: $OS"
|
||
|
exit
|
||
|
esac
|