Как установить 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

Заметки:

  1. Принятый ответ не работал с sudo yum install nodejs --enablerepo=epel-testing возвращает ошибку: No package nodejs available.
    ...а также sudo yum install nodejs --enablerepo=epel (т.е. без -testing) дал только очень старые версии.
  2. Если у вас уже установлена ​​старая версия узла, вы можете удалить ее:
    sudo npm uninstall npm -g... так как npm может удалить себя
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    (sudo yum rm nodejs в принятом ответе не будет работать как rm не является допустимой командой yum yum --help)
  3. Можно клонировать репо через git clone git://github.com/nodejs/node.git скорее, чем git clone https://github.com/nodejs/node.gitно вы можете получить различные ошибки (см. здесь).
  4. Если у вас уже есть /node dir из предыдущей установки, удалите его перед использованием команды git clone (или возникнет конфликт):
    rm -r node
  5. Если у вас есть проблемы с любым 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

См. Дополнительная библиотека (Amazon Linux 2)

Для версии 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

Суть учебника:

  1. Убедитесь, что вы ssh'd на экземпляр.
  2. Захватить нвм: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. активный . ~/.nvm/nvm.sh
  4. Установить узел с помощью nvm nvm install 4.4.5 (ПРИМЕЧАНИЕ. Вы можете выбрать другую версию. Сначала проверьте удаленные версии, запустив $ nvm ls-remote)
  5. Наконец, проверьте, правильно ли вы установили узел узла, запустив $ 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):

  1. sudo yum remove nodejs: Удалить Node.js 6.x (я не знаю, было ли это необходимо или нет)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: Восстановить кэш метаданных (этого не было в документации, но yum продолжал безуспешно пытаться установить Node.jx 6.x, пока я не выполнил эти две последние команды)
  5. 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

Сделанный!

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