На этот вопрос уже есть ответ здесь:
У меня возникли проблемы с моим Сервер 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
или узле
и после некоторых исследование Мне любопытно, связано ли это с одной из следующих причин или я чего-то не замечаю.
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
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 портит его.