нпм ERR!код EACCESS, установив @ angular / cli - PullRequest
0 голосов
/ 25 апреля 2018

Окружающая среда:

  • Ubuntu 16.04
  • узел v8.11.1 (установлен с менеджером пакетов)
  • npm v5.6.0

После чистой установки npm и попытки установить @ angular / cli

npm install -g @angular/cli

Я получаю сообщение об ошибке, связанной с EACCESS, которая, вероятно, связана с разрешениями, поскольку исчезает с правами доступа root. Дело в том, что не рекомендуется использовать его таким образом, так как я могу решить это?

ОШИБКА консоли

$ npm install -g @angular/cli
npm WARN checkPermissions Missing write access to /usr/lib/node_modules
npm ERR! path /usr/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/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!     /home/user/.npm/_logs/2018-04-25T15_23_36_781Z-debug.log

Файл .npm / _logs / 2018-04-25T15_23_36_781Z-debug.log

2566 warn checkPermissions Missing write access to /usr/lib/node_modules
2567 verbose stack Error: EACCES: permission denied, access '/usr/lib/node_modules'
2568 verbose cwd /opt/workspace/roscam-front
2569 verbose Linux 2.6.32-042stab120.19
2570 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "@angular/cli"
2571 verbose node v8.11.1
2572 verbose npm  v5.6.0
2573 error path /usr/lib/node_modules
2574 error code EACCES
2575 error errno -13
2576 error syscall access
2577 error Error: EACCES: permission denied, access '/usr/lib/node_modules'
2577 error  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
2577 error   stack: 'Error: EACCES: permission denied, access \'/usr/lib/node_modules\'',
2577 error   errno: -13,
2577 error   code: 'EACCES',
2577 error   syscall: 'access',
2577 error   path: '/usr/lib/node_modules' }
2578 error Please try running this command again as root/Administrator.
2579 verbose exit [ -13, true ]

Ответы [ 2 ]

0 голосов
/ 12 июля 2019

У меня тоже была ошибка разрешения EACCES. Я сделал новую установку Ubuntu 18.04. Версия 16.04 может не сильно отличаться. У меня все работает Надеюсь, это поможет.

----------- ДЛЯ ВАС ВЫ ДОЛЖНЫ ПРИМЕНИТЬ ЭТОТ КОД ОТ ЗДЕСЬ

sudo apt-get install curl software-properties-common
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install nodejs
node -v
npm -v
npm init
whoami

which npm              # returned /usr/bin
npm config get prefix  # returned /usr
npm config set prefix /usr/bin
npm config get prefix
ls -la /usr/bin/npm    # has a symbolic link to ../lib/node_modules/npm/bin/npm-cli.js
sudo chown -R your_user /usr/bin/npm   # NOT /usr/bin or we lock out sudo too!!!!
sudo chown -R your_user app-folder/
ls -la /usr/bin/npm
npm init  # I was curious to see if this still works
npm install  # WORKS GREAT!!! No need for sudo now.:)

----------- ТАМ

Это случай использования, над которым я работал после того, как я установил выше. ВАМ СЛЕДУЕТ РАБОТАТЬ, ЕСЛИ ВЫШЕ ХОРОШО НАСТРОЕНО.

npm start # script
npm run start:prod  # works as well
npm i debug --save-dev     # works but need to install 'make'
sudo apt install build-essential
npm i debug --save-dev    # installed and launched successfully!

Примечание: если вы должны были установить npm i debug --global вместо вы все равно можете получить эту ошибку разрешения EACCES, поскольку ваш локальный пользователь не сможет получить доступ к корневым разрешениям в другом месте вашей файловой системы. Вот почему мы используем «изменить владельца» (т. Е. chown your_user: см. Выше в коде).

0 голосов
/ 25 апреля 2018

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

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

    mkdir ~/.npm-global
    
  2. Мы настраиваем npm для использования нового пути к каталогу:

    npm config set prefix '~/.npm-global'
    
  3. Откройте или создайте файл ~ / .profile и добавьте следующую строку:

    export PATH=~/.npm-global/bin:$PATH
    
  4. Мы обновляем ваши системные переменные:

    source ~/.profile
    

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

npm install -g jsonfile

Еще одна опция, позволяющая избежать всех этих шагов и изменить ~ / .profile, это будет путем определения переменной ENV с помощью следующей команды (:

NPM_CONFIG_PREFIX=~/.npm-global

Ссылка на npm

...