Я нахожусь на Ubuntu 20.04, и я установил узел от поспешного хранилища. Теперь, когда я пытаюсь установить угловой cli, он не позволяет мне сделать это
2020/03/28 11:51:57.975509 cmd_run.go:884: WARNING: cannot create user data directory: cannot create "/nonexistent/snap/node/2622": mkdir /nonexistent: permission denied
cannot create user data directory: /nonexistent/snap/node/2622: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @angular/cli@9.1.0 postinstall: `node ./bin/postinstall/script.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @angular/cli@9.1.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-03-28T06_22_03_201Z-debug.log
У любого есть любая идея для этого, это, похожи на проблему разрешения. Как я могу установить ng cli в мои 20,04 системы.
Попытаться выполнить команду установки с sudo? Я иногда сталкивался с этой проблемой с NPM, давая его, быстрый удар сзади с sudo обычно добивается цели.
Проблема в том, что snap не позволяет установленным пакетам snap записывать в /usr/local
. К сожалению, это расположение по умолчанию для глобальных установленных пакетов npm.
Вы можете решить эту проблему, выполнив 3 простых шага, изменив местоположение по умолчанию с глобальных установленных пакетов npm на один каталог, в котором оснастке (в данном случае узлу) разрешена запись.
Сначала мы создаем новый каталог для наших будущих глобальных установленных пакетов npm:
mkdir ~/.local/npm
Теперь нам нужно добавить новую созданную папку в наш PATH
. Для этого откройте или создайте файл ~/.bashrc
и добавьте следующую строку:
export PATH=~/.local/npm/bin:$PATH
Вы заметили новую папку /bin
и удивляетесь, почему она здесь? Npm создаст его, и он будет содержать исполняемые файлы/системные ссылки для глобальных установленных пакетов. Без него вы не сможете запустить ng
в своем терминале.
Последний шаг — переопределить глобальное расположение npm по умолчанию (npm называет это «префиксом»):
npm config set prefix '~/.local/npm'
Теперь вы можете устанавливать глобальные пакеты npm. npm install -g @angular/cli
теперь должен работать.
Чтобы проверить, все ли работает правильно, запустите ng версию
после того, как вы установили ее глобально с помощью npm.
Для ответа я использовал следующий источник: https://github.com/mixonic/docs.npmjs.com/blob/master/content/getting-started/fixing-npm-permissions.md