100 lines
2.5 KiB
Shell
Executable file
100 lines
2.5 KiB
Shell
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [ "${EUID}" -eq 0 ]; then
|
|
echo "Do not run this entire script as root."
|
|
echo "Run it as a normal user with sudo access."
|
|
exit 1
|
|
fi
|
|
|
|
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
JOBS="${VEXTA_BUILD_JOBS:-$(nproc)}"
|
|
|
|
echo "========================================"
|
|
echo " Vexta Core node installer"
|
|
echo "========================================"
|
|
echo "Project root: $PROJECT_ROOT"
|
|
echo "Build jobs: $JOBS"
|
|
echo
|
|
|
|
if ! command -v sudo >/dev/null 2>&1; then
|
|
echo "ERROR: sudo is required."
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v apt-get >/dev/null 2>&1; then
|
|
echo "ERROR: This installer currently supports Ubuntu/Debian systems only."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Installing build dependencies..."
|
|
sudo apt-get update
|
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
build-essential \
|
|
automake \
|
|
autotools-dev \
|
|
autoconf \
|
|
libtool \
|
|
pkg-config \
|
|
python3 \
|
|
git \
|
|
curl \
|
|
ca-certificates \
|
|
libevent-dev \
|
|
libboost-system-dev \
|
|
libboost-filesystem-dev \
|
|
libboost-test-dev \
|
|
libboost-thread-dev \
|
|
libsqlite3-dev \
|
|
libzmq3-dev
|
|
|
|
cd "$PROJECT_ROOT"
|
|
|
|
if [ ! -x ./configure ]; then
|
|
echo "Generating configure script..."
|
|
./autogen.sh
|
|
fi
|
|
|
|
echo "Configuring Vexta Core..."
|
|
./configure \
|
|
--without-gui \
|
|
--disable-tests \
|
|
--disable-bench \
|
|
--with-incompatible-bdb
|
|
|
|
echo "Building Vexta Core..."
|
|
make -j"$JOBS"
|
|
|
|
echo "Installing binaries into /usr/local/bin..."
|
|
sudo install -m 0755 src/vextad /usr/local/bin/vextad
|
|
sudo install -m 0755 src/vexta-cli /usr/local/bin/vexta-cli
|
|
sudo install -m 0755 src/vexta-tx /usr/local/bin/vexta-tx
|
|
sudo install -m 0755 src/vexta-util /usr/local/bin/vexta-util
|
|
sudo install -m 0755 src/vexta-wallet /usr/local/bin/vexta-wallet
|
|
|
|
echo "Installing systemd service template..."
|
|
sudo install -m 0644 \
|
|
"$PROJECT_ROOT/contrib/vexta/vextad@.service" \
|
|
/etc/systemd/system/vextad@.service
|
|
|
|
sudo systemctl daemon-reload
|
|
|
|
echo
|
|
echo "Installed versions:"
|
|
vextad --version | head -1
|
|
vexta-cli --version | head -1
|
|
|
|
echo
|
|
echo "Vexta Core installation completed."
|
|
echo "Next steps:"
|
|
echo " mkdir -p \$HOME/.vexta"
|
|
echo " cp contrib/vexta/vexta-mainnet.conf \$HOME/.vexta/vexta.conf"
|
|
echo " nano \$HOME/.vexta/vexta.conf"
|
|
echo
|
|
echo "Start Vexta manually:"
|
|
echo " vextad -daemon"
|
|
echo
|
|
echo "Or enable the systemd service:"
|
|
echo " sudo systemctl enable vextad@\$(whoami)"
|
|
echo " sudo systemctl start vextad@\$(whoami)"
|
|
echo " sudo systemctl status vextad@\$(whoami)"
|