mirror of
https://github.com/EvernodeXRPL/sashimono.git
synced 2026-04-29 15:38:00 +00:00
114 lines
3.2 KiB
Bash
Executable File
114 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Usage ./dev-setup.sh
|
|
# Sashimono agent build environment setup script.
|
|
|
|
set -e # exit on error
|
|
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential libssl-dev
|
|
|
|
scriptdir=$(dirname $(realpath $0))
|
|
workdir=~/sagent-setup
|
|
|
|
mkdir $workdir
|
|
pushd $workdir > /dev/null 2>&1
|
|
|
|
# CMAKE
|
|
cmake=cmake-3.16.0-rc3-Linux-x86_64
|
|
wget https://github.com/Kitware/CMake/releases/download/v3.16.0-rc3/$cmake.tar.gz
|
|
tar -zxvf $cmake.tar.gz
|
|
sudo cp -r $cmake/bin/* /usr/local/bin/
|
|
sudo cp -r $cmake/share/* /usr/local/share/
|
|
rm $cmake.tar.gz && rm -r $cmake
|
|
|
|
# jsoncons
|
|
wget https://github.com/danielaparker/jsoncons/archive/v0.153.3.tar.gz
|
|
tar -zxvf v0.153.3.tar.gz
|
|
pushd jsoncons-0.153.3 > /dev/null 2>&1
|
|
sudo cp -r include/jsoncons /usr/local/include/
|
|
sudo mkdir -p /usr/local/include/jsoncons_ext/
|
|
sudo cp -r include/jsoncons_ext/bson /usr/local/include/jsoncons_ext/
|
|
popd > /dev/null 2>&1
|
|
rm v0.153.3.tar.gz && rm -r jsoncons-0.153.3
|
|
|
|
# Plog
|
|
wget https://github.com/SergiusTheBest/plog/archive/1.1.5.tar.gz
|
|
tar -zxvf 1.1.5.tar.gz
|
|
pushd plog-1.1.5 > /dev/null 2>&1
|
|
sudo cp -r include/plog /usr/local/include/
|
|
popd > /dev/null 2>&1
|
|
rm 1.1.5.tar.gz && rm -r plog-1.1.5
|
|
|
|
# Reader-Writer queue
|
|
wget https://github.com/cameron314/readerwriterqueue/archive/v1.0.3.tar.gz
|
|
tar -zxvf v1.0.3.tar.gz
|
|
pushd readerwriterqueue-1.0.3 > /dev/null 2>&1
|
|
mkdir build
|
|
pushd build > /dev/null 2>&1
|
|
cmake ..
|
|
sudo make install
|
|
popd > /dev/null 2>&1
|
|
popd > /dev/null 2>&1
|
|
rm v1.0.3.tar.gz && sudo rm -r readerwriterqueue-1.0.3
|
|
|
|
# Concurrent queue
|
|
wget https://github.com/cameron314/concurrentqueue/archive/1.0.2.tar.gz
|
|
tar -zxvf 1.0.2.tar.gz
|
|
pushd concurrentqueue-1.0.2 > /dev/null 2>&1
|
|
sudo cp concurrentqueue.h /usr/local/include/
|
|
popd > /dev/null 2>&1
|
|
rm 1.0.2.tar.gz && sudo rm -r concurrentqueue-1.0.2
|
|
|
|
# CLI11
|
|
wget https://github.com/CLIUtils/CLI11/archive/refs/tags/v2.0.0.tar.gz
|
|
tar -zxvf v2.0.0.tar.gz
|
|
pushd CLI11-2.0.0 > /dev/null 2>&1
|
|
mkdir build
|
|
pushd build > /dev/null 2>&1
|
|
cmake ..
|
|
sudo make install/fast
|
|
popd > /dev/null 2>&1
|
|
popd > /dev/null 2>&1
|
|
rm v2.0.0.tar.gz && sudo rm -r CLI11-2.0.0
|
|
|
|
# Library and tools dependencies.
|
|
sudo apt-get install -y \
|
|
libsodium-dev \
|
|
sqlite3 libsqlite3-dev \
|
|
libboost-stacktrace-dev \
|
|
fuse3 \
|
|
jq \
|
|
bind9-host
|
|
|
|
sudo cp $scriptdir/dependencies/libblake3.so /usr/local/lib/
|
|
|
|
# NodeJs
|
|
apt-get install -y ca-certificates curl gnupg
|
|
mkdir -p /etc/apt/keyrings
|
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
|
|
|
NODE_MAJOR=20
|
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
|
|
apt-get update
|
|
apt-get -y install nodejs
|
|
|
|
# Update linker library cache.
|
|
sudo ldconfig
|
|
|
|
# Pop workdir
|
|
popd > /dev/null 2>&1
|
|
sudo rm -r $workdir
|
|
|
|
# Setting up cgroup rules.
|
|
group="sashiuser"
|
|
cgroupsuffix="-cg"
|
|
! sudo groupadd $group && echo "Group creation failed."
|
|
! sudo echo "@$group cpu,memory %u$cgroupsuffix" >>/etc/cgrules.conf && echo "Cgroup rule creation failed."
|
|
|
|
# Setting up Sashimono admin group.
|
|
admin_group="sashiadmin"
|
|
! sudo groupadd $admin_group && echo "Admin group creation failed."
|
|
|
|
# Build sagent
|
|
cmake .
|
|
make |