golang.org/x/build@v0.0.0-20240506185731-218518f32b70/env/js-wasm/setup_14.x (about)

     1  #!/bin/bash
     2  
     3  # Discussion, issues and change requests at:
     4  #   https://github.com/nodesource/distributions
     5  #
     6  # Script to install the NodeSource Node.js 14.x repo onto a
     7  # Debian or Ubuntu system.
     8  #
     9  # Run as root or insert `sudo -E` before `bash`:
    10  #
    11  # curl -sL https://deb.nodesource.com/setup_14.x | bash -
    12  #   or
    13  # wget -qO- https://deb.nodesource.com/setup_14.x | bash -
    14  #
    15  # CONTRIBUTIONS TO THIS SCRIPT
    16  #
    17  # This script is built from a template in
    18  # https://github.com/nodesource/distributions/tree/master/deb/src
    19  # please don't submit pull requests against the built scripts.
    20  #
    21  
    22  
    23  export DEBIAN_FRONTEND=noninteractive
    24  SCRSUFFIX="_14.x"
    25  NODENAME="Node.js 14.x"
    26  NODEREPO="node_14.x"
    27  NODEPKG="nodejs"
    28  
    29  print_status() {
    30      echo
    31      echo "## $1"
    32      echo
    33  }
    34  
    35  if test -t 1; then # if terminal
    36      ncolors=$(which tput > /dev/null && tput colors) # supports color
    37      if test -n "$ncolors" && test $ncolors -ge 8; then
    38          termcols=$(tput cols)
    39          bold="$(tput bold)"
    40          underline="$(tput smul)"
    41          standout="$(tput smso)"
    42          normal="$(tput sgr0)"
    43          black="$(tput setaf 0)"
    44          red="$(tput setaf 1)"
    45          green="$(tput setaf 2)"
    46          yellow="$(tput setaf 3)"
    47          blue="$(tput setaf 4)"
    48          magenta="$(tput setaf 5)"
    49          cyan="$(tput setaf 6)"
    50          white="$(tput setaf 7)"
    51      fi
    52  fi
    53  
    54  print_bold() {
    55      title="$1"
    56      text="$2"
    57  
    58      echo
    59      echo "${red}================================================================================${normal}"
    60      echo "${red}================================================================================${normal}"
    61      echo
    62      echo -e "  ${bold}${yellow}${title}${normal}"
    63      echo
    64      echo -en "  ${text}"
    65      echo
    66      echo "${red}================================================================================${normal}"
    67      echo "${red}================================================================================${normal}"
    68  }
    69  
    70  bail() {
    71      echo 'Error executing command, exiting'
    72      exit 1
    73  }
    74  
    75  exec_cmd_nobail() {
    76      echo "+ $1"
    77      bash -c "$1"
    78  }
    79  
    80  exec_cmd() {
    81      exec_cmd_nobail "$1" || bail
    82  }
    83  
    84  node_deprecation_warning() {
    85      if [[ "X${NODENAME}" == "Xio.js 1.x" ||
    86            "X${NODENAME}" == "Xio.js 2.x" ||
    87            "X${NODENAME}" == "Xio.js 3.x" ||
    88            "X${NODENAME}" == "XNode.js 0.10" ||
    89            "X${NODENAME}" == "XNode.js 0.12" ||
    90            "X${NODENAME}" == "XNode.js 4.x LTS Argon" ||
    91            "X${NODENAME}" == "XNode.js 5.x" ||
    92            "X${NODENAME}" == "XNode.js 6.x LTS Boron" ||
    93            "X${NODENAME}" == "XNode.js 7.x" ||
    94            "X${NODENAME}" == "XNode.js 8.x LTS Carbon" ||
    95            "X${NODENAME}" == "XNode.js 9.x" ||
    96            "X${NODENAME}" == "XNode.js 10.x" ||
    97            "X${NODENAME}" == "XNode.js 11.x" ||
    98            "X${NODENAME}" == "XNode.js 13.x" ||
    99            "X${NODENAME}" == "XNode.js 15.x" ]]; then
   100  
   101          print_bold \
   102  "                            DEPRECATION WARNING                            " "\
   103  ${bold}${NODENAME} is no longer actively supported!${normal}
   104  
   105    ${bold}You will not receive security or critical stability updates${normal} for this version.
   106  
   107    You should migrate to a supported version of Node.js as soon as possible.
   108    Use the installation script that corresponds to the version of Node.js you
   109    wish to install. e.g.
   110  
   111     * ${green}https://deb.nodesource.com/setup_12.x — Node.js 12 LTS \"Erbium\"${normal}
   112     * ${green}https://deb.nodesource.com/setup_14.x — Node.js 14 LTS \"Fermium\"${normal} (recommended)
   113     * ${green}https://deb.nodesource.com/setup_16.x — Node.js 16 \"Gallium\"${normal}
   114  
   115    Please see ${bold}https://github.com/nodejs/Release${normal} for details about which
   116    version may be appropriate for you.
   117  
   118    The ${bold}NodeSource${normal} Node.js distributions repository contains
   119    information both about supported versions of Node.js and supported Linux
   120    distributions. To learn more about usage, see the repository:
   121      ${bold}https://github.com/nodesource/distributions${normal}
   122  "
   123          echo
   124          echo "Continuing in 20 seconds ..."
   125          echo
   126          sleep 20
   127      fi
   128  }
   129  
   130  script_deprecation_warning() {
   131      if [ "X${SCRSUFFIX}" == "X" ]; then
   132          print_bold \
   133  "                         SCRIPT DEPRECATION WARNING                         " "\
   134  This script, located at ${bold}https://deb.nodesource.com/setup${normal}, used to
   135    install Node.js 0.10, is deprecated and will eventually be made inactive.
   136  
   137    You should use the script that corresponds to the version of Node.js you
   138    wish to install. e.g.
   139  
   140     * ${green}https://deb.nodesource.com/setup_12.x — Node.js 12 LTS \"Erbium\"${normal}
   141     * ${green}https://deb.nodesource.com/setup_14.x — Node.js 14 LTS \"Fermium\"${normal} (recommended)
   142     * ${green}https://deb.nodesource.com/setup_16.x — Node.js 16 \"Gallium\"${normal}
   143  
   144    Please see ${bold}https://github.com/nodejs/Release${normal} for details about which
   145    version may be appropriate for you.
   146  
   147    The ${bold}NodeSource${normal} Node.js Linux distributions GitHub repository contains
   148    information about which versions of Node.js and which Linux distributions
   149    are supported and how to use the install scripts.
   150      ${bold}https://github.com/nodesource/distributions${normal}
   151  "
   152  
   153          echo
   154          echo "Continuing in 20 seconds (press Ctrl-C to abort) ..."
   155          echo
   156          sleep 20
   157      fi
   158  }
   159  
   160  setup() {
   161  
   162  script_deprecation_warning
   163  node_deprecation_warning
   164  
   165  print_status "Installing the NodeSource ${NODENAME} repo..."
   166  
   167  if $(uname -m | grep -Eq ^armv6); then
   168      print_status "You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from nodejs.org for Node.js 4 and later."
   169      exit 1
   170  fi
   171  
   172  PRE_INSTALL_PKGS=""
   173  
   174  # Check that HTTPS transport is available to APT
   175  # (Check snaked from: https://get.docker.io/ubuntu/)
   176  
   177  if [ ! -e /usr/lib/apt/methods/https ]; then
   178      PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} apt-transport-https"
   179  fi
   180  
   181  if [ ! -x /usr/bin/lsb_release ]; then
   182      PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
   183  fi
   184  
   185  if [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/wget ]; then
   186      PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} curl"
   187  fi
   188  
   189  # Used by apt-key to add new keys
   190  
   191  if [ ! -x /usr/bin/gpg ]; then
   192      PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} gnupg"
   193  fi
   194  
   195  # Populating Cache
   196  print_status "Populating apt-get cache..."
   197  exec_cmd 'apt-get update'
   198  
   199  if [ "X${PRE_INSTALL_PKGS}" != "X" ]; then
   200      print_status "Installing packages required for setup:${PRE_INSTALL_PKGS}..."
   201      # This next command needs to be redirected to /dev/null or the script will bork
   202      # in some environments
   203      exec_cmd "apt-get install -y${PRE_INSTALL_PKGS} > /dev/null 2>&1"
   204  fi
   205  
   206  IS_PRERELEASE=$(lsb_release -d | grep 'Ubuntu .*development' >& /dev/null; echo $?)
   207  if [[ $IS_PRERELEASE -eq 0 ]]; then
   208      print_status "Your distribution, identified as \"$(lsb_release -d -s)\", is a pre-release version of Ubuntu. NodeSource does not maintain official support for Ubuntu versions until they are formally released. You can try using the manual installation instructions available at https://github.com/nodesource/distributions and use the latest supported Ubuntu version name as the distribution identifier, although this is not guaranteed to work."
   209      exit 1
   210  fi
   211  
   212  DISTRO=$(lsb_release -c -s)
   213  
   214  check_alt() {
   215      if [ "X${DISTRO}" == "X${2}" ]; then
   216          echo
   217          echo "## You seem to be using ${1} version ${DISTRO}."
   218          echo "## This maps to ${3} \"${4}\"... Adjusting for you..."
   219          DISTRO="${4}"
   220      fi
   221  }
   222  
   223  check_alt "SolydXK"       "solydxk-9" "Debian" "stretch"
   224  check_alt "Kali"          "sana"     "Debian" "jessie"
   225  check_alt "Kali"          "kali-rolling" "Debian" "bullseye"
   226  check_alt "Sparky Linux"  "Tyche"    "Debian" "stretch"
   227  check_alt "Sparky Linux"  "Nibiru"   "Debian" "buster"
   228  check_alt "MX Linux 17"   "Horizon"  "Debian" "stretch"
   229  check_alt "MX Linux 18"   "Continuum" "Debian" "stretch"
   230  check_alt "MX Linux 19"   "patito feo" "Debian" "buster"
   231  check_alt "Linux Mint"    "maya"     "Ubuntu" "precise"
   232  check_alt "Linux Mint"    "qiana"    "Ubuntu" "trusty"
   233  check_alt "Linux Mint"    "rafaela"  "Ubuntu" "trusty"
   234  check_alt "Linux Mint"    "rebecca"  "Ubuntu" "trusty"
   235  check_alt "Linux Mint"    "rosa"     "Ubuntu" "trusty"
   236  check_alt "Linux Mint"    "sarah"    "Ubuntu" "xenial"
   237  check_alt "Linux Mint"    "serena"   "Ubuntu" "xenial"
   238  check_alt "Linux Mint"    "sonya"    "Ubuntu" "xenial"
   239  check_alt "Linux Mint"    "sylvia"   "Ubuntu" "xenial"
   240  check_alt "Linux Mint"    "tara"     "Ubuntu" "bionic"
   241  check_alt "Linux Mint"    "tessa"    "Ubuntu" "bionic"
   242  check_alt "Linux Mint"    "tina"     "Ubuntu" "bionic"
   243  check_alt "Linux Mint"    "tricia"   "Ubuntu" "bionic"
   244  check_alt "Linux Mint"    "ulyana"   "Ubuntu" "focal"
   245  check_alt "Linux Mint"    "ulyssa"   "Ubuntu" "focal"
   246  check_alt "Linux Mint"    "uma"      "Ubuntu" "focal"
   247  check_alt "LMDE"          "betsy"    "Debian" "jessie"
   248  check_alt "LMDE"          "cindy"    "Debian" "stretch"
   249  check_alt "LMDE"          "debbie"   "Debian" "buster"
   250  check_alt "elementaryOS"  "luna"     "Ubuntu" "precise"
   251  check_alt "elementaryOS"  "freya"    "Ubuntu" "trusty"
   252  check_alt "elementaryOS"  "loki"     "Ubuntu" "xenial"
   253  check_alt "elementaryOS"  "juno"     "Ubuntu" "bionic"
   254  check_alt "elementaryOS"  "hera"     "Ubuntu" "bionic"
   255  check_alt "elementaryOS"  "odin"     "Ubuntu" "focal"
   256  check_alt "Trisquel"      "toutatis" "Ubuntu" "precise"
   257  check_alt "Trisquel"      "belenos"  "Ubuntu" "trusty"
   258  check_alt "Trisquel"      "flidas"   "Ubuntu" "xenial"
   259  check_alt "Trisquel"      "etiona"   "Ubuntu" "bionic"
   260  check_alt "Uruk GNU/Linux" "lugalbanda" "Ubuntu" "xenial"
   261  check_alt "BOSS"          "anokha"   "Debian" "wheezy"
   262  check_alt "BOSS"          "anoop"    "Debian" "jessie"
   263  check_alt "BOSS"          "drishti"  "Debian" "stretch"
   264  check_alt "BOSS"          "unnati"   "Debian" "buster"
   265  check_alt "bunsenlabs"    "bunsen-hydrogen" "Debian" "jessie"
   266  check_alt "bunsenlabs"    "helium"   "Debian" "stretch"
   267  check_alt "bunsenlabs"    "lithium"  "Debian" "buster"
   268  check_alt "Tanglu"        "chromodoris" "Debian" "jessie"
   269  check_alt "PureOS"        "green"    "Debian" "sid"
   270  check_alt "PureOS"        "amber"    "Debian" "buster"
   271  check_alt "Devuan"        "jessie"   "Debian" "jessie"
   272  check_alt "Devuan"        "ascii"    "Debian" "stretch"
   273  check_alt "Devuan"        "beowulf"  "Debian" "buster"
   274  check_alt "Devuan"        "ceres"    "Debian" "sid"
   275  check_alt "Deepin"        "panda"    "Debian" "sid"
   276  check_alt "Deepin"        "unstable" "Debian" "sid"
   277  check_alt "Deepin"        "stable"   "Debian" "buster"
   278  check_alt "Pardus"        "onyedi"   "Debian" "stretch"
   279  check_alt "Liquid Lemur"  "lemur-3"  "Debian" "stretch"
   280  check_alt "Astra Linux"   "orel"     "Debian" "stretch"
   281  check_alt "Ubilinux"      "dolcetto" "Debian" "stretch"
   282  
   283  if [ "X${DISTRO}" == "Xdebian" ]; then
   284    print_status "Unknown Debian-based distribution, checking /etc/debian_version..."
   285    NEWDISTRO=$([ -e /etc/debian_version ] && cut -d/ -f1 < /etc/debian_version)
   286    if [ "X${NEWDISTRO}" == "X" ]; then
   287      print_status "Could not determine distribution from /etc/debian_version..."
   288    else
   289      DISTRO=$NEWDISTRO
   290      print_status "Found \"${DISTRO}\" in /etc/debian_version..."
   291    fi
   292  fi
   293  
   294  print_status "Confirming \"${DISTRO}\" is supported..."
   295  
   296  if [ -x /usr/bin/curl ]; then
   297      exec_cmd_nobail "curl -sLf -o /dev/null 'https://deb.nodesource.com/${NODEREPO}/dists/${DISTRO}/Release'"
   298      RC=$?
   299  else
   300      exec_cmd_nobail "wget -qO /dev/null -o /dev/null 'https://deb.nodesource.com/${NODEREPO}/dists/${DISTRO}/Release'"
   301      RC=$?
   302  fi
   303  
   304  if [[ $RC != 0 ]]; then
   305      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"
   306      exit 1
   307  fi
   308  
   309  if [ -f "/etc/apt/sources.list.d/chris-lea-node_js-$DISTRO.list" ]; then
   310      print_status 'Removing Launchpad PPA Repository for NodeJS...'
   311  
   312      exec_cmd_nobail 'add-apt-repository -y -r ppa:chris-lea/node.js'
   313      exec_cmd "rm -f /etc/apt/sources.list.d/chris-lea-node_js-${DISTRO}.list"
   314  fi
   315  
   316  print_status 'Adding the NodeSource signing key to your keyring...'
   317  keyring='/usr/share/keyrings'
   318  node_key_url="https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
   319  local_node_key="$keyring/nodesource.gpg"
   320  
   321  if [ -x /usr/bin/curl ]; then
   322      exec_cmd "curl -s $node_key_url | gpg --dearmor | tee $local_node_key >/dev/null"
   323  else
   324      exec_cmd "wget -q -O - $node_key_url | gpg --dearmor | tee $local_node_key >/dev/null"
   325  fi
   326  
   327  print_status "Creating apt sources list file for the NodeSource ${NODENAME} repo..."
   328  
   329  exec_cmd "echo 'deb [signed-by=$local_node_key] https://deb.nodesource.com/${NODEREPO} ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list"
   330  exec_cmd "echo 'deb-src [signed-by=$local_node_key] https://deb.nodesource.com/${NODEREPO} ${DISTRO} main' >> /etc/apt/sources.list.d/nodesource.list"
   331  
   332  print_status 'Running `apt-get update` for you...'
   333  
   334  exec_cmd 'apt-get update'
   335  
   336  yarn_site='https://dl.yarnpkg.com/debian'
   337  yarn_key_url="$yarn_site/pubkey.gpg"
   338  local_yarn_key="$keyring/yarnkey.gpg"
   339  
   340  print_status """Run \`${bold}sudo apt-get install -y ${NODEPKG}${normal}\` to install ${NODENAME} and npm
   341  ## You may also need development tools to build native addons:
   342       sudo apt-get install gcc g++ make
   343  ## To install the Yarn package manager, run:
   344       curl -sL $yarn_key_url | gpg --dearmor | sudo tee $local_yarn_key >/dev/null
   345       echo \"deb [signed-by=$local_yarn_key] $yarn_site stable main\" | sudo tee /etc/apt/sources.list.d/yarn.list
   346       sudo apt-get update && sudo apt-get install yarn
   347  """
   348  
   349  }
   350  
   351  ## Defer setup until we have the complete script
   352  setup