Глобальная установка с npm не работает после обновления Mac OS X Mavericks

После обновления до OS X 10.9 Mavericks node больше не найден в bash. Я думаю, что я установил его с brew некоторое время назад.

Я решил использовать установщик с сайта node.js. Все прошло отлично, и node и npm стали доступны в bash. Однако установка пакетов по всему миру не работает.

npm -g bin выводит следующий путь /usr/local/bin.

Однако после запуска npm install -g karma и вызова ls -la /usr/local/bin я не вижу символическую ссылку на путь, в котором находится исполняемый файл karma.

Запуск npm -g root возвращает /usr/local/lib/node_modules, и после установки я вижу, что там находится модуль karma.

Не уверен, что я еще мог проверить. Спасибо!

Ответ 1

Проблема, похоже, произошла из-за того, что я пытался установить пакеты, которые ранее были в моей системе. Символьные ссылки не были созданы, вероятно, из-за этого. Как только я удалил пакеты и снова установил их (или пытался установить пакеты, которых у меня не было), они были добавлены в /usr/local/bin как символические ссылки.

Ответ 2

Я обнаружил, что основной причиной всех моих проблем с установкой npm было отсутствие лицензионного соглашения Xcode.

После обновления Maverick XCode также обновился, и если вы не запустите XCode, лицензионное соглашение будет отсутствовать.

Как только я принял соглашение, установки были успешными.

Ответ 3

У меня была такая же проблема из-за того, что я не принял лицензию xcode после обновления до Mavericks. Я смог принять новую лицензию xcode, выполнив следующее:

sudo xcodebuild -license

Тем не менее, npm все еще не работал, потому что symlink не был создан, но попытка переустановки упомянутого npm уже была там. Я пошел вперед и:

brew удалить npm

а затем переустановить с помощью:

brew установить npm

и я снова работаю. Не большой поклонник переустановки, но я думаю, что необходимость принять лицензию xcode оставила вещи в зависании.

Ответ 4

У меня была та же проблема - npm не работал после обновления до mavericks. Я пробовал все вышеперечисленные шаги, но все еще застрял. В частности, когда я попытался переустановить node, Я получил ошибку:

Предупреждение. Шаг после установки не завершился успешно. Вы можете попробовать еще раз, используя brew postinstall node

Но запустив brew postinstall node ответил:

Ошибка: Permission denied -/usr/local/lib/ node_modules/npm/AUTHORS

Я попытался удалить все ранее установленные модули node

sudo rm -rf /usr/local/lib/node_modules/

а затем удалить и переустановить node

и, наконец, получили как node, так и npm, как и раньше.

Ответ 5

У меня была та же проблема. После обновления maverick npm не работал, но node сам был. Я не использовал последнюю версию, так как наша команда предпочитает использовать 0,8.10.

В любом случае nvm, менеджер версий node.js, все еще работал. В этом случае я просто переустановил:

$ nvm install 0.8.21
######################################################################## 100.0%
Now using node v0.8.21
$ npm
Usage: npm <command>

where <command> is one of:
add-user, adduser, apihelp, author, bin, bugs, c, cache,
completion, config, ddp, dedupe, deprecate, docs, edit,
explore, faq, find, find-dupes, get, help, help-search,
home, i, info, init, install, isntall, issues, la, link,
list, ll, ln, login, ls, outdated, owner, pack, prefix,
prune, publish, r, rb, rebuild, remove, restart, rm, root,
run-script, s, se, search, set, show, shrinkwrap, star,
stars, start, stop, submodule, tag, test, tst, un,
uninstall, unlink, unpublish, unstar, up, update, version,
view, whoami

npm <cmd> -h     quick help on <cmd>
npm -l           display full usage info
npm faq          commonly asked questions
npm help <term>  search for help on <term>
npm help npm     involved overview

В случае, когда nvm не работает, вам может понадобиться переустановить его, а также ymmv

Ответ 6

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

моя версия npm (npm -v) равна 1.4.28. Во-первых, я установил node.js на компьютер с учетной записью администратора. Затем я создал пользователя с правами администратора. Когда я попытался проверить версию npm, я не смог этого сделать.

Я искал в Интернете и натолкнулся на этот текст. Оригинальный плакат попросил проверить настройки пути. У меня не было node.js и npm, установленных с помощью homebrew, другого программного обеспечения, которое сделало меня головной болью два месяца назад. Я проверил, что могу запустить node. Это связано с тем, что node находится в /usr/local/bin, где все пользователи имеют права выполнять программы. Но для npm это на самом деле ссылка на.. /lib/ node_modules/npm/bin. Однако папка /usr/local/lib недоступна только для других пользователей, кроме учетной записи администратора.

I "sudo -i" и предоставил ему "chmod a + x../lib". Удивительно, что все папки внутри имеют правильное исполнение. Я подозревал, что это какая-то ошибка. Я вышел из судо и снова попробовал "npm -v". Succeed.

Надеюсь, что это поможет.

Ответ 7

Если другие решения, размещенные здесь, также не сработают для вас, вы можете попробовать подход, предложенный на этой странице GitHub. При полной переустановке в соответствии с инструкциями на странице, я наконец-то получил npm (и приложение, vs-mda-remote, чтобы быть точным).

EDIT: Это произошло после обновления от Mavericks до Yosemite.