How to Install Node.js from Linux Terminal

In this article, I will show you how to install latest Nodejs on Ubuntu 18.04, CentOS 7 and Arch Linux from the terminal. Node.js is an open-source, free, cross-platform JavaScript run-time environment which is responsible for executing JavaScript code on server. It allows developers to use JavaScript for server-side scripting - running scripts server-side to produce dynamic web page content before the page is sent to the user's web browser. Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying web application development around a single programming language, rather than different languages for server side and client side scripts.

There are several ways to install Node.js on Linux machine and we are going to cover them in this article.

  • Install using Node Version Manager (NVM)
  • Install using the Github source code clone
  • Install the Distro-Stable version of Node.js

Install using Node Version Manager (NVM)

NVM doesn't work at the operating system level, instead it works at the level of a directory within your user's home directory. It allows installing multiple, self-contained versions of Node.js without affecting the entire system.

Ubuntu 18.04

Before installing NVM we update OS with the following command

sudo apt-get update

To use nvm, we must have curl, build-essentials libssl-dev packages installed on the system. To install them type

sudo apt-get install build-essential libssl-dev

Once all prerequisites are available we install nvm with the following command

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

The script above clones the nvm repository to ~/.nvm and also adds the source line to your profile (~/.bash_profile, ~/.profile or ~/.bashrc). That means we need to source the profile file. To do so, type the following command

source ~/.profile

Now nvm functionalities and binaries are available for use and we can get list of available Node.js versions via the following command

nvm ls-remote

Tail of output must look like the one below:

...

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
 v10.0.0

Choose the version you want to install and type the command below to install it.

nvm install v9.10.1

After installing the desired version we can set that version as default Node.js version (in case you have multiple installations)

nvm use v9.10.1

To check if version is installed and set to default successfully, just check Node.js version with the command below

node -v

or

nvm current

Output of this command must show the installed version.

To update/install another version you can run:

nvm install v10.0.0

Make sure to run the command with the version you want to install. After you can set the freshly installed version as your default with the following command:

nvm use v10.0.0

To remove node.js version via nvm, first check if it's not the current version with the command below

nvm current

and run the following command to remove desired version:

nvm remove v9.10.1

CentOS 7

Process of installation of nvm and node.js using nvm is the same as on Ubuntu 18.04 with few differences. Below you can find commands running which in the same order will install nvm, node.js and set the default version.

Update OS

sudo yum update

Install nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Source profile file (note that in CentOS it differs from the one in Ubuntu)

source ~/.bashrc

List available node.js versions

nvm ls-remote

Install the desired version (make sure to change with the version you want to install)

nvm install v9.10.1

Set as default node.js version

nvm use v9.10.1

Check if installation and default setting are succeeded

node -v

or

nvm current

To update/install another version you can run:

nvm install v10.0.0

Make sure to run the command with the version you want to install. After you can set the freshly installed version as your default with the following command:

nvm use v10.0.0

To remove node.js version via nvm, first check if it's not the current version with the command below

nvm current

and run the following command to remove desired version:

nvm remove v9.10.1

Install using the Github source code clone

To install Node.js using release from official Github repository we need to check make sure the make, gcc, g++ and python packages are installed on Ubuntu 18.04 machine. If there are missing packages, you can run:

sudo apt-get install make gcc g++ python

On CentOS 7 all needed packages are preinstalled in OS. You can run OS update command to make sure they are latest versions:

sudo yum update

The rest part of installation using GitHub repository's official release is the same for both distributions.

Download the desired release (e.g. v6.2.1) from Github Repo using the following command:

 wget https://github.com/nodejs/node/archive/v6.2.1.tar.gz

Extract the content of the archive using the command below

tar zxvf v6.2.1.tar.gz

Enter the directory with extracted files

cd cd node-6.2.1

and run the following command to compile

./configure

After compilation you can now install node.js using the following command:

sudo make install

The process of installation can take little bit longer this way. It depends on resources of your machine.

Install the Distro-Stable version of Node.js

