在 CentOS 5 上安装 node.js
Posted
技术标签:
【中文标题】在 CentOS 5 上安装 node.js【英文标题】:Installing node.js on CentOS 5 【发布时间】: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。如前所述,我远非真正熟悉它......
【参考方案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 环境变量允许 make install 找到正确的 python 版本
(在安装成功之前,我仍然需要一一识别并安装缺少的开发模块)
【讨论】:
这个建议和the install script linked here 是纯金;安装了 py 2.7,然后安装了 node.js!万岁!【参考方案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 ""
...到这个:
""
【讨论】:
以上是关于在 CentOS 5 上安装 node.js的主要内容,如果未能解决你的问题,请参考以下文章