【问题标题】:Error when compiling node.js编译 node.js 时出错
【发布时间】:2014-07-15 07:39:36
【问题描述】:

我从官方链接下载了 git repo,

git clone git://

然后我跑了./configure && make && make install make install 返回错误:

  LINK(target) /usr/local/bin/node/out/Release/node: Finished
  touch /usr/local/bin/node/out/Release/obj.target/node_dtrace_header.stamp
  touch /usr/local/bin/node/out/Release/obj.target/node_dtrace_provider.stamp
  touch /usr/local/bin/node/out/Release/obj.target/node_dtrace_ustack.stamp
  touch /usr/local/bin/node/out/Release/obj.target/node_etw.stamp
  touch /usr/local/bin/node/out/Release/obj.target/node_mdb.stamp
  touch /usr/local/bin/node/out/Release/obj.target/node_perfctr.stamp
  touch /usr/local/bin/node/out/Release/obj.target/specialize_node_d.stamp
make[1]: Leaving directory `/usr/local/bin/node/out'
ln -fs out/Release/node node

#make install

make -C out BUILDTYPE=Release V=1
make[1]: Entering directory `/usr/local/bin/node/out'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/local/bin/node/out'
ln -fs out/Release/node node
/usr/bin/python tools/install.py install '' '/usr/local'
installing /usr/local/bin/node
Traceback (most recent call last):
  File "tools/install.py", line 202, in <module>
    run(sys.argv[:])
  File "tools/install.py", line 197, in run
    if cmd == 'install': return files(install)
  File "tools/install.py", line 130, in files
    action(['out/Release/node'], 'bin/node')
  File "tools/install.py", line 79, in install
    def install(paths, dst): map(lambda path: try_copy(path, dst), paths)
  File "tools/install.py", line 79, in <lambda>
    def install(paths, dst): map(lambda path: try_copy(path, dst), paths)
  File "tools/install.py", line 70, in try_copy
    try_unlink(target_path) # prevent ETXTBSY errors
  File "tools/install.py", line 33, in try_unlink
    os.unlink(path)
OSError: [Errno 21] Is a directory: '/usr/local/bin/node'
make: *** [install] Error 1

我真的不熟悉这个,有什么问题?

我用 root 运行命令,当我用谷歌搜索错误时,我只发现权限问题主题,但这里不是这种情况。

【问题讨论】:

  • 您是否尝试过制作和安装稳定的节点版本(例如 v0.10.28)?
  • @mscdex 问题通过重命名/移动源文件夹解决,感谢您的建议

标签: node.js compilation makefile installation


【解决方案1】:

我将 node.js 源下载到 /usr/local/bin/node,node.js 可以很好地编译到文件夹 /usr/local/bin/node/out,然后尝试将其链接/可执行文件安装到 /usr/local/bin/node 这是一个文件夹...

OSError: [Errno 21] Is a directory: '/usr/local/bin/node'

解决方案:

重命名文件夹/usr/local/bin/node(如/usr/local/bin/node-src)并重复安装过程。

编译正常:

giant:/usr/local/bin/node-src# l ../
total 14228
-rwxr-xr-x  1 root staff 14562901 May 26 14:12 node
drwxr-sr-x 11 root staff     4096 May 26 14:16 node-src
lrwxrwxrwx  1 root staff       38 May 26 14:16 npm -> ../lib/node_modules/npm/bin/npm-cli.js

【讨论】:

    【解决方案2】:

    如果您没有安装必备软件包,则可能会出现此错误。所以,试试下面的

    sudo apt-get -y install build-essential g++ libssl-dev pkg-config

    如果所有软件包都已成功安装在您的系统中,请执行以下操作

    sudo apt-get install libc-ares2 libev4 libv8-3.7.12.22 nodejs

    然后输入

    节点-v

    检查它是否正确解决了您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 2011-12-04
      • 2013-12-30
      • 1970-01-01
      • 2012-01-28
      相关资源
      最近更新 更多