Подтвердить что ты не робот

Gyp WARN EACCES пользователь "root" не имеет разрешения на доступ к dev dir

Попытка

sudo npm install protractor -g

и повторите ту же самую известную ошибку/предупреждение (googled to no help):

gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/dmitrizaitsev/.node-gyp/0.12.0"

Похоже, что node version 0.12.0 загружается и перестраивается снова и снова во время одной и той же установки, несмотря на то, что на моем компьютере находится текущая версия node:

node -v
v0.12.0

Вопросы:

  • На самом деле отсутствует каталог "/Users/dmitrizaitsev/.node-gyp/0.12.0"! Почему такое вводящее в заблуждение сообщение?

  • Почему этот каталог не был создан ни во время node v0.12.0, ни во время предыдущей успешной перестройки с node-gyp?

  • (Очевидно) Как я могу предотвратить это?

Я запускаю Mac OSX 10.8.5, если это имеет какое-то значение.

4b9b3361

Ответ 1

UPDATE. Существует лучший способ: изменить глобальный каталог npm по умолчанию на пользовательский подкаталог, к которому у вас уже есть правильные разрешения, поэтому не нужно возиться с правами системного файла или правами собственности на первом месте.

Как рекомендовано в https://docs.npmjs.com/getting-started/fixing-npm-permissions:

  • Создайте каталог для глобальных установок:
mkdir ~/npm-global
  1. Настройте npm для использования нового пути к каталогам:
npm config set prefix '~/npm-global'
  1. Откройте или создайте файл ~/.profile (или ~/.bash_profile и т.д.) и добавьте эту строку (в конце файла):
export PATH=~/npm-global/bin:$PATH

См. также руководство Sindre Sorhus по теме: https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md


Теперь поняли, что не так:

В каталоге были неправильные разрешения - он не был доступен для записи (что было бы лучшим сообщением об ошибке, чем "доступно" ).

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

Решение состоит в том, чтобы установить права пользователя с помощью

sudo chown -R $USER <directory>

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

Подробнее см. здесь.

Ответ 2

Попробуйте:

sudo npm install -g module - unsafe-perm

Ответ 3

Это потому, что у вас нет папки в этом каталоге "/Users/dmitrizaitsev/.node-gyp/0.12.0".

Просто создайте новую папку с именем 0.12.0 , которая является номером версии вашего node

Он устранит проблему.