4

我正在尝试在我的 CentOS 5 服务器上安装 NodeJS

我安装了 Python 2.6,并且 ./configure 可以工作,但是当我运行make命令时,我得到了这个结果

[root@catch24dev node-v0.8.6]# make
make -C out BUILDTYPE=Release V=1

....

Traceback (most recent call last):
  File "../../tools/js2c.py", line 36, in <module>
    import bz2
ImportError: No module named bz2
make[1]: *** [/usr/local/src/node-v0.8.6/out/Release/obj/gen/libraries.cc] Error 1
make[1]: Leaving directory `/usr/local/src/node-v0.8.6/out'
make: *** [node] Error 2
[root@catch24dev node-v0.8.6]# which bzip2
/usr/local/bin/bzip2
4

2 回答 2

3

请注意,此问题的另一个解决方案(无法编译 node.js)是使用自 0.8.6 以来已发布的 Linux 二进制发行版

这是我使用的脚本:

# get the latest stable binary 
# (modify version number based on what you find in that folder)
wget http://nodejs.org/dist/latest/node-v0.8.20-linux-x64.tar.gz
cd /usr/local/
sudo tar xzvf ~/node-v0.8.20-linux-x64.tar.gz --strip=1
于 2013-02-18T20:07:32.353 回答
3

当我在 Centos 6.4 上运行make时,我也遇到了与 Marius Milliunas 相同的错误——那是在我从下载的 nodejs tarball 中提取的 nodejs 目录中运行./configure命令之后。就像马里乌斯·米利乌纳斯所做的那样。

问题的根源在于 nodejs 安装依赖于正在安装的 Python。具体来说,Centos 6.4 的默认 Python 安装不包括 bz2 模块,纠正措施当然是从安装 bz2 模块开始的。这是通过运行

yum install bzip2-devel

我也跑得很好

yum install bzip2 

Centos 6.4 的内置 Python 是 Python 2.6.6 但这对于安装最新版本的 nodejs 来说很好,在撰写本文时它是 node v0.10.26

运行 yum install bzip2-devel后,您可以返回并在 nodejs 目录中运行make ,这一次, make将运行完成。按照nodejs 目录中设置的说明运行make install来跟进。

您可以通过运行node并获得提示来测试您的 nodejs 安装。我选择通过创建基于 nodejs 的 Web 服务器进行测试,如http://code.tutsplus.com/tutorials/real-time-chat-with-nodejs-socketio-and-expressjs--net-31708中所述

我知道世界上一切都很酷,并且当我按照这个说明操作时,我已经在 Centos 6.4 上正确安装了 nodejs

The server is running, so you should be able to open http://127.0.0.1:3700/ and see:

It works!

并按预期得到了“它的工作原理”输出:)

重要的提示

如果您在 Centos 6.4 机器上另外安装 Python 2.7.6 和 Python 3.3.4,请按照此链接上的说明进行操作:https ://www.digitalocean.com/community/articles/how-to-set-up-python -2-7-6-and-3-3-3-on-centos-6-4

安装 Python 2.7.6 和 Python 3.3 完全是可选的。请注意,安装 Python 2.7.6 和 Python 3.3.4 的最后一步是

make altinstall

不是“make install” 我错误地运行了“make install”并破坏了我对 Python 2.6.6 系统的访问权限以及对 yum 的访问权限。事实上,我推测我破坏了我对 Centos 6.4 上每个依赖于系统 Python 的访问才能正常工作的程序的访问。如果我在那个时间点成功安装了 nodejs,我也会破坏我对 nodejs 的访问。我必须销毁并重新创建 /usr/local/bin/python2 作为指向 /usr/local/bin/python2.6 的软链接,并对 /usr/bin/python2 执行相同操作以使事情恢复正常。没有太多乐趣。

于 2014-03-13T03:28:41.843 回答