How To Install NodeJS On Linux
Today In this quick guide, we will see introduction to NodeJS and how to different ways to install Nodejs on Linux distributions including Arch Linux, Debian, Ubuntu, RHEL, CentOS, Fedora etc.
What is NodeJS?
NodeJS is an open source, cross-platform, and lightweight JavaScript run-time environment that can be used to build scalable network applications. It is fast and efficient server-side software built on Chrome’s V8 JavaScript engine. Initially, JavaScript was primarily used for client-side scripting. But, Nodejs enables JavaScript to be used for server-side scripting, and runs scripts server-side to produce dynamic web pages. Another notable thing is Nodejs has a command-line utility called npm, a package manager to install, manage nodejs libraries and applications. Nodejs package ecosystem is the largest ecosystem of open source libraries in the world.
Install NodeJS on Linux
There are quite a few ways to install Nodejs in Linux. Here I have listed 3 methods.
The first method is the officially recommended way to install Nodejs. Especially, the first method is the best way to avoid permission issues while installing packages globally
The second method is for those who wants to use the stable NodeJS version.
And, the third and final method describes how to install Nodejs from source. This is suitable for those who wants to get hands on latest nodejs version.
1. Install Nodejs on Linux using NVM (Recommended method)
This is the recommended way to install Nodejs. Furthermore, it is the best way to avoid permissions issues. NVM (Node Version Manager) is a bash script used to manage multiple Node.js versions. It allows us to install, uninstall node.js, and switch from one version to another. Good thing is we can install to any available Node.js version of our choice, using NVM.
To install nvm, use the latest install script from here.
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
Or,
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
The above command will clone the nvm repository to ~/.nvm and add the source line to your profile (~/.bash_profile, ~/.zshrc, ~/.profile, or ~/.bashrc).
Sample output:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 14926 100 14926 0 0 35120 0 --:--:-- --:--:-- --:--:-- 35202 => Downloading nvm from git to '/home/ostechnix/.nvm' => Cloning into '/home/ostechnix/.nvm'... remote: Enumerating objects: 345, done. remote: Counting objects: 100% (345/345), done. remote: Compressing objects: 100% (293/293), done. remote: Total 345 (delta 39), reused 161 (delta 27), pack-reused 0 Receiving objects: 100% (345/345), 202.04 KiB | 834.00 KiB/s, done. Resolving deltas: 100% (39/39), done. * (HEAD detached at FETCH_HEAD) master => Compressing and cleaning up git repository => Appending nvm source string to /home/ostechnix/.bashrc => Appending bash_completion source string to /home/ostechnix/.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
Restart your Terminal once before start using NVM. If you are on SSH, exit from the current session and log in again.
To verify whether NVM is installed or not, run:
$ command -v nvm
Sample output:
nvm
It should output ‘nvm’ if the installation was successful.
Now, we can install Nodejs and npm.
First, run the following command to view the list of available Nodejs versions:
$ nvm ls-remote
Sample output:
[...] v14.16.1 (Latest LTS: Fermium) v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 v15.4.0 v15.5.0 v15.5.1 v15.6.0 v15.7.0 v15.8.0 v15.9.0 v15.10.0 v15.11.0 v15.12.0 v15.13.0 v15.14.0 v16.0.0 v16.1.0
To install/update to the most recent Nodejs version in Linux, just run:
$ nvm install node
Sample output:
Downloading and installing node v16.1.0... Downloading https://nodejs.org/dist/v16.1.0/node-v16.1.0-linux-x64.tar.xz... ################################################################################################################################################################# 100.0% Computing checksum with sha256sum Checksums matched! Now using node v16.1.0 (npm v7.11.2) Creating default alias: default -> node (-> v16.1.0)
As of writing/updating this guide, the latest version was 16.1.0.
1.1. Install specific Node version
You can also install any specific version of your choice, for example v9.3.0, like below.
$ nvm install v9.3.0
Sample output:
Downloading and installing node v9.3.0... Downloading https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz... ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v9.3.0 (npm v5.6.0) Creating default alias: default -> v9.3.0
Similarly, you can install any number of versions you want.
1.2. List installed Node version
To view the list of installed Nodejs versions, run:
$ nvm list
Sample output:
-> v16.1.0 default -> node (-> v16.1.0) iojs -> N/A (default) unstable -> N/A (default) node -> stable (-> v16.1.0) (default) stable -> 16.1 (-> v16.1.0) (default) lts/* -> lts/fermium (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.24.1 (-> N/A) lts/erbium -> v12.22.1 (-> N/A) lts/fermium -> v14.16.1 (-> N/A)
The arrow mark in the above output shows the default node version. As you see in the above output, I have installed 15.0.1.
1.3. Check installed Node version
To view the currently installed and default Nodejs version, run:
$ node --version
Or,
$ node -v
Sample output:
v16.1.0
Check npm version:
$ npm -v
Sample output:
7.11.2
1.4. Switch between different node versions
If you have installed more than one version, you can switch between different Nodejs versions as below.
$ nvm use node
Or you can just run it to be more specific:
$ nvm run node v9.3.0
1.5. Set default Node version
To set a particular Nodejs version as the default, run:
$ nvm alias default v9.3.0
Sample output would be:
default -> v9.3.0
1.6. Update npm
Once in a while, you can check and update npm to latest available version using the following command:
$ npm install -g npm@latest
1.7. Remove Node
Before removing Node, first make sure whether or not the version you are about to remove is the current active version using command:
$ nvm current
If it is not currently-active version, simply remove it using command:
$ nvm uninstall <node_version>
Example:
$ nvm uninstall v9.3.0
If you try to remove the currently active version using command:
$ nvm uninstall node
You will see an error something like below:
nvm: Cannot uninstall currently-active node version, v15.0.1 (inferred from node).
You must deactivate the nvm first using command:
$ nvm deactivate
And then try to uninstall node:
$ nvm uninstall node
Sample output:
Uninstalled node v15.0.1
2. Install Nodejs on Linux using your distribution’s package manager (Stable, but outdated versions)
Nodejs is available in the default repositories of most Linux distributions. It might not be latest version, but stable. If you want to have a stable Node.js on your Linux, you better install it using your distribution’s package manager as shown below.
On Arch Linux and its derivatives like Antergos, Manajaro Linux, run the following command to install it:
$ sudo pacman -S nodejs npm
On Debian, Ubuntu, Linux Mint:
$ sudo apt-get install nodejs npm
On RHEL, CentOS, you need to enable EPEL repository first.
$ sudo yum install epel-release
And, then install Nodejs using command:
$ sudo yum install nodejs npm
On Fedora:
$ sudo dnf install nodejs npm
Note: Since the packages from the default repositories are outdated, you will get the following error when you try to install any NodeJS modules using npm.
/usr/bin/env: ‘node’: No such file or directory
To solve this error, you need to create symlink as shown below.
$ sudo ln -s /usr/bin/nodejs /usr/bin/node
3. Install Nodejs on Linux from NodeSource
Like I already said, nodejs is available in the default repositories, but it might be bit outdated. To install the most recent version, install the latest version from NodeSource.
Add the latest Nodejs repository as shown here depending on the Linux distribution you use.
On Ubuntu and derivatives:
Add NodeJs 15.x repository:
$ curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash
Nodejs 14.x repository:
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
Nodejs 12.x:
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
Nodejs 10.x:
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
For Nodejs 8.x:
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
After adding the repository, install Node.js using command:
$ sudo apt-get install nodejs npm
On RHEL, CentOS:
Nodejs 15.x:
$ curl -sL https://rpm.nodesource.com/setup_15.x | sudo bash -
Nodejs 14.x:
$ curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
NodeJS 12.x
$ curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
NodeJS 10.x
$ curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
Then install Nodejs using command:
$ sudo yum install nodejs npm
For Fedora, follow the same instructions above.
Install build tools (Optional)
To compile and install native addons from npm repository, you may also need to install build tools.
To install build tools on Debian, Ubuntu distributions, run the following command:
$ sudo apt-get install -y build-essential
On RHEL based systems:
$ sudo yum groupinstall 'Development Tools'
On Fedora:
$ sudo dnf groupinstall 'Development Tools'
Suggested read:
How to Install Netbeans IDE on Ubuntu and other Linux
How to Install Mesa Drivers on Ubuntu 20.04 LTS
How to Build Linux Kernel From Scratch
And, that’s all. You know now how to install Nodejs on your Linux distribution. As you can see, installing Nodejs is fairly easy. Anyone can install and setup the Nodejs within a few minutes.
Resources:
Leave a Reply