-
-
Save mKeRix/88b7b81e9bca044f74de1dc51696efb2 to your computer and use it in GitHub Desktop.
Downloads the latest LTS version and installs it into /opt/nodejs. Supports armv6l for e.g. the Pi Zero W.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Took the good bits from sdesalas/node-pi-zero/ | |
# Switches to unofficial repo since armv6 was removed from main downloads | |
# | |
PI_ARM_VERSION=$( | |
uname -a | | |
egrep 'armv[0-9]+l' -o | |
); | |
if [[ "$PI_ARM_VERSION" == "armv6l" ]]; then | |
LATEST_BASE_URL="https://unofficial-builds.nodejs.org/download/release" | |
LATEST_NODEJS_INDEX="${LATEST_BASE_URL}/index.json" | |
else | |
LATEST_BASE_URL="https://nodejs.org/dist" | |
LATEST_NODEJS_INDEX="${LATEST_BASE_URL}/index.json" | |
fi | |
VERSION=$(curl -sS $LATEST_NODEJS_INDEX | egrep $PI_ARM_VERSION | egrep '"lts":("[a-zA-Z]+")' | head -n 1 | egrep -o '("version":")(v[0-9]+.[0-9]+.[0-9]+)"' | sed 's/"version"://' | tr -d '"') | |
# Creates directory for downloads, and downloads node | |
cd ~/ && mkdir temp && cd temp; | |
wget "${LATEST_BASE_URL}/${VERSION}/node-${VERSION}-linux-${PI_ARM_VERSION}.tar.gz" | |
tar -xzf node-$VERSION-linux-$PI_ARM_VERSION.tar.gz; | |
# Remove the tar after extracing it. | |
sudo rm node-$VERSION-linux-$PI_ARM_VERSION.tar.gz; | |
# This line will clear existing nodejs | |
sudo rm -rf /opt/nodejs; | |
# This next line will copy Node over to the appropriate folder. | |
sudo mv node-$VERSION-linux-$PI_ARM_VERSION /opt/nodejs/; | |
# Remove existing symlinks | |
sudo unlink /usr/bin/node; | |
sudo unlink /usr/sbin/node; | |
sudo unlink /sbin/node; | |
sudo unlink /usr/local/bin/node; | |
sudo unlink /usr/bin/npm; | |
sudo unlink /usr/sbin/npm; | |
sudo unlink /sbin/npm; | |
sudo unlink /usr/local/bin/npm; | |
# Create symlinks to node && npm | |
sudo ln -s /opt/nodejs/bin/node /usr/bin/node; | |
sudo ln -s /opt/nodejs/bin/node /usr/sbin/node; | |
sudo ln -s /opt/nodejs/bin/node /sbin/node; | |
sudo ln -s /opt/nodejs/bin/node /usr/local/bin/node; | |
sudo ln -s /opt/nodejs/bin/npm /usr/bin/npm; | |
sudo ln -s /opt/nodejs/bin/npm /usr/sbin/npm; | |
sudo ln -s /opt/nodejs/bin/npm /sbin/npm; | |
sudo ln -s /opt/nodejs/bin/npm /usr/local/bin/npm; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment