42
npm http 200 https://registry.npmjs.org/weak/-/weak-0.2.2.tgz
npm http GET https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/bindings

> [email protected] install node_modules/weak
> node-gyp rebuild

Traceback (most recent call last):
  File "/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py", line 18, in <module>
    sys.exit(gyp.script_main())
AttributeError: 'module' object has no attribute 'script_main'
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:337:16)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Linux 3.11.0-15-generic
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"

gyp ERR! node -v v0.10.15
gyp ERR! node-gyp -v v0.12.1
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the weak package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls weak
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.11.0-15-generic
npm ERR! command "node" "/usr/bin/npm" "install" "[email protected]"
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.3.23
npm ERR! code ELIFECYCLE

npm ERR! not ok code 0

I don't have a direct dependency on weak or node-gyp but I guess it is required by my other dependencies (express,phantom,ejs,aws-sdk,moment). Anyone faced such an issue and was able to fix?

14 Answers 14

36

This command sudo apt-get install build-essential helped in my case.

Sign up to request clarification or add additional context in comments.

4 Comments

in ubuntu 18.04 there are no build-essentials but in earlier editions of ubuntu did not have this problem thanks for your support
The command on Linux Mint 20.3 works fine!
This answer worked for me on ubuntu 20
the answer does not work on Ubuntu 22.04
35

If your python version isn't the source of error, check if you have "gyp" installed. This is conflicting with the gyp version in node-gyp.

apt-get remove gyp

https://github.com/TooTallNate/node-gyp/issues/363#issuecomment-32234646

3 Comments

Should be an accepted answer. Downgrading to 2.6 and using PPA is the last resort.
I'm having this error when running npm install. the gip package is a dependency of npm, so removing it doesn not solve the issue for me as it removes npm as well... I'm on Ubuntu 14.04.
For those with similar problems, this resolves the following error for me on Ubuntu. "error: no such option: --no-parallel"
24

This is what worked. You need python 2.6 during the installation.

#!/bin/bash
#On Ubuntu Saucy:
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.6
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.6 20
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 10

#you can switch between 2.6 & 2.7 using:
sudo update-alternatives --config python

#Btw I installed node using ppa:chris-lea/node.js

https://github.com/TooTallNate/node-gyp/issues/363

3 Comments

What does exactly sudo update-alternatives --config python ? it switch from 2.6 => 2.7 => 2.6 => 2.7 ... ? and how to know which python are we currently using ?
you can evaluate every command line tool to its version by using which $(readlink -f `which python`)
You can figure out the python version in use with the command python --version
21

FWIW, I had a similar problem trying to install Protractor on Ubuntu 14.04 (DigitalOcean). Reinstalling node-gyp fixed the it:

apt-get install node-gyp

1 Comment

worked for me on ubuntu 22, node 18
11

on Ubuntu 18, I had to install required build libs to get it working

sudo apt-get install build-essential

Update: April 2024. On Fresh Ubuntu you had to run

sudo apt update

Then

sudo apt-get install build-essential

1 Comment

On a fresh Ubuntu 20 installation I had to run sudo apt update before installing build-essential.
7

Here are the steps to install node-gyp successfully on a Ubuntu system:

1.First of all, install the "make" build tool in Ubuntu with the following commands:

sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y;

2. Then you need to install the a proper C/C++ compiler toolchain. We will be installing GCC here with the following commands:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install gcc-snapshot -y && \
sudo apt-get update && \
sudo apt-get install gcc-6 g++-6 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave 
/usr/bin/g++ g++ /usr/bin/g++-6 && \
sudo apt-get install gcc-4.8 g++-4.8 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave 
/usr/bin/g++ g++ /usr/bin/g++-4.8;

3. Install python 2.7 version. (Note: Python 3 is not supported by node-gyp).

sudo apt update
sudo apt upgrade
sudo apt install python2.7 python-pip

4. And finally install, node-gyp npm package:

npm install -g node-gyp

Additional but not important: If you have any atom keyboard-layout related issue with node-gyp then install the following one more package:

sudo apt-get install libxkbfile-dev

Thats all! It should be working fine now.

Comments

4

I faced this issue on Ubuntu 16.04 while trying to install the wikimedia extension mathoid.

I tried everything that was suggested and nothing worked until I did:

sudo apt-get install librsvg2-2 librsvg2-dev

Comments

2

On Ubuntu 10.04, Installing libicu solved my problem.

sudo apt-get install libicu-dev

Comments

1

On Fedora 20, reinstalling gyp fixed this for me.

sudo yum reinstall gyp

Comments

1

I already had build-essential installed. I just had to run:

sudo apt install python

Comments

0

In my-case it was failing on Linux-mint 19.2, for some reasons on run-time gcc++ was not accessible. So by installing the build-essentials error was resolved. PS:

build-essential package is a reference for all the packages needed to compile a Debian packages. It generally includes the GCC/g++ compilers and libraries and some other utilities. Informational for list of build-essential packages can be found on build-essentials

Comments

0

If the error is due to " fatal error: dns_sd.h: No such file or directory 32 | #include <dns_sd.h> ", solve it by

" sudo apt-get install libavahi-compat-libdnssd-dev " , else if it is due to python2 follow @Manish Jangir method

Comments

0

Fedora Silverblue

rpm-ostree install make automake gcc gcc-c++

Comments

-1

What you need is just to:

sudo apt-get update
sudo apt-get upgrade

You should install nvm and a new Node version.

3 Comments

Can you provide more details (complete set of commands) and make sure to format your answer properly?
This is not a possible solution to the error messages listed in this question. If you resolved a different error message using an update/upgrade, then you should post that as a separate question/answer pair instead. Thanks!
This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.