raspiblitz/home.admin/config.scripts/bonus.nodejs.sh
openoms 1da893ed06
Nodejs update to v20.x with apt (#4032)
* nodejs update to v20.x with apt
* remove info option from command info
2023-07-29 16:08:17 +02:00

63 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
# follows https://github.com/nodesource/distributions/blob/master/README.md#manual-installation
VERSION="20"
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
echo "config script to install NodeJs $VERSION"
echo "bonus.nodejs.sh [on|off]"
exit 1
fi
# switch on
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
# check if nodeJS was installed
if node -v | grep "${VERSION}"; then
echo "nodeJS $VERSION is already installed"
else
KEYRING=/usr/share/keyrings/nodesource.gpg
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee "$KEYRING" >/dev/null
# wget can also be used:
# wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee "$KEYRING" >/dev/null
gpg --no-default-keyring --keyring "$KEYRING" --list-keys
sudo chmod a+r /usr/share/keyrings/nodesource.gpg
# Replace with the keyring above, if different
KEYRING=/usr/share/keyrings/nodesource.gpg
# The below command will set this correctly, but if lsb_release isn't available, you can set it manually:
# - For Debian distributions: jessie, sid, etc...
# - For Ubuntu distributions: xenial, bionic, etc...
# - For Debian or Ubuntu derived distributions your best option is to use the codename corresponding to the upstream release your distribution is based off. This is an advanced scenario and unsupported if your distribution is not listed as supported per earlier in this README.
DISTRO="$(lsb_release -s -c)"
echo "deb [signed-by=$KEYRING] https://deb.nodesource.com/node_$VERSION.x $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list
echo "deb-src [signed-by=$KEYRING] https://deb.nodesource.com/node_$VERSION.x $DISTRO main" | sudo tee -a /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install -y nodejs
# check if nodeJS was installed
if node -v; then
echo "Installed nodeJS $(node -v)"
else
echo "FAIL - Was not able to install nodeJS"
echo "ABORT - nodeJs install"
exit 1
fi
fi
exit 0
fi
# switch off
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
echo "*** REMOVING NODEJS ***"
sudo apt remove nodejs -y
sudo rm /etc/apt/sources.list.d/nodesource.list
echo "OK NodeJS removed."
exit 0
fi
echo "FAIL - Unknown Parameter $1"
exit 1