简体   繁体   中英

Error installing node-gyp on ubuntu

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

> weak@0.2.2 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! weak@0.2.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the weak@0.2.2 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" "weak@0.2.2"
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?

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

这个命令sudo apt-get install build-essential对我有帮助。

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

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

在 Ubuntu 18 上,我必须安装所需的构建库才能使其正常工作

sudo apt-get install build-essential

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.

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

在 Ubuntu 10.04 上,安装 libicu 解决了我的问题。

sudo apt-get install libicu-dev

在 Fedora 20 上,重新安装 gyp 为我解决了这个问题。

sudo yum reinstall gyp

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

sudo apt install python

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

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

软呢帽银蓝

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM