Я попытался установить инструмент командной строки yeoman в Ubuntu 20.04.1 LTS для разработки веб-приложений ASP.NET Core. После ввода
npm install -g yo
в терминале я получил ошибку.
Описание ошибки приведено ниже.
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: cross-spawn no longer requires a build toolchain, use it instead
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated
npm WARN checkPermissions Missing write access to /usr/local/lib
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib']
npm ERR! stack:
npm ERR! 'Error: EACCES: permission denied, access \'/usr/local/lib\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/shashankshekhar/.npm/_logs/2020-12-21T11_02_14_859Z-debug.log```
Проблема EACCES
ошибок при установке глобального модуля настолько распространена, что у npm
есть целая веб-страница, посвященная решению именно этой проблемы.
Поскольку вы устанавливаете yoman, я думаю, что это машина для разработки. В этом случае лучше всего установить node
/npm
с помощью менеджера пакетов, такого как nvm.
Одна вещь, которую вы не хотите делать, но которую люди часто предлагают, — это запустить команду npm
с sudo
. Люди рекомендуют это, потому что это легко. Но если вы это сделаете, все сценарии жизненного цикла (например, postinstall
) зависимостей того, что вы устанавливаете, также будут запускаться как root
. Это потенциально много ненадежного кода, работающего как root
.
sudo npm установить -g лет?