Sudo не работает для узла и установки NPM [дубликат]

У меня возникли проблемы с моим Сервер Ubuntu (экземпляр EC2), на который я установил NVM (Диспетчер версий узлов) от имени пользователя по умолчанию ubuntu , которого вам предоставляет Amazon (также рекомендуемая установка), а затем установил узел с версией npm через NVM по следующему пути,

$which node
/home/ubuntu/.nvm/versions/node/v6.12.3/bin/node

$which npm
/home/ubuntu/.nvm/versions/node/v6.12.3/bin/npm

с $ PATH, равным:

PATH=/home/ubuntu/bin:/home/ubuntu/.local/bin:/home/ubuntu/.nvm/versions/node/v6.12.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

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

  1. Issue spe В частности, для Ubuntu, где «узел» связан с другим пакетом, поэтому нужно было использовать «nodejs»?
  2. nvm, node и npm должны быть установлены с sudo , чтобы доступ к пути можно было получить root

sudo ошибки:

sudo npm install
sudo: npm: command not found

sudo node run
sudo: node: command not found

Вот дополнительные переменные среды, которые могут быть полезны:

HOME=/home/ubuntu
NVM_DIR=/home/ubuntu/.nvm
USER=ubuntu

Сообщение об ошибке, отправленное из журналов развертывания:

[stderr]/usr/bin/env: ‘node’: No such file or directory
0
задан 11 July 2018 в 17:07

1 ответ

AWS сделал некоторое переделывание нормальной установки так, чтобы можно было сделать, npm устанавливают глобальные пакеты, не делая sudo. Обычно npm и узел идут с nodejs пакетом в Ubuntu, и они установлены на/usr/bin, и глобальные модули узла помещаются в/usr/lib/node_modules.

После установки nodejs в Ubuntu 18.04 можно проверить, где они расположены.

$ dpkg -S /usr/bin/npm
nodejs: /usr/bin/npm

$ dpkg -S /usr/bin/node
nodejs: /usr/bin/node

$ dpkg -L nodejs
<output very long and not included here>

Я предложил бы не использовать sudo, если Вы хотите придерживаться с тем, как AWS хотела, чтобы Вы отравились большой дозой наркотика вещи, указав-g в установке пакета. С другой стороны, можно установить nodejs из Ubuntu нормальный repo и использовать sudo каждый раз, когда необходимо установить npm пакеты, такие как дача, большой глоток, чтобы быть доступными глобально.

Отредактированный: Если Вы хотите использовать последний nodejs в более старой версии Ubuntu, например, 16.04, следуйте инструкциям от nodejs.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

Последний шаг позволяет основной компиляции работать, когда Вы делаете установку npm. Я предполагаю, что ответ на Ваш исходный вопрос - то, что sudo не будет работать, потому что nvm среда является установкой для человечности, и sudo портит его.

1
ответ дан 28 October 2019 в 08:59

Другие вопросы по тегам:

Похожие вопросы: