【问题标题】:Installing node.js on CentOS 5在 CentOS 5 上安装 node.js
【发布时间】:2011-10-26 18:29:16
【问题描述】:

我对 CentOS (5) 和 node.js 还是很陌生,但我已经有一个旧版本的 node.js 可以在我的虚拟服务器上工作。 现在我正在尝试安装更新的版本,并且我知道 CentOS 需要 Python 2.4 而 node 需要 2.6 或更高版本,所以我使用 altinstall 安装了 Python 2.7。

但即使我在运行 ./configure 之前为 Python 设置了指向 2.7 版本的别名,我仍然会收到此错误:

/root/node/wscript: error: Traceback (most recent call last):
  File "/root/node/tools/wafadmin/Utils.py", line 274, in load_module
    exec(compile(code, file_path, 'exec'), module.__dict__)
  File "/root/node/wscript", line 222
    "-pre" if node_is_release == "0" else ""
        ^
SyntaxError: invalid syntax

这就是./configure的内容:

#! /bin/sh

# v8 doesn't like ccache
if [ ! -z "`echo $CC | grep ccache`" ]; then
  echo "Error: V8 doesn't like cache. Please set your CC env var to 'gcc'"
  echo "  (ba)sh: export CC=gcc"
  exit 1
fi

CUR_DIR=$PWD

#possible relative path
WORKINGDIR=`dirname $0`
cd "$WORKINGDIR"
#abs path
WORKINGDIR=`pwd`
cd "$CUR_DIR"

"${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*

exit $?"

在 wscript 的顶部有以下行:“#!/usr/bin/env python”。我也尝试用其他东西替换它,虽然我认为它应该在使用 Python 别名时工作

任何想法我需要做些什么才能让它工作?

谢谢!

【问题讨论】:

  • 看起来 ./configure 或者 wscript 仍在调用 Python2.4 而不是 Python2.7。你能告诉我们./configure 是如何调用wscript 的吗?
  • 为了确定问题的根源,您可以打开wscript并粘贴import sys,然后在顶部粘贴print sys.version,从而打印出Python的版本实际 用于执行。 (顺便说一句,正如您所发现的,CentOS/RHEL 5 实际上已经很老了;迁移到 6 可以为您省去很多麻烦。)
  • 谢谢,尼古拉斯。不确定是否要更新 CentOS。如前所述,我远非真正熟悉它......

标签: python node.js centos


【解决方案1】:

我在 Centos 5.x 上安装了 python 2.7.3 'altinstall',二进制文件名为“/usr/local/bin/python2.7”

我使用以下代码编译和安装 nodejs v0.8.16:

PYTHON=/usr/local/bin/python2.7
export PYTHON
python2.7 configure && make && make install
  • 使用 python2.7 运行 configure 会覆盖默认的 python 处理
  • 创建 PYTHON 环境变量允许 ma​​ke install 找到正确的 python 版本

(在安装成功之前,我仍然需要一一识别并安装缺少的开发模块)

【讨论】:

【解决方案2】:

我更改了 bash_profile 中的 PATH 以包含所需 python 版本的路径,如下所示:

vi ~/.bash_profile
替换 PATH=$PATH:$HOME/bin
使用 PATH=/usr/local/python272/bin:$PATH:$HOME/bin
来源 ~/.bash_profile
./配置
制作

它会选择正确的 python 版本。无需更改 wscript

我在 CentOS 5.6、python 2.7.2(安装在 /usr/local/python272 中)并使用 node.js 0.4.12

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。我最终编辑了 wscript 文件并从此更改了该行 (222):

    "-pre" if node_is_release == "0" else ""
    

    ...到这个:

    ""
    

    【讨论】:

      猜你喜欢
      • 2015-04-13
      • 2016-05-03
      • 2014-04-12
      • 1970-01-01
      • 2017-03-26
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      相关资源
      最近更新 更多