24

I have having a bit of an issue with installing nodejs and npm on my linux server (which is a pi running raspbian). I had everything set up and running using

sudo apt-get install nodejs npm

All was fine and dandy, until I found out that apparently these versions are now old. So I removed them

sudo apt-get purge nodejs npm

Then I found the following answer (here) on SO and ran

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs

Running node -v have me version 0.6.19...which I'm assuming translates to version 6.19 as opposed to version 0. However, running npm -v told me that it was not installed. So I once again purged nodejs, and looked for another solution. At which point I decided to follow the stuff on nodejs's site (here). And I ran the following commands.

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

and

sudo apt-get install -y build-essential

2 issues:

1) The version installed was still 0.6.19. I would rather have version 4.x, since that's what I'm running on my dev machine (macOS Sierra).

2) I still don't have npm. Which renders nodejs useless

Any help on either (but preferably 2) would be great. Thanks in advance.

MarkB
  • 1,783
  • 2
  • 17
  • 32

4 Answers4

48

I really recommend you install node and npm using nvm. This is the fastest, cleanest and easiest way to do it.

That way, you install NVM simply doing:

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

To test that nvm was properly installed, close and re-open Terminal and enter nvm. If you get a nvm: command not found message, your OS may not have the necessary .bash_profile file. In Terminal, enter touch ~/.bash_profile and run the above install script again.

And you are now able to install node typing:

nvm install <version>

For example

nvm install 4.2.1

if you just want to install the latest node version, you can just type

nvm install node

In order to access node and npm as sudo (in order to have <1024 ports) you should run

n=$(which node)
n=${n%/bin/node}
chmod -R 755 $n/bin/* 
sudo cp -r $n/{bin,lib,share} /usr/local 
Luis González
  • 3,199
  • 26
  • 43
  • 3
    Thanks @Luis González. I certainly owe you a beer. Why nvm isn't the first approach that pops up on google is beyond me. Super each and straightforward. – MarkB Oct 11 '16 at 16:23
  • 2
    I'd like to add, that in order to access node and npm as sudo (in order to have <1024 ports) i had to run " n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local " – MarkB Oct 11 '16 at 16:39
  • 2
    Thank you very much, Luis! Also, if you just want to install the latest node version, you can just type `nvm install node` instead of ``. – Pierre C Jan 03 '18 at 04:01
  • this is the best way doing it – Altaf Hussain May 10 '22 at 08:48
  • 1
    I should point out that the URL that this post recommends you pipe into `sh` is some random github user's code. It's not official NVM account. Here's the URL that NVM suggests you use: https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh – Brian Sep 01 '22 at 12:35
  • After I ran `nvm install` it said `No .nvmrc file found`. – ijt Sep 18 '22 at 06:23
  • I feel like this command is really dangerous: chmod -R 755 $n/bin/* – Nick Dec 04 '22 at 12:08
9

I wrote in the terminal the following command lines I hope it is useful for the community.

$ sudo apt install nodejs
$ curl -L https://npmjs.org/install.sh | sudo sh 

good luck!

3

Sometimes, installing a specific version of the node.js from the authorized source does not work properly. It will be better if will be installed after downloading the node package from the link(https://nodejs.org/en/) and following the steps....

  1. Unzip the compressed package using the following command:

tar --xf node-v16.13.1-linux-x64.tar.xz

  1. Make a directory inside /usr/local/:

sudo mkdir -p /usr/local/nodejs

  1. Move all unzip files to newly made dir:

sudo mv node-v16.13.1-linux-x64/* /usr/local/nodejs/ 4. Open .bashrc file using command prompt:

sudo nano ~/.bashrc

  1. Add the following command inside the .bashrc file at the end and close the file:

export PATH=$PATH:/usr/local/nodejs/bin

  1. Print the path for justification:

echo $PATH

  1. Verify the node version:

node --version

Md.Shakil Shaikh
  • 347
  • 4
  • 11
2

Below are the simple steps to proceed with the installation

  1. Open Terminal
  2. Run command to install nodejs : sudo apt install nodejs
  3. Run command to verify installation by checking version: node -v or node –version
  4. Run command to install npm: sudo apt install npm
  5. Run command to verify installation of npm: npm -v or npm –version

For reference: https://youtu.be/DGjfw4y0nTI