【问题标题】:can't brew install node无法酿造安装节点
【发布时间】:2015-10-19 21:55:00
【问题描述】:

我正在尝试通过自制软件升级我的节点,但遇到了问题,因为我想我试图通过网站下载。我对终端很陌生。我试图寻找答案,但很多人说你可以删除未编译的头文件。我不知道该怎么做。但由于某种原因,当我尝试 brew install node 时,它​​说 brew link 步骤没有成功完成。

我也尝试过 brew 链接节点,但这也不起作用。我没有选择,所以我来到了这里。

[SICNARF@WOPR ~]$ brew install node
==> Downloading https://homebrew.bintray.com/bottles/node-0.12.7.yosemite.bottle.tar.gz
Already downloaded: /Library/Caches/Homebrew/node-0.12.7.yosemite.bottle.tar.gz
==> Pouring node-0.12.7.yosemite.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink include/node/android-ifaddrs.h
/usr/local/include/node is not writable.

You can try again using:
  brew link node
Warning: The post-install step did not complete successfully
You can try again using `brew postinstall node`
==> Summary
????  /usr/local/Cellar/node/0.12.7: 2726 files, 31M

这就是我酿造医生时发生的事情

[SICNARF@WOPR ~]$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
    /usr/local/include/node/ares.h
    /usr/local/include/node/ares_version.h
    /usr/local/include/node/libplatform/libplatform.h
    /usr/local/include/node/nameser.h
    /usr/local/include/node/node.h
    /usr/local/include/node/node_buffer.h
    /usr/local/include/node/node_internals.h
    /usr/local/include/node/node_object_wrap.h
    /usr/local/include/node/node_version.h
    /usr/local/include/node/openssl/aes.h
    /usr/local/include/node/openssl/asn1.h
    /usr/local/include/node/openssl/asn1_mac.h
    /usr/local/include/node/openssl/asn1t.h
    /usr/local/include/node/openssl/bio.h
    /usr/local/include/node/openssl/blowfish.h
    /usr/local/include/node/openssl/bn.h
    /usr/local/include/node/openssl/buffer.h
    /usr/local/include/node/openssl/camellia.h
    /usr/local/include/node/openssl/cast.h
    /usr/local/include/node/openssl/cmac.h
    /usr/local/include/node/openssl/cms.h
    /usr/local/include/node/openssl/comp.h
    /usr/local/include/node/openssl/conf.h
    /usr/local/include/node/openssl/conf_api.h
    /usr/local/include/node/openssl/crypto.h
    /usr/local/include/node/openssl/des.h
    /usr/local/include/node/openssl/des_old.h
    /usr/local/include/node/openssl/dh.h
    /usr/local/include/node/openssl/dsa.h
    /usr/local/include/node/openssl/dso.h
    /usr/local/include/node/openssl/dtls1.h
    /usr/local/include/node/openssl/e_os2.h
    /usr/local/include/node/openssl/ebcdic.h
    /usr/local/include/node/openssl/ec.h
    /usr/local/include/node/openssl/ecdh.h
    /usr/local/include/node/openssl/ecdsa.h
    /usr/local/include/node/openssl/engine.h
    /usr/local/include/node/openssl/err.h
    /usr/local/include/node/openssl/evp.h
    /usr/local/include/node/openssl/hmac.h
    /usr/local/include/node/openssl/idea.h
    /usr/local/include/node/openssl/krb5_asn.h
    /usr/local/include/node/openssl/kssl.h
    /usr/local/include/node/openssl/lhash.h
    /usr/local/include/node/openssl/md4.h
    /usr/local/include/node/openssl/md5.h
    /usr/local/include/node/openssl/mdc2.h
    /usr/local/include/node/openssl/modes.h
    /usr/local/include/node/openssl/obj_mac.h
    /usr/local/include/node/openssl/objects.h
    /usr/local/include/node/openssl/ocsp.h
    /usr/local/include/node/openssl/opensslconf.h
    /usr/local/include/node/openssl/opensslv.h
    /usr/local/include/node/openssl/ossl_typ.h
    /usr/local/include/node/openssl/pem.h
    /usr/local/include/node/openssl/pem2.h
    /usr/local/include/node/openssl/pkcs12.h
    /usr/local/include/node/openssl/pkcs7.h
    /usr/local/include/node/openssl/pqueue.h
    /usr/local/include/node/openssl/rand.h
    /usr/local/include/node/openssl/rc2.h
    /usr/local/include/node/openssl/rc4.h
    /usr/local/include/node/openssl/ripemd.h
    /usr/local/include/node/openssl/rsa.h
    /usr/local/include/node/openssl/safestack.h
    /usr/local/include/node/openssl/seed.h
    /usr/local/include/node/openssl/sha.h
    /usr/local/include/node/openssl/srp.h
    /usr/local/include/node/openssl/srtp.h
    /usr/local/include/node/openssl/ssl.h
    /usr/local/include/node/openssl/ssl2.h
    /usr/local/include/node/openssl/ssl23.h
    /usr/local/include/node/openssl/ssl3.h
    /usr/local/include/node/openssl/stack.h
    /usr/local/include/node/openssl/symhacks.h
    /usr/local/include/node/openssl/tls1.h
    /usr/local/include/node/openssl/ts.h
    /usr/local/include/node/openssl/txt_db.h
    /usr/local/include/node/openssl/ui.h
    /usr/local/include/node/openssl/ui_compat.h
    /usr/local/include/node/openssl/whrlpool.h
    /usr/local/include/node/openssl/x509.h
    /usr/local/include/node/openssl/x509_vfy.h
    /usr/local/include/node/openssl/x509v3.h
    /usr/local/include/node/pthread-fixes.h
    /usr/local/include/node/smalloc.h
    /usr/local/include/node/stdint-msvc2008.h
    /usr/local/include/node/tree.h
    /usr/local/include/node/uv-aix.h
    /usr/local/include/node/uv-bsd.h
    /usr/local/include/node/uv-darwin.h
    /usr/local/include/node/uv-errno.h
    /usr/local/include/node/uv-linux.h
    /usr/local/include/node/uv-sunos.h
    /usr/local/include/node/uv-threadpool.h
    /usr/local/include/node/uv-unix.h
    /usr/local/include/node/uv-version.h
    /usr/local/include/node/uv-win.h
    /usr/local/include/node/uv.h
    /usr/local/include/node/v8-debug.h
    /usr/local/include/node/v8-platform.h
    /usr/local/include/node/v8-profiler.h
    /usr/local/include/node/v8-testing.h
    /usr/local/include/node/v8-util.h
    /usr/local/include/node/v8.h
    /usr/local/include/node/v8config.h
    /usr/local/include/node/v8stdint.h
    /usr/local/include/node/zconf.h
    /usr/local/include/node/zlib.h

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:

    node
