在 ubuntu 上安装 node-gyp 时出错
Posted
技术标签:
【中文标题】在 ubuntu 上安装 node-gyp 时出错【英文标题】:Error installing node-gyp on ubuntu 【发布时间】:2014-02-05 00:20:10 【问题描述】: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
我没有直接依赖weak 或node-gyp,但我猜我的其他依赖项(express、phantom、ejs、aws-sdk、moment)需要它。有人遇到过这样的问题并且能够解决吗?
【问题讨论】:
【参考方案1】:如果错误是由于“致命错误:dns_sd.h: No such file or directory
32 | #include
" sudo apt-get install libavahi-compat-libdnssd-dev " ,否则如果是由于python2 跟随 @Manish Jangir 方法
【讨论】:
【参考方案2】:在我的情况下,它在 Linux-mint 19.2 上失败了,由于某些原因,运行时 gcc++ 无法访问。 因此,通过安装 build-essentials 错误得到了解决。 PS:
build-essential 软件包是编译 Debian 软件包所需的所有软件包的参考。它通常包括 GCC/g++ 编译器和库以及一些其他实用程序。可以在build-essentials上找到有关构建必需包列表的信息
【讨论】:
【参考方案3】:在 Ubuntu 18 上,我必须安装所需的构建库才能使其正常工作
sudo apt-get install build-essential
【讨论】:
在全新的 Ubuntu 20 安装中,我必须先运行sudo apt update
,然后再安装 build-essential
。【参考方案4】:
以下是在 Ubuntu 系统上成功安装 node-gyp 的步骤:
1.首先,在Ubuntu中安装“make”构建工具,命令如下:
sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y;
2。然后您需要安装适当的 C/C++ 编译器工具链。我们将在这里使用以下命令安装 GCC:
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。安装 python 2.7 版本。 (注意:node-gyp 不支持 Python 3)。
sudo apt update
sudo apt upgrade
sudo apt install python2.7 python-pip
4。最后安装,node-gyp npm 包:
npm install -g node-gyp
附加但不重要:如果您有任何与 node-gyp 相关的原子键盘布局问题,请再安装以下一个包:
sudo apt-get install libxkbfile-dev
就是这样!现在应该可以正常工作了。
【讨论】:
【参考方案5】:我已经安装了build-essential
。我只需要跑:
sudo apt install python
【讨论】:
【参考方案6】:我在尝试安装 wikimedia 扩展程序 mathoid 时在 Ubuntu 16.04 上遇到了这个问题。
我尝试了所有建议的方法,但在我这样做之前没有任何效果:
sudo apt-get install librsvg2-2 librsvg2-dev
【讨论】:
【参考方案7】:FWIW,我在尝试在 Ubuntu 14.04 (DigitalOcean) 上安装 Protractor 时遇到了类似的问题。重新安装 node-gyp 修复了它:
apt-get install node-gyp
【讨论】:
【参考方案8】:在 Fedora 20 上,重新安装 gyp 为我解决了这个问题。
sudo yum reinstall gyp
【讨论】:
【参考方案9】:在 Ubuntu 10.04 上,安装 libicu 解决了我的问题。
sudo apt-get install libicu-dev
【讨论】:
【参考方案10】:这个命令sudo apt-get install build-essential
对我有帮助。
【讨论】:
在 ubuntu 18.04 中没有 build-essentials 但在早期版本的 ubuntu 中没有这个问题,感谢您的支持【参考方案11】:如果您的 python 版本不是错误的来源,请检查您是否安装了“gyp”。这与 node-gyp 中的 gyp 版本冲突。
apt-get remove gyp
https://github.com/TooTallNate/node-gyp/issues/363#issuecomment-32234646
【讨论】:
应该是一个可接受的答案。降级到 2.6 并使用 PPA 是最后的手段。 我在运行npm install
时遇到此错误。 gip
包是 npm
的依赖项,因此删除它并不能解决我的问题,因为它也删除了 npm
...我在 Ubuntu 14.04 上。
对于那些有类似问题的人,这解决了我在 Ubuntu 上的以下错误。 “错误:没有这样的选项:--no-parallel”【参考方案12】:
这是有效的。安装过程中需要python 2.6。
#!/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
【讨论】:
sudo update-alternatives --config python
到底是什么?它从 2.6 => 2.7 => 2.6 => 2.7 ... 切换?以及如何知道我们当前使用的是哪个 python?
您可以使用 which $(readlink -f `which python`)
评估每个命令行工具的版本
你可以通过命令python --version
了解当前使用的python版本以上是关于在 ubuntu 上安装 node-gyp 时出错的主要内容,如果未能解决你的问题,请参考以下文章
在 ubuntu 12.04 上安装 phpmyadmin 时出错