Что может быть причиной ошибки Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
?
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log
Ответы:
изменить права доступа к файлу .. как это
сначала проверьте, кто владеет каталогом
он запрещает доступ, потому что папка node_module принадлежит пользователю root
так что это нужно изменить, изменив root на вашего пользователя, но сначала запустите команду ниже, чтобы проверить вашего текущего пользователя. Как я могу получить имя активного пользователя через командную строку в OS X?
ИЛИ
whoami
затем смените владельца
ИЛИ
ИЛИ
источник
sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules
. Чтобы правильно перечислить название группы я сделалid -gn myuser
.illegal group name
. Поэтому я изменил команду на,sudo chown -R ownerName: /usr/local/lib/node_modules
и это сработало.chown
. github.com/nvm-sh/nvmЧтобы минимизировать вероятность ошибок разрешений, вы можете настроить npm для использования другого каталога. В этом примере вы создадите и будете использовать скрытый каталог в вашем домашнем каталоге.
Сделайте резервную копию вашего компьютера. В командной строке в своем домашнем каталоге создайте каталог для глобальных установок:
mkdir ~/.npm-global
Настройте npm для использования нового пути к каталогу:
npm config set prefix '~/.npm-global'
В предпочитаемом вами текстовом редакторе откройте или создайте
~/.profile
файл и добавьте эту строку:
export PATH=~/.npm-global/bin:$PATH
В командной строке обновите системные переменные:
source ~/.profile
Чтобы протестировать новую конфигурацию, установите пакет глобально, не используя sudo
источник
npm config set prefix
(особенно если вы пишете установщик без полномочий root), вы можете переопределитьPREFIX
env var или предоставить--prefix
параметр, оба из которых эквивалентныnpm config set prefix
. (не уверен, что переопределяет, какой)Все, что вам нужно сделать, это добавить пользователя USER владельцу / local / lib
источник
chown
вы рискуете разрушить структуру разрешений всей вашей файловой системы.sudo chmod -R 777 /
.попробуйте добавить sudo перед любой командой, которую вы пытаетесь.
вот так: sudo npm install
Использование sudo с командой в Linux / UNIX обычно повышает ваши права доступа до уровня суперпользователя. В Windows учетная запись суперпользователя обычно называется «Администратор». В Linux / Unix учетная запись суперпользователя обычно называется «root».
Пользователь root имеет право доступа, изменения или удаления практически любого файла на вашем компьютере. Обычные учетные записи пользователей могут получать доступ, изменять или удалять гораздо меньше файлов. Ограничения обычной учетной записи защищают ваш компьютер от несанкционированных или вредоносных программ или пользователей. Некоторые процессы требуют от вас выполнения действий с файлами или папками, к которым у вас обычно нет прав доступа. Установка программы, к которой имеет доступ каждый, - это одно из следующих действий.
В вашем случае запуск команды установки с помощью sudo дает вам права суперпользователя и позволяет вам изменять файлы, которые ваш обычный пользователь не имеет прав на изменение.
источник
Я попытался найти решение ответа @okanda, но у меня это не получилось.
Тем не менее, он отлично работал, когда я сделал это для нескольких папок, как указано в этой теме: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493
источник
При установке глобальных пакетов в Ubuntu вам необходимы специальные разрешения на запись во время записи в
usr/bin
папку. Это из соображений безопасности. Итак, каждый раз, когда вы устанавливаете глобальный пакет, используйте:Для вашего конкретного случая это будет:
источник
Похоже, вы столкнулись с проблемами разрешения. Если вы устанавливаете,
npm-packages
то, возможно, вы получаете сообщениеEACCES
об ошибке при попытке установить пакет глобально. Это означает, что у вас нет разрешения на запись в каталогиnpm
используемые для хранения глобальных пакетов и команд.Попробуйте выполнить команды:
sudo chmod u+x -R 775 ~/.npm
и ,sudo chown $USER -R ~/.npm
или вы можете просто запустить любуюnpm
команду сsudo
, которые должны получить решить вашу проблему.Если вы устанавливаете
npm-package
локально, то вы должны находиться в локальном каталоге проекта и попробоватьsudo npm install <pkg-name>
выполнить команду для установки необходимого пакета. Цель использованияsudo
состоит в том, что это изменит ваши права владельца, так что вы можете дать текущему пользователю разрешение на запуск.npm
команд.Я бы порекомендовал вам взглянуть на https://docs.npmjs.com/getting-started/fixing-npm-permissions
источник
Я пытался установить реагировать экспо и кроме sudo мне пришлось добавить --unsafe-perm
как это. Это решает мою проблему
источник
Вы можете установить npm через менеджер версий Node или установщик Node. В документах указано:
Так как у вас есть ошибка разрешения , вы, вероятно, установили npm через установщик Node, и теперь вам нужно переустановить его с помощью nvm (менеджера версий узлов).
К счастью, это очень просто. Вам даже не нужно удалять текущую версию npm или Node.js.
Все, что вам нужно сделать, это
Установите NVM. Для OSX или Linux Node используйте:
Это создаст папку nvm в вашем домашнем каталоге.
затем
Установите npm и node.js через nvm. Для этого просто позвоните
Теперь вы можете установить свой пакет глобально, не используя
sudo
или не меняя владельцаnode_modules
вusr
папке.источник
fish
того, чтобы работать должным образом NVM потребности рыбы-обертка github.com/FabioAntunes/fish-nvmЕсли вы столкнулись с этой проблемой на вашем Mac. Следуй этим шагам
Сначала проверьте, кто является владельцем этого файла, с помощью команды ниже
Вы найдете файл, как показано ниже, один из них ниже
Вы заметили, что указанный выше файл принадлежит пользователю root, для внесения изменений внутри вам потребуется изменить владельца пути.
с помощью этой команды вы можете проверить, кто является текущим пользователем
и затем вы можете изменить, вызвав эту команду (просто замените ваше имя пользователя на ownerName)
в моем случае, как вы знаете, пользователь "Ямсоль", я буду вызывать эту команду таким образом
Это оно.
источник
Будьте осторожны со всеми ответами, которые меняют владельца всех каталогов в / usr / local По сути, не путайте систему linux !!!
Я думаю, что лучше всего использовать собственную папку для поиска всех глобальных пакетов: https://www.competa.com/blog/how-to-run-npm-without-sudo/
источник
Используйте эту команду для установки
npm
в качестве пользователя sudo:вместо npm установите -g create-Reaction-a pp.
источник
Я смог решить эту проблему, используя следующие в Mac.
источник
Для пользователей nvm
и
замените
v8.9.1
версией вашего узла, которую вы используете.источник
sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules
Похоже, вы пытались установить пакет npm глобально, а не локально, как
man npm install
описано ниже:Обычно, когда вы настраиваете проект npm (среди многих других, которые у вас могут быть), не стоит устанавливать пакеты в глобальные модули Node.js (/ usr / local / lib / node_modules), как ваш журнал отладки. предложил.
Вместо использования
-g
используйте--save
, что автоматически сохранит пакет как зависимость для вашегоpackage.json
файла:Как это:
Но, как упоминалось в других ответах, если вы собираетесь использовать
-g
, вы должны использоватьsudo
( если ваш пользователь имеет привилегии sudo: см. / Etc / sudoers ) при выполненииnpm install express-generator -g
, но на самом деле, это не очень хорошая идея, возможно, вызывает проблемы с разрешениями.УВЕДОМЛЕНИЕ
Существуют инструкции по установке
express-generator
с-g
параметром, чтобы скрипт былexpress-cli.js
доступен по системному пути, но вы также можете использовать локально установленный скрипт, расположенный в проектеnode_modules
if ваш npm:ИМХО, использование
-g
(также использованиеsudo
) похоже на hic sunt dracones , если вы не уверены в последствиях.Для дополнительной информации:
источник
Это произошло из-за
npm
невозможностиnode_modules
локального доступа к вашему глобальному каталогу.например
устраняет проблему, теперь вы можете запустить команду, которую вы запустили снова.
источник
Просто вы можете сменить владельца или просто использовать sudo перед тем, как выполнить команду
sudo chown -R [owner]:[owner] /usr/local/lib/node_modules
( сменить владельца )или
Это оно.
источник
Для Linux / Ubuntu, если команда
npm install -g <package_name>
Исправлено: установка с правами root
sudo npm install <package_name> -g
источник
Вам нужно разрешение уровней суперпользователя, чтобы установить React. В Linux / Unix учетная запись суперпользователя обычно называется «root».
Чтобы получить привилегию суперпользователя, просто запустите следующую команду на своем терминале:
а затем просто запустите команду для установки React:
Однако командаactjs рекомендует нам использовать следующую команду вместо установки глобального пакета.
источник
create-react-app
нужны права root для установки в качестве глобальных пакетов; в противном случае вы не сможете установить его. Однако командаactjs рекомендует нам использовать следующую командуnpx create-react-app app_name
вместо установки глобального пакета.sudo chown -R $ USER / usr / local / lib / node_modules
источник
Помогло только это:
источник
После долгих исследований я понял, что для установки Mac OS ничего не требуется, просто установите
sudo npm install -g @angular/cli
ваш терминал, введите пароль и введите его. Это сработало для меня.источник
Аналогично ответу ПОши, но это то, что у меня сработало на Ubuntu 19
По этой ссылке
https://github.com/inconshreveable/ngrok/issues/429
источник
Если вы работаете в Linux (то есть: Arch)
По умолчанию эта команда устанавливает пакет в / usr / lib / node_modules / npm и для этого требуется права суперпользователя.
Разрешить общедоступные установки
Чтобы разрешить глобальные установки пакетов для текущего пользователя, установите
npm_config_prefix
переменную среды. Это используется и нпм и пряжи.Заново войдите в систему или используйте источник, чтобы обновить изменения.
Вы также можете указать
--prefix
параметр дляnpm install
. Однако это не рекомендуется, так как вам нужно будет добавлять его каждый раз при установке глобального пакета.Таким образом, вам не нужно жевать разрешение папки
источник
Просто добавьте "sudo" перед командой npm. Это оно.
источник
Я смог избавиться от этой проблемы, установив
nvm
, а затем установив узел на последнюю версию.nvm
с помощьюcurl
(для последней версии перейдите на nvm.sh )Выполнив приведенные выше команды, вы сможете установить реакцию / угол в Ubuntu.
источник
Используйте 'sudo npm install xyz', это будет работать.
источник
Я использовал sudo, но это не решило проблему, я исправил проблему, изменив разрешение папки node_modules,
Если вы хотите, вы можете заменить 777 любым другим кодом, если вы не устанавливаете разрешение для всех пользователей / групп.
источник
Для тех из вас, все еще не может решить проблему после использования вышеупомянутых решений. Попробуй это
Это должно сработать, ура!
источник