Не может brew установить node

Я пытаюсь обновить свой узел с помощью homebrew, но столкнулся с проблемой, потому что я думаю, что я пытался загрузить через веб-сайт. Я очень новичок в терминале. Я пытался найти ответы, но многие люди говорят, что вы можете просто удалить непаренные файлы заголовков. Я не уверен, как это сделать. но по какой-то причине, когда я пытаюсь установить узел brew, он говорит, что шаг brew link не был успешно завершен.

Я также пытался заварить узел ссылки, но это тоже не работает. У меня закончились варианты, поэтому я пришел сюда.

[[email protected] ~]$ 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

это то, что происходит, когда я завариваю доктора

[[email protected] ~]$ 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
[[email protected] ~]$ brew link
This command requires a keg argument
[[email protected] ~]$ 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.

Ответ 1

Я столкнулся с этой же проблемой при тех же обстоятельствах. Я смог получить версию brew для установки успешно:

  • Выполнить brew install node
  • Обратите внимание на модуль, который вызывает проблему и удаляет ее. В вашем случае это будет /usr/local/include/node
  • Удалить - brew uninstall node
  • Переустановка - brew install node

Мне пришлось повторить этот процесс несколько раз для каждого оставшегося проблемного каталога (примерно 3 разных на самом деле), и установка в конечном итоге удалась без каких-либо проблем.

Ответ 2

Я столкнулся с этой проблемой на новом MacBook Pro в Mac OS High Sierra. Я обнаружил, что brew пытается использовать каталоги с именами include и lib в /usr/local, которых там не было. Поскольку root владеет /usr, мне пришлось сделать это вручную - чтобы убедиться, что владелец whoami совпадает с каталогами одноранговых 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

Ответ 3

Вам нужно сделать /usr/local/bin и /usr/local/share доступными для записи. Я использовал этот ответ для достижения этого. Ниже приведен главный совет в ответе, реплицированный в случае разрыва ссылки:

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

Ответ 4

brew link --overwrite node

Вышеуказанная команда должна быть выполнена после следующих трех команд. И это решит проблему.

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

Ответ 5

Для тех, кто работает с высокими sierra на MacOS:

Я попытался дать разрешения с помощью команды chown и удалить, а затем переустановить узел с помощью homebrew, но ничего не получалось.

Я просто зашел на этот сайт https://nodejs.org/en/download/ и скачал 64-битный macOS.pkg, и он отлично работал. Я проверил это, просто введя командный node в терминал.

image of which version of node to download for mac

Ответ 6

У меня была очень похожая проблема с привязкой. Я не мог заставить его работать. Я попробовал chmod/usr/local/include/ node, чтобы я мог написать ссылку на него, но столкнулся с другой ошибкой. В качестве окончательного решения я просто переустановил node из https://nodejs.org/download/

У меня снова работает приглашение node! Мне бы хотелось пройти через brew для обновления, но это избавило меня от хлопот, просто используя установщик pkg с сайта. Я знаю, что это не может быть решением, которое вы ищете, но я просто хотел поделиться своим опытом с той же проблемой. Надеюсь, это поможет!

Ответ 7

У меня была такая же ошибка:

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

Ответ 8

Мне пришлось запустить brew doctor, который показал мне, что у меня нет sudo chown -R $(whoami)/usr/local/bin/usr/local/share/usr/local/share/man запись, и мне пришлось запустить sudo chown -R $(whoami)/usr/local/bin/usr/local/share/usr/local/share/man чтобы решить проблему.

Я предлагаю запустить brew doctor чтобы узнать, может ли он дать некоторые советы по этому вопросу.

Ответ 9

brew link --overwrite node

Ошибка: не удалось символическую ссылку (...)

/USR/ххх

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

Промыть и повторить

Ответ 10

удалите папку с ошибкой или файл вручную и запустите эту команду brew uninstall node && brew install node

Вы должны делать этот процесс, пока все папки с ошибками и файлы не будут удалены.

Тогда узел будет связан.

Ответ 11

brew postinstall node или brew postinstall node brew link --overwrite node, похоже, не помогают.

После нескольких раундов работы brew uninstall node и brew uninstall node brew 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 или, возможно, ручной установки и т.д.

Ответ 12

Если вы попытаетесь brew link node и он говорит что-то вроде:

Ошибка: не удалось включить символическую ссылку /node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h Target/usr/local/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h уже существует. Вы можете удалить это:

Попробуй это:

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