In default repositories of Linux distributions, there are versions of Node.js and you can install them using any package manager of the distribution (apt for Ubuntu, yum for CentOS and etc...). The main issue with this type of installation is that the versions available in official repositories may be outdated. For example, at the moment of writing this article the latest version of Node.js in Ubuntu's repositories is v8.10.0, and in CentOS epel-release repo the latest available version is v6.14.0. But using nvm we can install v10.0.0 at the same time. However, below you can find steps to install latest available stable version of Node.js for each distro.

Ubuntu 18.04

Before installing Node.js on your Ubuntu 18.04 machine, update you OS to the latest version. To do so, you can run:

sudo apt-get update

Now you can install Node.js using the following command:

sudo apt-get install nodejs

Also you can install npm (Node.js package manager) to install modules and packages. To install npm, run the command below:

sudo apt-get install npm

After installation, you can check the version of Node.js (note that the executable from the Ubuntu repositories is called nodejs instead of node)

nodejs -v

To update Node.js on Ubuntu 18.04 machine either update OS with the command:

sudo apt-get update

or run install command. It will update the existing version if there are updates:

sudo apt-get install nodejs

To remove Node.js from your Ubuntu 18.04 machine run the following command:

sudo apt-get remove nodejs

CentOS 7

To install Node.js on CentOS 7 machine using official repositories follow the steps below.

First, install epel-release repository on your machine using the following command:

sudo yum install epel-release

This will allow you to install Node.js. To do so, you can run:

sudo yum install nodejs

Check the installed version with the command below:

node --version

And finally you can install npm (Node.js package manager) using the following command:

sudo yum install npm

To update Node.js on CentOS 7 machine either update OS with the command:

sudo yum update

or run install command. It will update the existing version if there are updates:

sudo yum install nodejs

To remove Node.js from your CentOS7 machine run the following command:

sudo yum remove nodejs

Arch Linux

To install Node.js on Arch Linux, use the following command:

sudo pacman -S nodejs

To install npm, you can run:

sudo pacman -S npm

To remove Node.js from Arch Linux typ:

sudo pacman -R nodejs

Check if Node.js is working using script

To check if our installation (doesn't matter which way) is successful and node.js is working properly, we are going to create very simple "Hello World" app and check if everything works fine. To do so, we create hello-world.js in our home directory file using the command below:

vim hello-world.js

and add the following content into it and save the file:

a="Hello";
b="World!";
console.log( a+' '+b);

Now we run the app with the following command

node hello-world.js

The output must be the one shown below

Hello World!

That means that node.js is installed correctly and working properly. You can now go ahead and create your incredible apps using node.js.

Testing With Node.JS Shell

Let's start with the node command as follow and get its output result to see if Node.JS is fully functional.

# node
> console.log('Node.js Installed Using Package Manager');
Node.js Installed Using Package Manager

REPL For Your NodeJS Apps

REPL is the Node.js shell, any valid Javascript which can be written in a script can be passed to the REPL. So let's see how REPL works with NodeJS.

[email protected]:~# node
> var repl = require("repl");
undefined
> repl.start("> ");

Press Enter and it will show out put like this:
> { domain: null,
_events: {},
_maxListeners: 10,
useGlobal: false,
ignoreUndefined: false,
eval: [Function],
inputStream:
{ _connecting: false,
_handle:
{ fd: 0,
writeQueueSize: 0,
owner: [Circular],
onread: [Function: onread],
reading: true },
_readableState:
{ highWaterMark: 0,
buffer: [],
length: 0,
pipes: null,
...
...

Here is the list of command line help that we can use to work with REPL.

REPL Manual

Working with NodeJS Packet Manager

NPM is simple CLI tool for ensuring that a given node script runs continuously. It helps to Install and manage dependencies through the file package.json. We will start its using init command as.

# npm init

npm init
Read also :

If you want to use exact version of Node.js the better way is to install using nvm or cloning from Github official repository. If there is no matter which version to use one can install using distro's default package manager, as that way is much faster than the others.

Hayk Gevorgyan 12:05 am

About Hayk Gevorgyan

Technical Support Engineer experienced in Linux servers administration of production environments. Exploring DevOps culture and tools. Interested in containerization and open source monitoring tools.

Author Archive Page

Have anything to say?

Your email address will not be published. Required fields are marked *

All comments are subject to moderation.