2016-02-07 1 views
11

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

После запуска команды, и я попытался установить ее с помощью варева: brew install node. Который дал мне следующую ошибку:

Error: The `brew link` step did not complete successfully 
The formula built, but is not symlinked into /usr/local 
Could not symlink share/doc/node/gdbinit 
/usr/local/share/doc/node is not writable. 

You can try again using: 
    brew link node 

Попытка запустить brew link node, я получил:

Linking /usr/local/Cellar/node/5.4.0... 
Error: Could not symlink share/systemtap/tapset/node.stp 
/usr/local/share/systemtap/tapset is not writable. 

Тогда, когда я пишу brew install npm, я получаю:

Warning: node-5.4.0 already installed, it's just not linked 

Когда я пишу npm -v I получение:

env: node: No such file or directory 

Любые идеи о том, как это решить?

+0

Эта конструкция предназначена для установщика pkg, а не Homebrew. Вы можете попробовать удалить узел с помощью 'brew remove node', а затем переустановить. –

+0

@ AlexanderO'Mara Сначала я установил его с установщиком pkg, затем попробовал сварить. Запуск 'brew remove node' не работал. Установка заваривания снова по-прежнему дает ошибку связи – Ela

+0

Запустите 'brew doctor' и посмотрите, какие предупреждения вы получите. Звуки, как разрешения, возможно, были изменения. Я также попытался бы вручную удалить папку '/ usr/local/Cellar/node /', если hombrew не сможет ее удалить. –

ответ

26

Мне удалось исправить это, выполнив сначала sudo chown -R $USER /usr/local и следуя за ним brew link node. Теперь я правильно установил узел.

+0

после запуска этого не следует переключать право собственности на root с помощью 'sudo chown -R root/usr/local'? похоже, что этот каталог не должен оставаться под пользователем – dougmacklin

2

У меня была такая же проблема, когда я был brew link jq, но ссылаясь на /usr/local/lib is not writable. На одной из моих машин я не мог применить предложение Элы. Я сделал sudo chmod 776 /usr/local/lib, тогда я сделал brew link jq, который был успешным, а затем сменил его на sudo chmod 755 /usr/local/lib.

5
  1. Судо Чаун -R $ USER/USR/местные ссылка
  2. заварить --overWrite узел
0

Используйте следующий код, чтобы исправить это. (Это сочетание приведенных выше решений, но это работает!)

  1. sudo chmod 776 /usr/local/lib
  2. brew link --overwrite node

    Outputs: Linking /usr/local/Cellar/node/9.6.1... 49 symlinks created

  3. sudo chmod 755 /usr/local/lib
0

Изменить/USR/местные разрешения своему пользователю :

sudo chown -R $USER /usr/local 

Затем запустите заваривания постустановочный:

brew postinstall node 

Теперь вы сделали. Для того, чтобы проверить:

npm -v 

Дополнительный шаг: запуск заваривания врача для очистки цели

brew doctor 

Вы, возможно, потребуется сократить некоторые дополнительные старые вещи, если врач его найти.