【问题标题】:Error installing Nodejs on CentOS 5 server - no module bz2在 CentOS 5 服务器上安装 Nodejs 时出错 - 没有模块 bz2
【发布时间】:2012-08-11 20:25:17
【问题描述】:

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

【问题讨论】:

  • 我在 Python 2.6 上试过,没有 bean。我安装了 Python 2.7.3,它的 make 文件中没有该行。尝试配置,然后制作,在 make 脚本结束时,它返回 'Failed to build these modules: bz2'
  • 您是否安装了 bzip2-devel 和/或 libbz2-dev?我的包名可能略有错误,因发行版而异。 Python 可能需要所有开发人员来构建它的模块。
  • 我愿意。我都是用 yum 命令安装的
  • 结束了你们发布的所有内容,以及我在让 bzip2 工作时所能找到的所有内容,无论我做什么,Python2.6.7 都找不到它,所以我用 Python 2.7.3 替换了它,瞧,它奏效了。还发现此链接有用github.com/joyent/node/issues/3504

标签: node.js centos5 bzip2


【解决方案1】:

当我在 Centos 6.4 上运行 ma​​ke 时,我也遇到了与 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 目录中运行 ma​​ke,这一次,ma​​ke将运行完成。按照 nodejs 目录中设置的说明运行 ma​​ke 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!

并得到了“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

NOT “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 执行相同操作以使事情恢复正常。没有太多乐趣。

【讨论】:

    【解决方案2】:

    请注意,此问题的另一个解决方案(无法编译 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
    

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多