Last active
June 9, 2016 18:20
-
-
Save alvincrespo/ea8a01635caa30b4076593b4a9a26a90 to your computer and use it in GitHub Desktop.
Installing Node.js V6
This file contains hidden or 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 | |
# This is a copy of https://github.com/nodesource/distributions/blob/master/deb/setup_6.x | |
# The only difference is that it quiets down the output of the installations | |
export DEBIAN_FRONTEND=noninteractive | |
print_status() { | |
echo | |
echo "## $1" | |
echo | |
} | |
bail() { | |
echo 'Error executing command, exiting' | |
exit 1 | |
} | |
exec_cmd_nobail() { | |
echo "+ $1" | |
bash -c "$1" | |
} | |
exec_cmd() { | |
exec_cmd_nobail "$1" || bail | |
} | |
PRE_INSTALL_PKGS="" | |
# Check that HTTPS transport is available to APT | |
# (Check snaked from: https://get.docker.io/ubuntu/) | |
if [ ! -e /usr/lib/apt/methods/https ]; then | |
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} apt-transport-https" | |
fi | |
if [ ! -x /usr/bin/lsb_release ]; then | |
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release" | |
fi | |
if [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/wget ]; then | |
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} curl" | |
fi | |
# Populating Cache | |
exec_cmd 'apt-get -qq update' | |
if [ "X${PRE_INSTALL_PKGS}" != "X" ]; then | |
# This next command needs to be redirected to /dev/null or the script will bork | |
# in some environments | |
exec_cmd "apt-get -qq install -y${PRE_INSTALL_PKGS} > /dev/null 2>&1" | |
fi | |
DISTRO=$(lsb_release -c -s) | |
check_alt() { | |
if [ "X${DISTRO}" == "X${2}" ]; then | |
echo | |
echo "## You seem to be using ${1} version ${DISTRO}." | |
echo "## This maps to ${3} \"${4}\"... Adjusting for you..." | |
DISTRO="${4}" | |
fi | |
} | |
check_alt "Kali" "sana" "Debian" "jessie" | |
check_alt "Debian" "stretch" "Debian" "jessie" | |
check_alt "Linux Mint" "maya" "Ubuntu" "precise" | |
check_alt "Linux Mint" "qiana" "Ubuntu" "trusty" | |
check_alt "Linux Mint" "rafaela" "Ubuntu" "trusty" | |
check_alt "Linux Mint" "rebecca" "Ubuntu" "trusty" | |
check_alt "Linux Mint" "rosa" "Ubuntu" "trusty" | |
check_alt "LMDE" "betsy" "Debian" "jessie" | |
check_alt "elementaryOS" "luna" "Ubuntu" "precise" | |
check_alt "elementaryOS" "freya" "Ubuntu" "trusty" | |
check_alt "Trisquel" "toutatis" "Ubuntu" "precise" | |
check_alt "Trisquel" "belenos" "Ubuntu" "trusty" | |
check_alt "BOSS" "anokha" "Debian" "wheezy" | |
check_alt "bunsenlabs" "bunsen-hydrogen" "Debian" "jessie" | |
check_alt "Tanglu" "chromodoris" "Debian" "jessie" | |
if [ "X${DISTRO}" == "Xdebian" ]; then | |
NEWDISTRO=$([ -e /etc/debian_version ] && cut -d/ -f1 < /etc/debian_version) | |
if [ "X${NEWDISTRO}" == "X" ]; then | |
print_status "Could not determine distribution from /etc/debian_version..." | |
else | |
DISTRO=$NEWDISTRO | |
fi | |
fi | |
if [ -x /usr/bin/curl ]; then | |
exec_cmd_nobail "curl -sLf -o /dev/null 'https://deb.nodesource.com/node_6.x/dists/${DISTRO}/Release'" | |
RC=$? | |
else | |
exec_cmd_nobail "wget -qO /dev/null -o /dev/null 'https://deb.nodesource.com/node_6.x/dists/${DISTRO}/Release'" | |
RC=$? | |
fi | |
if [[ $RC != 0 ]]; then | |
print_status "Your distribution, identified as \"${DISTRO}\", is not currently supported, please contact NodeSource at https://github.com/nodesource/distributions/issues if you think this is incorrect or would like your distribution to be considered for support" | |
exit 1 | |
fi | |
if [ -f "/etc/apt/sources.list.d/chris-lea-node_js-$DISTRO.list" ]; then | |
print_status 'Removing Launchpad PPA Repository for NodeJS...' | |
exec_cmd_nobail 'add-apt-repository -y -r ppa:chris-lea/node.js' | |
exec_cmd "rm -f /etc/apt/sources.list.d/chris-lea-node_js-${DISTRO}.list" | |
fi | |
if [ -x /usr/bin/curl ]; then | |
exec_cmd 'curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -' | |
else | |
exec_cmd 'wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -' | |
fi | |
exec_cmd "echo 'deb https://deb.nodesource.com/node_6.x ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list" | |
exec_cmd "echo 'deb-src https://deb.nodesource.com/node_6.x ${DISTRO} main' >> /etc/apt/sources.list.d/nodesource.list" | |
exec_cmd 'apt-get -qq update' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment