Я задавался вопросом, чем целью передать по каналу загруженный файл curl
в sudo -E bash -
в следующей оболочке:
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
Это - короткий способ выполнить сценарий, не имея необходимость сохранить файл и затем выполнить его. Когда Вы сохранили файл и затем выполняете его, много вещей могут пойти не так, как надо:
sh foo.sh
вместо bash foo.sh
) ./foo.sh
) и забыл устанавливать, выполняют полномочия sudo
Путем обеспечения единственной командной строки для выполнения, разработчики могут сократить число мест, где вещи могут пойти не так, как надо из-за ошибки неопытного пользователя.
Лично, я презираю завихрение передачи по каналу для избиения. Это не безопасно.
Эта команда загрузила бы файл и попыталась бы выполнить его с полномочиями пользователя root.
Согласен с @muru, вам не следует выполнять какой-то случайный скрипт bash из Интернета.
Для установки NPM и Node.js лучше загрузить двоичный файл с Загрузить | Node.js и следуйте официальным инструкциям проекта Node.js.
Разархивируйте двоичный архив в любой каталог, в который вы хотите установить Node, я использую /usr/local/lib/nodejs
.
sudo mkdir -p /usr/local/lib/nodejs
# вместо XX используйте номер версии, которую вы скачали
sudo tar -xJvf node-XX-XX.tar.xz -C /usr/local/lib/nodejs
Откройте ~/.profile
, добавьте ниже в конец
# Nodejs
VERSION=vXX.XX.0 # <--- Ставьте скачанную версию
ДИСТРО=linux-x64
экспорт PATH=/usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin:$PATH
Обновить профиль
. ~/.профиль
Проверить, работает ли он
node -v
нпм-версия