[SICNARF@WOPR ~]$ brew link
This command requires a keg argument
[SICNARF@WOPR ~]$ brew link node
Linking /usr/local/Cellar/node/0.12.7... 
Error: Could not symlink include/node/android-ifaddrs.h
/usr/local/include/node is not writable.

【问题讨论】:

    标签: node.js terminal installation homebrew


    【解决方案1】:

    涉及两个步骤。

    1. 只需运行以下四个命令:
        sudo chown -R `whoami`:admin /usr/local/include/node
        sudo chown -R `whoami`:admin /usr/local/bin
        sudo chown -R `whoami`:admin /usr/local/share
        sudo chown -R `whoami`:admin /usr/local/lib/dtrace 
    
    1. 最后,运行覆盖命令:
        brew link --overwrite node
    

    【讨论】:

    • 我还得加上sudo chown -R `whoami`:admin /usr/local/lib/dtrace
    • 我也必须运行sudo chown -R `whoami`:admin /usr/local/lib/dtrace 。谢谢。
    • 我需要添加sudo chown -R `whoami`:admin /usr/local/lib/node_modules/npm
    【解决方案2】:

    我在相同的情况下遇到了同样的问题。我能够通过以下方式成功安装 brew 版本:

    1. 运行brew install node
    2. 记下导致问题的模块并将其删除。在您的情况下,这将是 /usr/local/include/node
    3. 卸载 - brew uninstall node
    4. 重新安装 - brew install node

    我不得不为每个剩余的有问题的目录(实际上大约 3 个不同的目录)重复这个过程几次,最终安装成功,没有任何问题。

    【讨论】:

    • 这对我有用。我实际上在没有 brew 的情况下手动安装了节点 - 所以问题是由于在手动安装节点后尝试使用 brew 安装节点引起的
    【解决方案3】:

    我在 Mac OS High Sierra 上的新 MacBook Pro 上遇到了这个问题。我收集到 brew 试图使用 /usr/local 下不存在的名为 include 和 lib 的目录。由于 root 拥有 /usr 我必须手动进行 - 确保 whoami 所有者匹配 /usr/local 中的对等目录:

    sudo mkdir /usr/local/include
    chown `whoami`:admin /usr/local/include 
    sudo mkdir /usr/local/lib
    chown `whoami`:admin /usr/local/lib
    

    然后为了匹配 /usr/local 中的其他目录,我做了:

    chmod 775 /usr/local/include
    chmod 775 /usr/local/lib
    

    然后以下工作:

    brew uninstall node 
    brew install node
    

    【讨论】:

      【解决方案4】:

      您需要使/usr/local/bin/usr/local/share 可写。我使用this 回答来实现这一点。以下是在链接断开的情况下复制的答案中的关键建议:

      sudo chown -R `whoami`:admin /usr/local/bin
      sudo chown -R `whoami`:admin /usr/local/share
      

      【讨论】:

      • 愚蠢的问题,但您实际上是在运行 'whoami' 还是在您的计算机上运行您的用户名的占位符?
      • 如果你在命令提示符中输入whoami,你会看到它的计算结果是登录用户。
      • @EthanParker 反引号将导致命令被替换,类似于$(whoami)。有关两者区别的更多信息,请参阅stackoverflow.com/a/26929799/2533467
      【解决方案5】:

      我有同样的错误:

      Linking /usr/local/Cellar/node/11.10.0...
      Error: Could not symlink include/node /usr/local/include is not writable.
      

      解决办法:

      $ sudo mkdir /usr/local/include
      $ sudo chown -R $(whoami) $(brew --prefix)/*
      $ brew link node
      

      正在链接 /usr/local/Cellar/node/11.10.0... 7 个符号链接已创建

      $ node -v => v11.10.0

      $ npm -v => 6.7.0

      【讨论】:

        【解决方案6】:

        对于那些在 MacOS 上运行高山脉的人:

        我尝试使用chown 命令授予权限,然后通过自制软件卸载然后重新安装节点,但没有任何效果。

        我刚刚访问了这个网站https://nodejs.org/en/download/ 并下载了 64 位 macOS .pkg,它运行良好。我只是在终端中输入命令node 来测试它。

        【讨论】:

          【解决方案7】:

          brew postinstall nodebrew link --overwrite node 似乎没有帮助。

          经过几轮brew uninstall nodebrew install node 之后,出现问题的目录和文件如下:

          sudo rm -r /usr/local/include/node
          sudo rm -r /usr/local/share/doc/node
          sudo rm -r /usr/local/lib/node_modules
          sudo rm /usr/local/lib/dtrace/node.d
          sudo rm /usr/local/share/man/man1/node.1
          sudo rm /usr/local/share/systemtap/tapset/node.stp
          

          删除有问题的文件后,brew 将为您完成所有正确的链接和权限。

          可能的权限设置为root:wheel,因为过去使用sudo 安装或手动安装等。

          【讨论】:

          • 2019 年有帮助的答案(2019-10-16)
          • 这在 2021 年对我有用。在安装 brew 之前,我已经手动安装了导致错误的节点。在尝试了这么多事情之后,这个^^终于奏效了。非常感谢。
          【解决方案8】:

          我在链接方面遇到了非常相似的问题。我无法让它工作。我试图 chmod /usr/local/include/node 以便我可以将链接写入它,但遇到了另一个错误。作为最终解决方案,我刚刚从https://nodejs.org/download/ 重新安装了节点

          我又有工作节点提示了!我很想通过 brew 进行更新,但仅使用站点上的 pkg 安装程序就为我省去了很多麻烦。我知道这可能不是您正在寻找的解决方案,但我只是想分享我在同一问题上的经验。希望对你有帮助!

          【讨论】:

          • 官网重装node版本会不会和老版本冲突?您是删除旧的并重新安装还是只下载 pkg 文件并单击安装按钮?
          • 不,我刚刚从网站上下载了 pkg,一切正常。
          【解决方案9】:
          brew link --overwrite node
          

          错误:无法符号链接 (...)

          /usr/xxx

          sudo chown -R 'whoami?':admin xxx
          brew link --overwrite node
          

          冲洗并重复

          【讨论】:

            【解决方案10】:

            对我来说,我必须运行 brew doctor ,这表明我没有写入权限,并且必须运行 sudo chown -R $(whoami) /usr/local/bin /usr/local/share /usr/local/share/man 来解决问题。

            我建议运行brew doctor 看看它是否可以提供有关该问题的一些提示

            【讨论】:

              【解决方案11】:

              手动删除错误文件夹或文件并运行此命令brew uninstall node && brew install node

              您必须执行此过程,直到删除所有错误文件夹和文件。

              然后节点将被链接。

              【讨论】:

                【解决方案12】:

                如果您尝试brew link node 并且它说的是类似的内容:

                错误:无法符号链接 include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h 目标 /usr/local/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h 已经存在。您可能想要删除它:

                试试这个:

                brew link --overwrite --dry-run node | xargs rm
                brew link node 
                

                【讨论】:

                  猜你喜欢
                  • 2017-07-19
                  • 2021-04-12
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-09-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-07-03
                  相关资源
                  最近更新 更多