Основная проблема заключается в том, что глобальная установка пакетов с npm
связывает их в каталоги под /usr/local/
, которые обычно принадлежат пользователю root.
Node Version Manager (nvm) это один из способов обойти такие хитрые проблемы с разрешениями.Это позволяет глобально установленным пакетам связываться с каталогами в вашей домашней папке под ~/.nvm/versions/node/<version>
Используя мой менеджер пакетов, я удалил node
и соответствующее программное обеспечение, такое как npm
.
Iиспользовал find /usr/local/ -name 'node_modules'
для поиска /usr/local/
для любых остатков пакетов, которые я ранее установил глобально с npm
.Удалите их все.
Затем я установил nvm
, используя последний установочный скрипт из https://github.com/creationix/nvm
В моем случае это было
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Я должен был затем связатьnvm
в моем окружении.В моем случае это означало ручное редактирование моего .bashrc
профиля, чтобы включить это:
export NVM_DIR="/home/zack/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
Оттуда я был готов получить самую последнюю версию LTS узла через nvm
nvm install --lts
Теперь глобально установленные пакеты можно устанавливать без sudo
, поскольку они хранятся в ~/.nvm/versions/node/v10.14.2/
и все работает отлично!