DevGang
Авторизоваться

Как исправить ошибку запуска NPM без sudo?

Если вы сталкиваетесь с ошибками при использовании npm без sudo, это может быть связано с проблемами с разрешениями. Обычно это происходит, когда npm пытается установить пакеты или изменить файлы в каталогах, где у текущего пользователя недостаточно разрешений. Выполнение команд npm с помощью sudo повышает привилегии и позволяет npm выполнять требуемые операции, но это может привести к уязвимостям в системе безопасности и неожиданному поведению вашего проекта. В этом руководстве мы рассмотрим различные способы устранения ошибок, связанных с правами доступа npm, без использования sudo.

Исправление ошибки запуска NPM без использования sudo

Мы можем исправить ошибки с правами доступа npm многими способами, такими как установка Node.js с помощью NVM, управление разрешениями для каталога и глобальная переустановка модуля NPM с правами root. Давайте рассмотрим каждый из них подробно, один за другим.

1. Установка Node.js с помощью NVM

NVM (Node Version Manager) - это инструмент, который позволяет разработчикам устанавливать столько версий Node, сколько им требуется, не имея прав суперпользователя. Прежде чем выполнять описанные ниже действия, удалите текущую установку NPM.

  • Чтобы удалить все глобальные модули Node, выполните в терминале следующую команду:
npm uninstall -g $(npm ls -g --depth=0 | awk '/\/npm\// {print $1}')

Это гарантирует отсутствие конфликтующих пакетов перед установкой Node.js с помощью NVM.

Далее выполните следующие действия, чтобы установить NVM в вашей системе.

  • Чтобы установить NVM, запустите следующую команду в вашем терминале:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

Приведенная выше команда загрузит и выполнит установочный скрипт NVM, а также настроит NVM в вашей системе.

После того, как вы установили NVM, закройте и снова откройте свой терминал, чтобы убедиться, что изменения произошли. Этот шаг важен для определения терминалом команды NVM.

  • Убедитесь, что NVM установлен правильно, выполнив:
nvm --version

Если он был установлен, вы увидите версию nvm в качестве выходных данных на консоли

  • Чтобы установить node после установки NVM, выполните следующую команду:
nvm install stable

Когда вы закончите с вышеизложенным, попробуйте выполнить npm link или глобальную установку NPM, и вы увидите, что для работы больше не требуются права root.

2. Управление разрешениями

Изменение владельца гарантирует, что у вас есть необходимые разрешения для работы с пакетами и каталогами npm. Это может устранить ошибки, связанные с разрешениями, при использовании npm.

Для этого выполните следующие действия:

  • Откройте приложение терминала.
  • Выполните приведенную ниже команду, которая сделает вас владельцем всех папок в ~/.npm.
sudo chown -R $(whoami) ~/.npm-global

При появлении запроса введите свой системный пароль для авторизации смены владельца. После этого попробуйте установить или выполнить поиск в NPM еще раз и проверьте, не устранена ли проблема. Если проблема не устраняется, рассмотрите возможность использования приведенного ниже решения.

3. Глобальная переустановка модулей NPM с правами суперпользователя

Настроив npm для выполнения глобальной установки для конкретного пользователя без использования sudo, вы можете избежать проблем с правами доступа и обеспечить бесперебойную установку пакетов npm.

  • Создайте каталог для глобальных пакетов.:
$ mkdir "${HOME}/.npm-packages"
  • Добавьте это в конец файла ~/.npmrc:
prefix=${HOME}/.npm-packages
  • Затем перейдите к файлам .bashrc или .zshrc и добавьте:
NPM_PACKAGES="${HOME}/.npm-packages"
PATH="$NPM_PACKAGES/bin:$PATH"
unset MANPATH 
export MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

После этого, когда вы устанавливаете пакеты npm глобально с помощью -g, их можно запускать из командной строки без использования sudo.

Вывод

Следуя шагам, описанным в этом руководстве, вы сможете успешно отлаживать npm, не полагаясь на sudo, обеспечивая бесперебойную и безопасную разработку. Независимо от того, устанавливаете ли вы Node.js с помощью NVM, получаете доступ к соответствующим каталогам или управляете глобальными пакетами npm, эти решения не позволяют разработчикам решать проблемы, связанные с правами доступа, и оптимизировать свои среды разработки. Мы надеемся, что вам понравилось.

Источник:

#NodeJS
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу