This file ( 5kB ) exceeds the allowed full mode (48 kb) size.
The editor full hight is disabled, only scrolling is allowed..
If you wish to edit a file, it is recommended to use the scroll mode as some users do not like the full height
mode, although some users like it.
#!/usr/bin/env bash
# based on https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# the current directory
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# if an error exit right away, don't continue the build
set -e
# some info
#echo
#echo "Works like command, use a tag: sudo ./scripts/build-server.sh r4.4.8"
#echo
# check if we are root
if [[ $EUID -ne 0 ]]; then
echo "This script must be ran via root 'sudo' command or using in 'sudo -i'."
exit 1
fi
# require mongo branch
#if [ -z "${1}" ]; then
# echo "First argument must be the MONGODB_BRANCH for example 'v4.1'"
# exit 1
#fi
#MONGODB_BRANCH="${1}"
# require mongo release
#if [ -z "${2}" ]; then
# echo "The second argument must be the MONGODB_RELEASE for example 'r4.4.8'"
# exit 1
#fi
#MONGODB_RELEASE="${2}"
# require mongo release
if [ -z "${1}" ]; then
echo "The first argument must be the MONGODB_RELEASE for example '4.4.8'"
exit 1
fi
MONGODB_RELEASE="${1}"
# delete all mongo other programs, we self compile
#apt remove --purge mongo* || true
# the required packages for debian
# generate build directory variable
BUILD=$DIR/../build
# delete previous build directory
rm -rf $BUILD/mongo
# generate new build directory
mkdir -p $BUILD
# the mongodb.conf and systemd services files in a directory variable
ROOT_FS=$DIR/../artifacts/root-filesystem
# find out how many cores we have and we use that many
#if [ -z "$CORES" ]; then
# CORES=$(grep -c ^processor /proc/cpuinfo)
#fi
#echo Using $CORES cores
# go to the build directory
pushd $BUILD
# clone the mongo by branch
#git clone -b ${MONGODB_BRANCH} https://github.com/mongodb/mongo.git
# clone the mongo by branch
#git clone https://github.com/mongodb/mongo.git
# the mongo directory is a variables
#MONGO=$BUILD/mongo
# go to the mongo directory
#pushd $MONGO
# checkout the mongo release
# git checkout tags/${MONGODB_RELEASE}
# hack to old version python pip cryptography from 1.7.2 to use the latest
# sed -i 's#cryptography == 1.7.2#\#cryptography == 1.7.2#g' buildscripts/requirements.txt
# this is only because 4.4.8 uses 1.7.2 and
# https://github.com/pyca/cryptography/issues/4193#issuecomment-381236459
# support minimum latest (2.2)
#pip3 install cryptography
# install the python requirements
#pip install -r etc/pip/dev-requirements.txt
#pip3 install -r etc/pip/dev-requirements.txt
# python3 -m pip install -r etc/pip/compile-requirements.txt
# somewhere in the build it says if we install this, it is faster to build
#pip3 install --user regex
# build everything
#buildscripts/scons.py all --disable-warnings-as-errors -j $CORES --ssl
# python3 buildscripts/scons.py install-core --disable-warnings-as-errors -j $CORES --ssl
# install the mongo programs all
#buildscripts/scons.py install --disable-warnings-as-errors -j $CORES --prefix /usr
# create a copy of the old config
#TIMESTAMP=$(($(date +%s%N)/1000000))
#cp /etc/mongodb.conf /etc/mongodb.conf.$TIMESTAMP.save
# copy the mongodb.conf configured and the systemd service file
# dangerous!!! removed
# cp -avr $ROOT_FS/. /
MONGO_FILENAME=mongodb-linux-x86_64-debian10-${MONGODB_RELEASE}
MONGO_FILENAME_TGZ=${MONGO_FILENAME}.tgz
wget https://fastdl.mongodb.org/linux/$MONGO_FILENAME_TGZ
tar zxvf $MONGO_FILENAME_TGZ
pushd $MONGO_FILENAME
cp -R ./bin/* /usr/bin
popd
MONGODB_SERVICE=etc/systemd/system/mongodb-server.service
cp $ROOT_FS/$MONGODB_SERVICE /$MONGODB_SERVICE
chown root:root /$MONGODB_SERVICE
chmod o-rwx /$MONGODB_SERVICE
# generate mongodb user and group
useradd mongodb -d /var/lib/mongodb -s /bin/false || true
# create the required mongodb database directory and add safety
mkdir -p /var/lib/mongodb
chmod o-rwx -R /var/lib/mongodb
chown -R mongodb:mongodb /var/lib/mongodb
# create the required mongodb log directory and add safety
mkdir -p /var/log/mongodb
chmod o-rwx -R /var/log/mongodb
chown -R mongodb:mongodb /var/log/mongodb
# create the required run socket directory and add safety
mkdir -p /run/mongodb
chmod o-rwx -R /run/mongodb
chown -R mongodb:mongodb /run/mongodb
# add safety to the mongodb config file
chmod o-rwx /etc/mongodb.conf || true
chown mongodb:mongodb /etc/mongodb.conf || true
# reload systemd services
systemctl daemon-reload
# enable the mongodb-server
systemctl enable mongodb-server
# start the mongodb-server
#service mongodb-server start
# exit of the mongo directory
# popd
# exit the build directory
popd
# delete current build directory
rm -rf $BUILD/mongo