Как установить Node.JS на Amazon Linux
Я видел рецензию на использование yum для установки зависимостей, а затем на установку Node.JS & NPM из исходного кода. Хотя это работает, я чувствую, что Node.JS и NPM должны быть где-то в публичном репо.
Как я могу установить Node.JS и NPM одной командой в AWS Amazon Linux?
22 ответа
Наткнулся на это, было странно трудно найти позже. Выкладываю сюда для потомков:
sudo yum install nodejs npm --enablerepo=epel
РЕДАКТИРОВАТЬ 3: По состоянию на июль 2016 года, EDIT 1 больше не работает для nodejs 4 (и EDIT 2 также не работает). Этот ответ ( /questions/3611497/kak-ustanovit-nodejs-na-amazon-linux/3611505#3611505) дает истинную однострочность.
РЕДАКТИРОВАТЬ 1: Если вы ищете nodejs 4, попробуйте репозиторий EPEL:
sudo yum install nodejs --enablerepo=epel-testing
РЕДАКТИРОВАТЬ 2: Для обновления с nodejs 0.12, установленной через репозиторий EPEL, используя указанную выше команду, до nodejs 4 из репозитория EPEL, выполните следующие действия:
sudo yum rm nodejs
sudo rm -f /usr/local/bin/node
sudo yum install nodejs --enablerepo=epel-testing
Более новые пакеты помещают двоичные файлы узла в /usr/bin
, вместо /usr/local/bin
,
И немного предыстории:
Опция --enablerepo=epel
причины yum
искать пакеты в репозитории EPEL.
EPEL (Extra Packages for Enterprise Linux) - это проект с открытым исходным кодом и бесплатный репозиторий для сообщества, разработанный командой Fedora, который предлагает 100% высококачественные дополнительные программные пакеты для дистрибутива Linux, включая RHEL (Red Hat Enterprise Linux), CentOS и Scientific Linux. Проект Epel не является частью операционной системы RHEL/Cent, но он предназначен для крупных дистрибутивов Linux, предоставляя множество пакетов с открытым исходным кодом, таких как сетевое взаимодействие, системное администрирование, программирование, мониторинг и так далее. Большинство пакетов epel поддерживаются репо Fedora.
Через http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
Как и другие, принятый ответ также дал мне устаревшую версию.
Вот еще один способ сделать это, который работает очень хорошо:
$ curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
$ yum -y install nodejs
Вы также можете заменить 10.x другой версией, например, 8.x и т. Д.
Вы можете увидеть все доступные версии на странице NodeSource Github и при желании вытащить их оттуда.
Принятый ответ дал мне нод 0.10.36 и npm 1.3.6, которые очень устарели. Я взял последний архив linux-x64 со страницы загрузок nodejs, и его было не сложно установить: https://nodejs.org/dist/latest/.
# start in a directory where you like to install things for the current user
(For noobs : it downloads node package as node.tgz file in your directlry)
curl (paste the link to the one you want from the downloads page) >node.tgz
Теперь распакуйте архив, который вы только что скачали.
tar xzf node.tgz
Запустите эту команду, а затем добавьте ее в свой .bashrc
:
export PATH="$PATH:(your install dir)/(node dir)/bin"
(пример: export PATH ="$PATH:/home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")
И обновить npm
(только один раз, не добавляйте в .bashrc
):
npm install -g npm
Обратите внимание, что -g
там, что означает глобальный, действительно означает глобальный для того экземпляра npm, который является экземпляром, который мы только что установили, и ограничен текущим пользователем. Это будет применяться ко всем пакетам, которые npm устанавливает "глобально".
Простая установка с NVM...
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
nvm install node
Процедура, которая работала для меня (следуя этим довольно старым инструкциям с несколькими обновлениями):
- проверьте, git установлен
git --version
или установите его через:sudo yum install git
- установить gcc и openssl:
sudo yum install gcc-c++ make
sudo yum install openssl-devel
- клонировать репозиторий git в каталог с именем
node
(который вы можете удалить позже):git clone https://github.com/nodejs/node.git
- решить, какую версию узла вы хотите на https://github.com/nodejs/node/releases
- перейти в только что созданный каталог узлов и установить узел
cd node
git checkout v6.1.0
- поставьте желаемую версию послеv
./configure
make
sudo make install
- проверить, что узел установлен / работает с любым
node --version
или простоnode
(выйти из узла черезprocess.exit()
или же^C
х 2 или^C
+exit
) - проверьте версию npm:
npm --version
и обновить при необходимости черезsudo npm install -g npm
- Необязательно: удалите
node
каталог сrm -r node
Заметки:
- Принятый ответ не работал с
sudo yum install nodejs --enablerepo=epel-testing
возвращает ошибку:No package nodejs available.
...а такжеsudo yum install nodejs --enablerepo=epel
(т.е. без-testing
) дал только очень старые версии. - Если у вас уже установлена старая версия узла, вы можете удалить ее:
sudo npm uninstall npm -g
... так как npm может удалить себяsudo yum erase nodejs
sudo rm -f /usr/local/bin/node
(sudo yum rm nodejs
в принятом ответе не будет работать какrm
не является допустимой командой yumyum --help
) - Можно клонировать репо через
git clone git://github.com/nodejs/node.git
скорее, чемgit clone https://github.com/nodejs/node.git
но вы можете получить различные ошибки (см. здесь). - Если у вас уже есть
/node
dir из предыдущей установки, удалите его перед использованием команды git clone (или возникнет конфликт):rm -r node
- Если у вас есть проблемы с любым
sudo npm...
команда - какsudo: npm: command not found
и / или есть проблемы с разрешениями при установке пакетов узлов без sudo, отредактируйтеsudo nano /etc/sudoers
и добавить:/usr/local/bin
до конца строкиDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
так что читаетDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
Кажется, никто не упоминает об этом. В Amazon Linux 2 официальный способ загрузки EPEL:
sudo amazon-linux-extras install epel
... тогда вы можете:
sudo yum install nodejs
Для версии v4 LTS используйте:
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs
Для Node.js v6 используйте:
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs
Я также столкнулся с некоторыми проблемами при попытке установить собственные дополнения в Amazon Linux. Если вы хотите сделать это, вы также должны установить инструменты сборки:
yum install gcc-c++ make
Я только сталкивался с этим. Я попробовал несколько наиболее популярных ответов, но в итоге мне помогло руководство по быстрой настройке Amazon.
Учебник. Настройка Node.js в экземпляре Amazon EC2
Суть учебника:
- Убедитесь, что вы ssh'd на экземпляр.
- Захватить нвм:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
- активный
. ~/.nvm/nvm.sh
- Установить узел с помощью nvm
nvm install 4.4.5
(ПРИМЕЧАНИЕ. Вы можете выбрать другую версию. Сначала проверьте удаленные версии, запустив$ nvm ls-remote
) - Наконец, проверьте, правильно ли вы установили узел узла, запустив
$ node -e "console.log('Running Node.js' + process.version)"
Надеюсь, это поможет следующему человеку.
RHEL, CentOS, CloudLinux, Amazon Linux or Fedora:
# As root
curl -fsSL https://rpm.nodesource.com/setup_12.x | bash -
# No root privileges
curl -fsSL https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs
Я установил Node.js 6.x и хотел установить Node.js 8.x.
Вот команды, которые я использовал (взяты с сайта Nodejs с несколькими дополнительными шагами для обработки кэшированных данных yum):
sudo yum remove nodejs
: Удалить Node.js 6.x (я не знаю, было ли это необходимо или нет)curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum clean all
sudo yum makecache
: Восстановить кэш метаданных (этого не было в документации, но yum продолжал безуспешно пытаться установить Node.jx 6.x, пока я не выполнил эти две последние команды)sudo yum install nodejs
: Установите Node.js 8.x
sudo yum install nodejs npm --enablerepo=epel
работает на Amazon Linux AMI
,
curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs
работает на RedHat.
МАЙ 2022 г.
Я потратил слишком много времени на это. Моя конфигурация Amazon Linux 2, работающая от имени пользователя root.
#!/usr/bin/env zsh
# https://stackoverflow.com/questions/11542846/nvm-node-js-recommended-install-for-all-users
echo "=================================N=O=D=E========================================"
cd /usr/local/bin || exit 90
git clone https://github.com/nvm-sh/nvm.git .nvm
\. "/usr/local/bin/.nvm/nvm.sh"
nvm install --lts
node -e "console.log('Running Node.js ' + process.version)"
cat << "EOF" > /etc/profile.d/npm.sh
#!/usr/bin/env bash
export NVM_DIR="/usr/local/bin/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'}
EOF
chmod 755 /etc/profile.d/npm.sh
npm install -g npm
Официальная документация для EC2-экземпляра работает для меня: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
1. curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
2. . ~/.nvm/nvm.sh
3. nvm ls-remote (=> find your version x.x.x =>) nvm install x.x.x
4. node -e "console.log('Running Node.js ' + process.version)"
Самое простое решение - это (сделать это как root)
sudo su root
cd /etc
mkdir node
yum install wget
wget https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
tar -xvf node-v9.0.0-linux-x64.tar.gz
cd node-v9.0.0-linux-x64/bin
./node -v
ln -s /etc/node-v9.0.0-linux-x64/bin/node node
https://nodejs.org/en/download/package-manager/
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs
Как упоминалось другими, используя
epel
дает действительно устаревшую версию, вот небольшой скрипт, который я написал вместо этого, чтобы добавить в конвейер CI или передать его в ec2
user-data
чтобы установить последнюю версию узла, просто замените
version
с тем, что вы хотите, и подходящим
distro
Linux, который вы используете.
Следующий пример для amazon-Linux-2-AMI
#!/bin/bash
version='v14.13.1'
distro='linux-x64'
package_name="node-$version-$distro"
package_location="/usr/local/lib/"
curl -O https://nodejs.org/download/release/latest/$package_name.tar.gz
tar -xvf $package_name.tar.gz -C $package_location
rm -rfv $package_name.tar.gz
echo "export PATH=$package_location/$package_name/bin:\$PATH" >> ~/.profile
если вы хотите протестировать его в той же оболочке, просто запустите
. ~/.profile
Обычно я использую NVM для установки узла на сервере. Это дает мне возможность установить несколько версий nodejs. Команды приведены ниже
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | трепать
затем проверьте, правильно ли он установлен
команда -v nvm
после этого запустите это, чтобы установить последнюю версию
узел установки nvm
или же
nvm install 11
Для тех, кто хочет, чтобы принятый ответ был запущен в Ansible без дальнейших поисков, я опубликую задачу здесь для удобства и дальнейшего использования.
Принятый ответ рекомендации: /questions/3611497/kak-ustanovit-nodejs-na-amazon-linux/3611505#3611505
Эквивалент задачи
tasks:
- name: Setting up the NodeJS yum repository
shell: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
args:
warn: no
# ...
Для тех, кто все еще сталкивается с этой проблемой, верхний ответ больше не помогает, поскольку узел устарел от старого способа установки.
Для Amazon Linux эта часть документации по распределению узлов мне помогла. Для узла 20:
sudo yum install https://rpm.nodesource.com/pub_20.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y
sudo yum install nodejs -y --setopt=nodesource-nodejs.module_hotfixes=1
Как указано в официальной документации, просто ниже 2 шагов -
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
Вы можете обновить / установить узел, переустановив установленный пакет до текущей версии, что может избавить нас от множества ошибок при выполнении обновления.
Это делается с помощью команды nvm. Здесь я обновил версию своего узла до 8 и переустановил все доступные пакеты до версии 8!
nvm i v8 --reinstall-packages-from=default
Он работает и на экземпляре AWS Linux.
Как указано в документации Amazon (Настройка Node.js на экземпляре Amazon EC2 ), просто выполните следующие команды:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install --lts
Сделанный!