Я пытаюсь установить node.js через Homebrew. К сожалению, я получаю эту ошибку:
➜ ~ brew install node
==> Downloading http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/node/0.8.10
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
/usr/local/share/npm/bin
Warning: Could not link node. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'
==> Summary
/usr/local/Cellar/node/0.8.10: 856 files, 13M, built in 103 seconds
Итак, я пытаюсь связать узел вручную ...
➜ ~ brew link node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/node/0.8.10/lib/node_modules/npm/scripts/relocate.sh
Target /usr/local/lib/node_modules/npm/scripts/relocate.sh already exists. You may need to delete it.
To force the link and delete this file, do:
brew link -f formula_name
To list all files that would be deleted:
brew link -n formula_name
Не повезло, поэтому я пытаюсь принудительно связать узел ...
➜ ~ brew link -f node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...
Error: Permission denied - /usr/local/lib/dtrace/node.d
Я не знаком с dtrace в любом отношении, и я боюсь связываться с разрешениями, поэтому я попытался sudo ..
➜ ~ git:(master) sudo brew link -f node
Password:
Error: Cowardly refusing to `sudo brew link'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.
Я попытался удалить узел через brew uninstall node
и повторить попытку установки безуспешно .
Ответы:
Пакет homebrew для node.js теперь снова включает npm, поэтому это случилось со мной, когда я пропустил сообщение пакета homebrew о первом удалении автономной версии.
Предполагая, что, как и я, вы уже сломали узел / npm, пытаясь выполнить обновление, прежде чем
npm uninstall npm -g
узнаете сначала,rm -rf /usr/local/lib/node_modules/npm
а потом можетеbrew link node
. Это удаляет автономный пакет npm с собственным хостом (а не тот, который brew хотел бы установить) и позволяет brew symlink его пакет из Cellar.источник
Я использую Mac OS X Mavericks. Я попытался установить узел 0.10.25, и верхний ответ не работал для меня.
natevw говорит,
rm -rf /usr/local/lib/node_modules/npm
но если разрешения на это/usr/local/lib/node_modules
выглядят так:тогда brew не сможет создать символическую ссылку npm в этом каталоге. Вот мое решение:
Шаг 1: Обновить Homebrew
Шаг 2: Удалите узел / npm везде в вашей системе
Некоторые из этих команд не нужны в зависимости от того, как вы устанавливали node / npm в прошлом.
Примечание: у меня были файлы паразитных узлов, которые я нашел, запустив
brew -v link node
(что дало мне подробный вывод ошибок компоновки, на которые жаловался brew). Вам может понадобиться:Шаг 3: Откройте новый терминал и установите узел
источник
whoami
/ usr / local Sauceбудет хорошо, как упомянуто в устранении неполадок сайта brew
https://github.com/Homebrew/homebrew/wiki/troubleshooting
источник
sudo chmod -R g+w /usr/local
(хотя, честно говоря, оба меня пугают)chgrp
команда.brew doctor
, но я предпочитаюsudo su
выполнять команды, затем закрывать терминалВозможно, вы уже установили более старую версию node.js, используя другой метод, поэтому вам нужно вручную удалить файлы, попадающие в brew.
Сделайте
brew link -n node
и вручную удалите эти конфликтующие файлы и каталоги, затемbrew link node
повторите попытку .источник
aspell
. Как мне найти конфликтующие файлы и каталоги?Я немного опоздал, у меня получилось так:
Все было успешно после этой последовательности
источник
sudo chmod 777
Это никогда не является правильным решением, если у вас есть проблемы с разрешениями, выясните, почему они возникают, и установите минимальный уровень разрешений, необходимый для выполнения работы. Эта команда позволит изменить файл любому пользователю системы.brew link node
в первый раз.Попробуй это. Получил из другой справки и работал на меня.
источник
brew postinstall node
был билетbrew link --overwrite node
финальной командой и, кажется, все работает. Последняя предложенная вами команда не работает из-за 'sudo. Вместо этого используйтеbrew postinstall node
У меня была такая же проблема после переноса всех моих приложений со старого Mac на мой новый.
Я нашел решение, запустив
brew doctor
:После запуска
brew prune
Homebrew наконец-то вернулся на трассу :)источник
У моей проблемы было немного другое решение. Каталог, в котором brew хотел создать символические ссылки, не принадлежал текущему пользователю.
ls -la /usr/local/bin/lib/node | grep node
дали:Для меня это исправили следующие:
пс.
$(users)
расширится до вашего имени пользователя, немного позаботился о том, чтобы помочь ленивым копировщикам;)источник
спасибо @suweller.
Я исправил проблему:
У меня была та же проблема, что и у Сувеллера:
поэтому я исправил эту проблему:
После того, как я исправил эту проблему, я получил еще одну:
Поэтому я удалил node.d:
получил еще одну ошибку разрешения:
и исправил это:
и наконец все заработало
источник
Большинство проблем установки brew с узлом вызваны ошибками разрешения или наличием ранее установленного узла, а затем попыткой установить его через brew. Решение, которое сработало для меня, наконец, было:
ВНИМАНИЕ: Это приведет к удалению использования nodejs (несколько версий) с осторожностью:
Удалить узел через заварку:
заваривать узел удаления
также сделал через силу:
узел удаления brew --force
Чтобы использовать скрипт Source: Remove node :
curl -O https://raw.githubusercontent.com/DomT4/scripts/master/OSX_Node_Removal/terminatenode.sh
Затем:
Затем:
Затем обязательно выполните следующую команду:
chown $ USER / usr / local
Затем выполните обновление brew (продолжайте делать это, пока все не обновится):
заваривать обновление
Очистите brew и снова запустите обновление (может быть избыточным) и запустите doctor, чтобы убедиться, что все на месте:
очистка от заваривания; обновление варева; доктор варево
И, наконец, установите узел через brew (подробно):
brew install -v node
источник
окончательный ответ: смените владельца этого каталога на того, кем бы вы ни были
который также рекомендуется Brew, если вы запускаете Brew Doctor
источник
При установке произошла ошибка, из-за которой не удалось связать узел, и / usr / local / include не доступен для записи
Ниже решение сработало для меня: - Сначала создайте папку include, обратите внимание, что это требует привилегий sudo
источник
Мне также удалось испортить свой NPM и установленные пакеты между этими версиями Homebrew, и сколько бы раз я ни связывал / связывал и удалял / устанавливал узел, он все равно не работал.
Оказывается, вы должны удалить NPM из пути, иначе Homebrew не установит его: https://github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117.
Надеюсь, что это поможет кому-то с той же проблемой и сэкономит тот час или около того, что мне пришлось потратить на поиск проблемы ...
источник
Искатель, удалите этот файл:
в терминале:
затем:
источник
brew link --overwrite --dry-run node
, я вижу ошибкуNo such keg: /usr/local/Cellar/node
. Чего мне не хватает?Я перепробовал все методы, и ни один из них не работает. Самый простой способ - переустановить узел с https://nodejs.org/en/download/.
Просто скачайте
pkg
и установите его. Теперь у меня есть работаnpm
иnode
снова.источник
Не знаю, если это хорошая идея или нет: попробовав все другие решения безуспешно, я просто переименовал / usr / local / lib / dtrace, связал узел и снова переименовал каталог. После этого узел работал как положено.
источник
Я боролся с этим некоторое время. (для меня "npm uninstall npm -g" ничего не сделал)
Я перепробовал кучу вещей:
У меня все еще были некоторые проблемы, и я получал ошибки, когда пытался связать файлы узла
Наконец я попробовал это
Это, казалось, исправило это. (он перезаписывает все конфликтующие файлы, а также связывает узел и npm)
Надеюсь это поможет
источник
Я полностью удалил заваривание и начал снова, только чтобы снова найти ту же проблему.
Похоже, что Brew работает путем символической ссылки необходимых двоичных файлов в вашу систему, где другие методы установки обычно копируют файлы.
Я нашел существующий набор библиотек узлов здесь:
/usr/local/include/node
После некоторой царапины на голове я вспомнил установку узла на дату против этой старой версии, и это не было сделано с помощью brew.
Я вручную удалил всю эту папку и успешно связал npm.
Это объясняет, почему использование brew uninstall или даже удаление brew само по себе не дало никаких результатов.
Ответ с наивысшим рейтингом объясняет это очень просто, но я решил добавить свои замечания о том, почему это необходимо.
Я предполагаю, что куча проблем с другими пакетами brew может быть вызвана тем, что мешают старые не-brew экземпляры пакетов.
источник
Разрушил мою голову на узле символьных ссылок ... и, похоже, ничего не получалось ... но, наконец, сработало установление правильных разрешений. Этот 'sudo chown -R $ (whoami) / usr / local' сделал работу для меня.
источник
Я исправил это в El Capitan с помощью следующей команды. Честно говоря, понятия не имею, что он делает, но думал, что поделюсь, так как это решило мою проблему.
источник
Вам необходимо удалить пакет npm вручную.
первый узел отвязки:
brew link -n node
удалить папку npm:
rm -R /usr/local/Cellar/node/0.8.10/lib/node_modules/npm
ссылка снова:
brew link node
будет мягкая ссылка на новое местоположение npm
источник