NPM не будет устанавливать пакет на Mac. Новое, чистое строение. 'EACCES` & другие ошибки

я только что перестроил свою машину Mavericks (Mac OS X версии 9.4) с нуля. Я администратор и единственный пользователь этой машины.

  • я установил Git через их git-2.0.1-intel-universal-snow-leopard.pkg (http://git-scm.com/downloads) по умолчанию /usr/local/git/bin/git расположение.
  • я установил узел через их node-v0.10.30.pkg (http://nodejs.org/download/) по умолчанию /usr/local/bin/node расположение.
  • последний шаг пакета установщика узла включено примечание, что они также установили NPM по умолчанию /usr/local/bin/npm расположение.
  • мой $PATH Эхо /usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin (содержит /usr/local/bin).

под управлением npm install -g bower результаты:

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/bower']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/bower',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/bower',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:107:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "bower"
npm ERR! cwd /Users/Home
npm ERR! node -v v0.10.30
npm ERR! npm -v 1.4.21
npm ERR! path /usr/local/lib/node_modules/bower
npm ERR! fstream_path /usr/local/lib/node_modules/bower
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Home/npm-debug.log
npm ERR! not ok code 0

Запуск подобных установок (npm install -g yo, npm install -g grunt, npm install -g nvm, npm install -g npm) результаты в тот же список ошибок.

несколько человек в интернете предлагают принудительную установку через sudo, но несколько другие предупреждают, что это может причина более поздних проблем. В руководствах по этим пакетам, похоже, не упоминается требование sudo, и в некоторых случаях они посоветовали связаться с NPM, когда возникает эта проблема.

под управлением npm cache clear не правильный вопрос.

под управлением ls -la дома (~) каталог показывает мое имя пользователя Mac OS X как владельца Моего : drwxr-xr-x 15 admin staff 510 Aug 11 23:53 .npm

кто-нибудь знает, что пошло не так и как это исправить? Спасибо.

4 ответов


кстати, я решил эту проблему, изменив собственником /usr/local быть собой, чтобы позволить NPM модулям в его местоположении по умолчанию без дальнейшего требования sudo для установки каждого пакета.

sudo chown -R `whoami` /usr/local

EACCES-это ошибка отсутствия доступа при выполнении операции.

взяты строки: npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower' мы видим, что npm не удалось создать каталог в данном месте.

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

НПМ ERR! Попробуйте снова запустить эту команду как root / Administrator.

Запуск от имени администратора, вы должны префикс этих команд с sudo. То есть:

sudo npm install -g bower. Вам будет необходимо ввести пароль по соображениям безопасности.


чтобы начать новый удалить предыдущий узел.JS и npm устанавливает, а также Эти:

~/.npmrc ~/.НПМ ~/ПТМ ~/.npm-init.js

чтобы установить nodejs и npm как самостоятельно не root выполните следующие команды (linux):

mkdir ${HOME}/bin

источник загрузки от:http://nodejs.org/download/

cd v0.10.30/

./configure   --prefix=${HOME}/bin/nodejs

make -j8
make install

который помещает его в dir, определенный выше -- prefix

export PATH=${HOME}/bin/nodejs/bin:$PATH

NODE_PATH поэтому узел может найти dir для модулей в противном случае НПМ установить ХХХ поставит вновь установленный модуль в dir в curr dir:

export NODE_PATH=${HOME}/bin/nodejs/lib/node_modules

сделать выше и использовать синтаксис : npm install xxxxx-g всегда используйте-g для global

установка nodejs также дает вам npm:

ls -la ${HOME}/bin/nodejs/bin

Я бы рекомендовал вам установить узел.js с помощью менеджера версий, такого как nvm. Таким образом, вы убиваете двух птиц одним камнем:

  • во-первых, вы можете управлять несколькими версиями Node.js на той же машине (которую вы будет хотите сделать рано или поздно).
  • во-вторых, вы обойти все проблемы доступа, которые возникают при установке узла.JS без него. По крайней мере, это мой опыт.

в основном это так же просто как работает

$ curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash

из командной строки.