在CentOS 5服务器上安装Nodejs时出错 - 没有模块bz2

时间:2012-08-15 14:20:44

标签: node.js centos5 bzip2

我正在尝试在我的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

2 个答案:

答案 0 :(得分:3)

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

这是我使用的脚本:

# 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

答案 1 :(得分:3)

当我在Centos 6.4上运行 make 时,我也遇到了与Marius Milliunas相同的错误 - 那是在我运行nodejs目录中的 ./ configure 命令之后,我从下载的nodejs tarball中提取的。正如Marius Milliunas所做的那样。

问题的根源是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 进行跟进。

您可以通过运行节点并获取提示来测试您的nodejs安装。我选择通过creatind测试基于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!

并按预期获得“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的访问权限,即Python 2.6.6,以及我对yum的访问权限。事实上,我猜测我破坏了对Centos 6.4上每个程序的访问权限,这些程序依赖于对系统Python的访问来正常工作。如果我在那个时间点成功安装了nodejs,我也会破坏对nodejs的访问权限。我不得不销毁并重新创建/ usr / local / bin / python2作为/usr/local/bin/python2.6的软链接,并对/ usr / bin / python2执行相同操作以使事情恢复正常。没什么好玩的。