Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NPM install giving error installing express

When I give command npm install express it throws following error. On ubuntu machine

gaurav@gaurav-Mini-Monster:~/TestScripts$ sudo npm install -g express
npm ERR! error installing [email protected] Error: Unsupported
npm ERR! error installing [email protected]     at checkEngine (/usr/local/lib/node_modules/npm/lib/install.js:493:14)
npm ERR! error installing [email protected]     at Array.0 (/usr/local/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js:15:8)
npm ERR! error installing [email protected]     at LOOP (/usr/local/lib/node_modules/npm/node_modules/slide/lib/chain.js:15:13)
npm ERR! error installing [email protected]     at chain (/usr/local/lib/node_modules/npm/node_modules/slide/lib/chain.js:20:4)
npm ERR! error installing [email protected]     at installOne_ (/usr/local/lib/node_modules/npm/lib/install.js:470:3)
npm ERR! error installing [email protected]     at installOne (/usr/local/lib/node_modules/npm/lib/install.js:411:3)
npm ERR! error installing [email protected]     at /usr/local/lib/node_modules/npm/lib/install.js:347:9
npm ERR! error installing [email protected]     at /usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:54:35
npm ERR! error installing [email protected]     at Array.forEach (native)
npm ERR! error installing [email protected]     at /usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:54:11
npm ERR! error rolling back [email protected] Error: UNKNOWN, Unknown error '/usr/local/lib/node_modules/express'
npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: [email protected]
npm ERR! Required: {"node":">= 0.8.0"}
npm ERR! Actual:   {"npm":"1.0.106","node":"0.5.11-pre"}
npm ERR! 
npm ERR! System Linux 3.2.0-48-generic-pae
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "express"
npm ERR! cwd /home/gaurav/TestScripts
npm ERR! node -v v0.5.11-pre
npm ERR! npm -v 1.0.106
npm ERR! code ENOTSUP
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/gaurav/TestScripts/npm-debug.log
npm not ok

I also tried

sudo npm install express
npm install -g express
sudo npm install -g express

Nothing works.

like image 250
Gaurav Avatar asked Nov 28 '22 21:11

Gaurav


2 Answers

Node is so easy to install manually. I like doing it this way too because it's really easy to switch versions.

This is also great because you don't need to add some external package repository to apt, and you don't have to wait for those repositories to update when node releases a new version. You can get updates as soon as they're released.

# make a `~/.nodes/ folder
mkdir -p ~/.nodes && cd ~/.nodes

# download the binaries from nodejs.org
# in this case, here's the linux version
curl -O http://nodejs.org/dist/v0.10.12/node-v0.10.12-linux-x64.tar.gz

# extract
tar -xzf node-v0.10.12-linux-x64.tar.gz

# rename folder to 0.10.12
mv node-v0.10.12-linux-x64 0.10.12

# create a `current` symlink
ln -s 0.10.12 current

# prepend ~/.nodes/bin to your path
# you'll want to save this in ~/.bashrc or ~/.zshrc or something
export PATH="~/.nodes/current/bin:$PATH"

# cleanup
rm ~/.nodes/node-v0.10.12-linux-x64.tar.gz

The best part about this is you can repeat the pattern for any other version of node, change the current symlink at any time to switch which version you're running, and you're good to go

% node --version
v0.10.12

% npm --version
1.2.32

# switch versions to (e.g.) 0.10.5
% cd ~/.nodes && rm current && ln -s 0.10.5 current

% node --version
v0.10.5

% npm --version
1.2.18

Additional pointers when writing executable scripts

Make an executable file

% touch ~/somefile && chmod +x ~/someifle && nano ~/somefile

File contents

#!/usr/bin/env node
console.log(process.version);

Run it

% ./somefile
v0.10.12
like image 108
Mulan Avatar answered Nov 30 '22 09:11

Mulan


You are running a much-too-old version of node and npm. You have node v0.5 which is very out of date. Upgrade to node v0.10 and things will work.

Modern node.js versions for Ubuntu are available via this PPA from Chris Lea

To install:

sudo apt-get install python-software-properties
sudo add-apt-repository --yes ppa:chris-lea/node.js
sudo apt-get install nodejs

UPDATE

It looks like your old version of node is installed at /usr/local/bin/node. The new version from the Chris Lea PPA will be at /usr/bin/node. So to verify all is well, do:

/usr/bin/npm --version #Should be approx 1.2
/usr/bin/node --version #should be approx v0.10
/usr/bin/npm install -g express

You should uninstall the local node, or fix your PATH:

export PATH=/usr/bin:$PATH
like image 30
Peter Lyons Avatar answered Nov 30 '22 09:11

Peter Lyons