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
из командной строки.