Installing Node.js in Debian 9
Installation Guide for the Node.js Software Platform in Debian
Node.js is a software platform that transforms JavaScript from a highly specialized language into a general-purpose language. Node.js adds the ability for JavaScript to interact with input/output devices via its API (written in C++), to connect other external libraries written in different languages, providing calls to them from JavaScript code. Node.js is used primarily on the server, acting as a web server, but there is an opportunity to develop in Node.js and desktop window applications (using NW.js, AppJS or Electron for Linux, Windows and Mac OS)
Before installing Node.js, update your existing Debian package list: ``.shell sudo apt update
Let's install **curl**, which will be used to access the PPA:
sudo apt install curl
**Installing Node.js using PPA**
Using a personal package archive(PPA) that is supported by NodeSource, you can choose to install between Node.js v8.x (supported until December 2019), Node.js v10.x (supported until April 2021) and Node.js v12.x.
Let's install the PPA to access the contents of the archive.
Navigate to your home directory:
cd ~
Next, use **curl** to retrieve the installation script for the version you need:
curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
Check out the contents with the **nano** editor:
nano nodesource_setup.sh
#!/bin/bash
Discussion, issues and change requests at:
https://github.com/nodesource/distributions
Script to install the NodeSource Node.js 10.x repo onto a
Debian or Ubuntu system.
Run as root or insert sudo -E
before bash
:
curl -sL https://deb.nodesource.com/setup_10.x | bash -
or
wget -qO- https://deb.nodesource.com/setup_10.x | bash -
CONTRIBUTIONS TO THIS SCRIPT
This script is built from a template in
https://github.com/nodesource/distributions/tree/master/deb/src
please don't submit pull requests against the built scripts.
export DEBIAN_FRONTEND=noninteractive SCRSUFFIX="_10.x" NODENAME="Node.js 10.x" NODEREPO="node_10.x" NODEPKG="nodejs"
print_status() { echo echo "## $1" echo }
if test -t 1; then # if terminal ncolors=$(which tput > /dev/null && tput colors) # supports colors if test -n "$ncolors" && test $ncolors -ge 8; then termcols=$(tput cols) bold="$(tput bold)" underline="$(tput smul)" standout="$(tput smso)" normal="$(tput sgr0)" black="$(tput setaf 0)" red="$(tput setaf 1)" green="$(tput setaf 2)" yellow="$(tput setaf 3)" blue="$(tput setaf 4)" magenta="$(tput setaf 5)" cyan="$(tput setaf 6)" white="$(tput setaf 7)" fi
Run the script as sudo user:
sudo bash nodesource_setup.sh
The PPA archive will be added to the system settings, the local package cache will be automatically updated. Now you can install Node.js:
sudo apt install nodejs
To check the version number of Node.js, type:
nodejs -v
root@kvmde67-19464:~# nodejs -v v10.20.1
The nodejs package contains **nodejs** and **npm** files, so the npm package manager does not need to be installed separately
npm -v
root@kvmde67-19464:~# npm -v 6.14.4
For npm to work correctly (in particular for compiling source code) you need to install the **build-essential** package:
sudo apt install build-essential
**Installing Node.js with nvm**
An alternative to installing Node.js via **apt** is to use the **nvm**(Node.js version manager) tool
With this tool you can install several independent versions of Node.js that won't interfere with each other.
Controlling your development environment through nvm allows you to access the latest versions of Node.js while retaining previous versions
You can use curl to download the installation script **nvm** from the project page on [GitHub](https://github.com/creationix/nvm)
Note that the version number may be different than this example:
First, you need to update the package index and install the packages to build the source code.
sudo apt update
Now you can download the nvm installation script from GitHub.
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh -o install_nvm.sh
Check out the contents with the **nano** editor:
nano install_nvm.sh
#!/usr/bin/env bash
{ # this ensures the entire script is downloaded #
nvm_has() { type "$1" > /dev/null 2>&1 }
nvm_default_install_dir() { [ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nv$ }
nvm_install_dir() { if [ -n "$NVM_DIR" ]; then printf %s "${NVM_DIR}" else nvm_default_install_dir fi }
nvm_latest_version() { echo "v0.35.3" }
nvm_profile_is_bash_or_zsh() { local TEST_PROFILE TEST_PROFILE="${1-}" case "${TEST_PROFILE-}" in *"/.bashrc" | *"/.bash_profile" | *"/.zshrc") return ;; *) return 1 ;; esac }
Outputs the location to NVM depending on:
# The availability of $NVM_SOURCE
# The method used ("script" or "git" in the script, defaults to "git")
NVM_SOURCE always takes precedence unless the method is "script-nvm-exec"
nvm_source() { local NVM_METHOD NVM_METHOD="$1" local NVM_SOURCE_URL NVM_SOURCE_URL="$NVM_SOURCE" if [ "_$NVM_METHOD" = "script-nvm-exec" ]; then NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm-exe$ elif [ "$NVM_METHOD" = "_script-nvm-bash-completion" ]; then
Run it with the command:
bash install_nvm.sh
root@kvmde67-19464:~# bash install_nvm.sh => Downloading nvm from git to '/root/.nvm' => Cloning into '/root/.nvm'... remote: Enumerating objects: 290, done. remote: Counting objects: 100% (290/290), done. remote: Compressing objects: 100% (257/257), done. remote: Total 290 (delta 35), reused 97 (delta 20), pack-reused 0 Receiving objects: 100% (290/290), 163.27 KiB | 0 bytes/s, done. Resolving deltas: 100% (35/35), done. => Compressing and cleaning up git repository
=> Appending nvm source string to /root/.bashrc => Appending bash_completion source string to /root/.bashrc => Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion
The command will install the program to a subdirectory of your home directory **~/.nvm** and add the necessary settings to **~/.profile** so you can use the nvm command.
To access the nvm functionality, you can use the source command to apply the changes without interrupting your current session:
source ~/.profile
Now you can install Node.js.
To see a list of available Node.js versions, type:
nvm ls-remote
root@kvmde67-19464:~# nvm ls-remote v0.1.14 v0.1.15 v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23 v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.30 v0.1.31 v0.1.32 v0.1.33 v0.1.90 v0.1.91 v0.1.92 v0.1.93 v0.1.94 v0.1.95 v0.1.96 v0.1.97 v0.1.98 v0.1.99 v0.1.100 v0.1.101 v0.1.102 v0.1.103 v0.1.104 v0.2.0 v0.2.1 v0.2.2 v0.2.3 v0.2.4 v0.2.5 v0.2.6 v0.3.0 v0.3.1 v0.3.2 v0.3.3 v0.3.4 v0.3.5 v0.3.6 v0.3.7 v0.3.8 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.4.7 v0.4.8 v0.4.9 v0.4.10 v0.4.11 v0.4.12 v0.5.0 v0.5.1 v0.5.2 v0.5.3 v0.5.4 v0.5.5 v0.5.6 v0.5.7 v0.5.8 v0.5.9 v0.5.10 v0.6.0 v0.6.1 v0.6.2 v0.6.3 v0.6.4 v0.6.5 v0.6.6 v0.6.7 v0.6.8 v0.6.9 v0.6.10 v0.6.11 v0.6.12 v0.6.13 v0.6.14 v0.6.15 v0.6.16 v0.6.17 v0.6.18 v0.6.19 v0.6.20 v0.6.21 v0.7.0 v0.7.1 v0.7.2 v0.7.3 v0.7.4 v0.7.5 v0.7.6 v0.7.7 v0.7.8 v0.7.9 v0.7.10 v0.7.11 v0.7.12 v0.8.0 v0.8.1 v0.8.2 v0.8.3 v0.8.4 v0.8.5 v0.8.6 v0.8.7 v0.8.8 v0.8.9 v0.8.10 v0.8.11 v0.8.12 v0.8.13 v0.8.14 v0.8.15 v0.8.16 v0.8.17 v0.8.18 v0.8.19 v0.8.20 v0.8.21 v0.8.22 v0.8.23 v0.8.24 v0.8.25 v0.8.26 v0.8.27 v0.8.28 v0.9.0 v0.9.1 v0.9.2 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9 v0.9.10 v0.9.11 v0.9.12 v0.10.0 v0.10.1 v0.10.2 v0.10.3 v0.10.4 v0.10.5 v0.10.6 v0.10.7 v0.10.8 v0.10.9 v0.10.10 v0.10.11 v0.10.12 v0.10.13 v0.10.14 v0.10.15 v0.10.16 v0.10.17 v0.10.18 v0.10.19 v0.10.20 v0.10.21 v0.10.22 v0.10.23 v0.10.24 v0.10.25 v0.10.26 v0.10.27 v0.10.28 v0.10.29 v0.10.30 v0.10.31 v0.10.32 v0.10.33 v0.10.34 v0.10.35 v0.10.36 v0.10.37 v0.10.38 v0.10.39 v0.10.40 v0.10.41 v0.10.42 v0.10.43 v0.10.44 v0.10.45 v0.10.46 v0.10.47 v0.10.48 v0.11.0 v0.11.1 v0.11.2 v0.11.3 v0.11.4 v0.11.5 v0.11.6 v0.11.7 v0.11.8 v0.11.9 v0.11.10 v0.11.11 v0.11.12 v0.11.13 v0.11.14 v0.11.15 v0.11.16 v0.12.0 v0.12.1 v0.12.2 v0.12.3 v0.12.4 v0.12.5 v0.12.6 v0.12.7 v0.12.8 v0.12.9 v0.12.10 v0.12.11 v0.12.12 v0.12.13 v0.12.14 v0.12.15 v0.12.16 v0.12.17 v0.12.18 iojs-v1.0.0 iojs-v1.0.1 iojs-v1.0.2 iojs-v1.0.3 iojs-v1.0.4 iojs-v1.1.0 iojs-v1.2.0 iojs-v1.3.0 iojs-v1.4.1 iojs-v1.4.2 iojs-v1.4.3 iojs-v1.5.0 iojs-v1.5.1 iojs-v1.6.0 iojs-v1.6.1 iojs-v1.6.2 iojs-v1.6.3 iojs-v1.6.4 iojs-v1.7.1 iojs-v1.8.1 iojs-v1.8.2 iojs-v1.8.3 iojs-v1.8.4 iojs-v2.0.0 iojs-v2.0.1 iojs-v2.0.2 iojs-v2.1.0 iojs-v2.2.0 iojs-v2.2.1 iojs-v2.3.0 iojs-v2.3.1 iojs-v2.3.2 iojs-v2.3.3 iojs-v2.3.4 iojs-v2.4.0 iojs-v2.5.0 iojs-v3.0.0 iojs-v3.1.0 iojs-v3.2.0 iojs-v3.3.0 iojs-v3.3.1 v4.0.0 v4.1.0 v4.1.1 v4.1.2 v4.2.0 (LTS: Argon) v4.2.1 (LTS: Argon) v4.2.2 (LTS: Argon) v4.2.3 (LTS: Argon) v4.2.4 (LTS: Argon) v4.2.5 (LTS: Argon) v4.2.6 (LTS: Argon) v4.3.0 (LTS: Argon) v4.3.1 (LTS: Argon) v4.3.2 (LTS: Argon) v4.4.0 (LTS: Argon) v4.4.1 (LTS: Argon) v4.4.2 (LTS: Argon) v4.4.3 (LTS: Argon) v4.4.4 (LTS: Argon) v4.4.5 (LTS: Argon) v4.4.6 (LTS: Argon) v4.4.7 (LTS: Argon) v4.5.0 (LTS: Argon) v4.6.0 (LTS: Argon) v4.6.1 (LTS: Argon) v4.6.2 (LTS: Argon) v4.7.0 (LTS: Argon) v4.7.1 (LTS: Argon) v4.7.2 (LTS: Argon) v4.7.3 (LTS: Argon) v4.8.0 (LTS: Argon) v4.8.1 (LTS: Argon) v4.8.2 (LTS: Argon) v4.8.3 (LTS: Argon) v4.8.4 (LTS: Argon) v4.8.5 (LTS: Argon) v4.8.6 (LTS: Argon) v4.8.7 (LTS: Argon) v4.9.0 (LTS: Argon) v4.9.1 (Latest LTS: Argon) v5.0.0 v5.1.0 v5.1.1 v5.2.0 v5.3.0 v5.4.0 v5.4.1 v5.5.0 v5.6.0 v5.7.0 v5.7.1 v5.8.0 v5.9.0 v5.9.1 v5.10.0 v5.10.1 v5.11.0 v5.11.1 v5.12.0 v6.0.0 v6.1.0 v6.2.0 v6.2.1 v6.2.2 v6.3.0 v6.3.1 v6.4.0 v6.5.0 v6.6.0 v6.7.0 v6.8.0 v6.8.1 v6.9.0 (LTS: Boron) v6.9.1 (LTS: Boron) v6.9.2 (LTS: Boron) v6.9.3 (LTS: Boron) v6.9.4 (LTS: Boron) v6.9.5 (LTS: Boron) v6.10.0 (LTS: Boron) v6.10.1 (LTS: Boron) v6.10.2 (LTS: Boron) v6.10.3 (LTS: Boron) v6.11.0 (LTS: Boron) v6.11.1 (LTS: Boron) v6.11.2 (LTS: Boron) v6.11.3 (LTS: Boron) v6.11.4 (LTS: Boron) v6.11.5 (LTS: Boron) v6.12.0 (LTS: Boron) v6.12.1 (LTS: Boron) v6.12.2 (LTS: Boron) v6.12.3 (LTS: Boron) v6.13.0 (LTS: Boron) v6.13.1 (LTS: Boron) v6.14.0 (LTS: Boron) v6.14.1 (LTS: Boron) v6.14.2 (LTS: Boron) v6.14.3 (LTS: Boron) v6.14.4 (LTS: Boron) v6.15.0 (LTS: Boron) v6.15.1 (LTS: Boron) v6.16.0 (LTS: Boron) v6.17.0 (LTS: Boron) v6.17.1 (Latest LTS: Boron) v7.0.0 v7.1.0 v7.2.0 v7.2.1 v7.3.0 v7.4.0 v7.5.0 v7.6.0 v7.7.0 v7.7.1 v7.7.2 v7.7.3 v7.7.4 v7.8.0 v7.9.0 v7.10.0 v7.10.1 v8.0.0 v8.1.0 v8.1.1 v8.1.2 v8.1.3 v8.1.4 v8.2.0 v8.2.1 v8.3.0 v8.4.0 v8.5.0 v8.6.0 v8.7.0 v8.8.0 v8.8.1 v8.9.0 (LTS: Carbon) v8.9.1 (LTS: Carbon) v8.9.2 (LTS: Carbon) v8.9.3 (LTS: Carbon) v8.9.4 (LTS: Carbon) v8.10.0 (LTS: Carbon) v8.11.0 (LTS: Carbon) v8.11.1 (LTS: Carbon) v8.11.2 (LTS: Carbon) v8.11.3 (LTS: Carbon) v8.11.4 (LTS: Carbon) v8.12.0 (LTS: Carbon) v8.13.0 (LTS: Carbon) v8.14.0 (LTS: Carbon) v8.14.1 (LTS: Carbon) v8.15.0 (LTS: Carbon) v8.15.1 (LTS: Carbon) v8.16.0 (LTS: Carbon) v8.16.1 (LTS: Carbon) v8.16.2 (LTS: Carbon) v8.17.0 (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 v9.2.1 v9.3.0 v9.4.0 v9.5.0 v9.6.0 v9.6.1 v9.7.0 v9.7.1 v9.8.0 v9.9.0 v9.10.0 v9.10.1 v9.11.0 v9.11.1 v9.11.2 v10.0.0 v10.1.0 v10.2.0 v10.2.1 v10.3.0 v10.4.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0 (LTS: Dubnium) v10.14.0 (LTS: Dubnium) v10.14.1 (LTS: Dubnium) v10.14.2 (LTS: Dubnium) v10.15.0 (LTS: Dubnium) v10.15.1 (LTS: Dubnium) v10.15.2 (LTS: Dubnium) v10.15.3 (LTS: Dubnium) v10.16.0 (LTS: Dubnium) v10.16.1 (LTS: Dubnium) v10.16.2 (LTS: Dubnium) v10.16.3 (LTS: Dubnium) v10.17.0 (LTS: Dubnium) v10.18.0 (LTS: Dubnium) v10.18.1 (LTS: Dubnium) v10.19.0 (LTS: Dubnium) v10.20.0 (LTS: Dubnium) v10.20.1 (Latest LTS: Dubnium) v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0 v11.8.0 v11.9.0 v11.10.0 v11.10.1 v11.11.0 v11.12.0 v11.13.0 v11.14.0 v11.15.0 v12.0.0 v12.1.0 v12.2.0 v12.3.0 v12.3.1 v12.4.0 v12.5.0 v12.6.0 v12.7.0 v12.8.0 v12.8.1 v12.9.0 v12.9.1 v12.10.0 v12.11.0 v12.11.1 v12.12.0 v12.13.0 (LTS: Erbium) v12.13.1 (LTS: Erbium) v12.14.0 (LTS: Erbium) v12.14.1 (LTS: Erbium) v12.15.0 (LTS: Erbium) v12.16.0 (LTS: Erbium) v12.16.1 (LTS: Erbium) v12.16.2 (LTS: Erbium) v12.16.3 (Latest LTS: Erbium) v13.0.0 v13.0.1 v13.1.0 v13.2.0 v13.3.0 v13.4.0 v13.5.0 v13.6.0 v13.7.0 v13.8.0 v13.9.0 v13.10.0 v13.10.1 v13.11.0 v13.12.0 v13.13.0 v13.14.0 v14.0.0 v14.1.0 v14.2.0
To install, enter the version number of the desired version, e.g. v12.16.3:
nvm install v12.16.3
root@kvmde67-19464:~# nvm install v12.16.3 Downloading and installing node v12.16.3... Downloading https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz... ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v12.16.3 (npm v6.14.4) Creating default alias: default -> v12.16.3
Usually nvm will automatically switch to a newer version. To switch the version, type the command:
nvm use v12.16.3
To view the version, type:
node -v
root@kvmde67-19464:~# node -v v12.16.3
If you have installed multiple versions of Node.js, you can view a list of them:
nvm ls
root@kvmde67-19464:~# nvm ls -> v10.20.1 v12.16.3 system default -> v12.16.3 node -> stable (-> v12.16.3) (default) stable -> 12.16 (-> v12.16.3) (default) iojs -> N/A (default) unstable -> N/A (default) lts/* -> lts/erbium (-> v12.16.3) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.20.1 lts/erbium -> v12.16.3
To select the default version of Node.js, use:
nvm alias default 10.20.1
root@kvmde67-19464:~# nvm alias default 10.20.1 default -> 10.20.1 (-> v10.20.1)
This version will now be used when starting the terminal.
You can also refer to it by an alternate name, e.g:
nvm use default
Each version of Node.js will track its packages and manage them using npm.
To install packages in the **./node_modules** directory using npm, type the command:
npm install express
In case you want to perform a global installation of a module and make it available for other projects with the same version of Node.js, you can add the **-g** option:
npm install -g express
Globally installed packages can be invoked from the command line, but you must include the package in the local application environment to do so:
npm link express
root@kvmde67-19464:~# npm link express /root/node_modules/express -> /root/.nvm/versions/node/v10.20.1/lib/node_modules/express
------------------------
You can also use our **One-Click-Apps** to install Node.js with a single click
To do this, select the required [VPS] plan(https://fornex.com/ssd-vps) and select **Apps → Node.JS version 10 or 12**, to install.
Please note that Node.js will be installed on Ubuntu 18.04.
![file](/media/article/img/Снимок_экрана_2020-05-12_в_17.12.04.png)
------------------------
If you have difficulty setting up or have additional questions, you can always contact our support team via [ticket system](https://fornex.com/my/tickets/).