【问题标题】:Python error while installing NodeJS on OpenSuse 12.3在 OpenSuse 12.3 上安装 NodeJS 时出现 Python 错误
【发布时间】:2013-07-01 19:33:25
【问题描述】:

我正在尝试从源代码在 OpenSuse 12.3 上安装 NodeJS。我需要它才能让 Etherpad-Lite 正常工作。 Node.JS 版本 0.8.0 当尝试通过 ./configure 然后 make 然后 make install 安装时,我收到以下错误代码:

{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'host_arch': 'ia32',
'node_install_npm': 'true',
'node_install_waf': 'true',
'node_prefix': '',
'node_shared_openssl': 'false',
'node_shared_v8': 'false',
'node_shared_zlib': 'false',
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_openssl': 'true',
'strict_aliasing': 'true',
'target_arch': 'ia32',
'v8_use_snapshot': 'true'}}
creating ./home/etherpad/node-v0.8.0/config.gypi
creating ./home/etherpad/node-v0.8.0/config.mk
Traceback (most recent call last):
File "./home/etherpad/node-v0.8.0/configure", line 401, in 
subprocess.call(['tools/gyp_node', '-f', 'make'])
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

如果我使用的是最新版本的 NodeJS,我会收到另一个错误:

/usr/bin/python: can't open file 'tools/gyp_node': [Errno 2] No such file or directory
{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'clang': 0,
'gcc_version': 47,
'host_arch': 'ia32',
'node_install_npm': 'true',
'node_prefix': '',
'node_shared_cares': 'false',
'node_shared_http_parser': 'false',
'node_shared_libuv': 'false',
'node_shared_openssl': 'false',
'node_shared_v8': 'false',
'node_shared_zlib': 'false',
'node_tag': '',
'node_unsafe_optimizations': 0,
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_openssl': 'true',
'node_use_perfctr': 'false',
'node_use_systemtap': 'false',
'python': '/usr/bin/python',
'target_arch': 'ia32',
'v8_enable_gdbjit': 0,
'v8_no_strict_aliasing': 1,
'v8_use_snapshot': 'true'}}
creating ./home/etherpad/node-v0.10.12/config.gypi
creating ./home/etherpad/node-v0.10.12/config.mk
make: Nothing to be done for `/home/etherpad/node-v0.10.12'.
make: *** No rule to make target `install'. Stop.

希望你能帮助我。在此先感谢 ;)

【问题讨论】:

  • 是否有不使用 opensuse 包管理器的具体原因? build.opensuse.org/package/…
  • 我尝试从包管理器安装它,它可以工作,但是 etherpad 有很多 npm 错误,所以我认为从源代码安装所有东西是最简单的。
  • 我在这里暗中拍摄,但也许你忘记了sudo make install?如果这是问题所在,我预计会出现与权限被拒绝相关的错误,但我想这是可能的。
  • 我正在使用 sudo make install 如果这是您的问题,我会以 root 身份运行每条评论。
  • 你为什么要从源代码安装 nodejs?我已经从存储库安装了它,完全没有问题..

标签: node.js npm opensuse etherpad


【解决方案1】:

(1) 你的帖子是 2013 年 7 月 1 日发布的,当时 nodejs 最新的稳定版本是 v0.10.12,于 2013 年 6 月 19 日推出。截至今天,2014 年 3 月 13 日,最新的稳定源代码版本node js v0.10.26 截止到今天,你的nodejs源码版本肯定不是最新的。

(2)在我下载的nodejs tarball解压出来的nodejs目录下,有一级tools目录

[root@new-host node-v0.10.26]# pwd
/usr/src/node-v0.10.26
[root@new-host node-v0.10.26]# ls -F
AUTHORS      ChangeLog    config.mk        deps/  LICENSE   node.gyp   src/    vcbuild.bat
benchmark/   common.gypi  configure*       doc/   Makefile  out/       test/
BSDmakefile  config.gypi  CONTRIBUTING.md  lib/   node@     README.md  tools/

在那个tools/目录中,应该有一个名为*gyp_node*的文件

[root@new-host node-v0.10.26]# ls tools/gyp_*
tools/gyp_node.py

您在上面的 node-v0.10.26 列表中看到该文件 tools/gyp-node.py 吗?好的。这就是 Makefile 所指的“tools/gyp_node”你有一条错误消息从第一行就跳到你身上:

/usr/bin/python: can't open file 'tools/gyp_node': [Errno 2] No such file or directory

而且那个错误信息的含义是不言而喻的。

让我们总结一下:截至今天,2014 年 3 月 13 日,您没有使用最新版本的 nodejs,并且您使用的 nodejs 版本缺少文件 *tools/gyp_node.py* 您的问题很奇怪,因为v0.10.12 应该是 nodejs 的稳定版本,这意味着文件 *gyp_node.py* 应该已经存在于您的 tools/ 目录中。

【讨论】:

  • 我构建 v0.10.27 ,当我将构建与另一个源树目录分开时,这仍然发生在构建树中,而直接在源树下构建是可以的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 2015-08-10
相关资源
最近更新 更多