Установка NPM на AWS EC2

Работаю над Ec2 на AWS.

Я установил Node.js, и он отлично работает.

Но проблема возникает при попытке установить npm.

Я использую следующую команду для его установки:

sudo curl http://npmjs.org/install.sh | sh

Но установка, кажется, зависает... Я получаю "выборку: http://registry.npmjs.org/npm/-/npm-1.0.106.tgz" в командной строке, и он остается таким.

Есть идеи, что здесь происходит?


person dade    schedule 20.11.2011    source источник
comment
Иногда реестр не работает. Посетите эту страницу: npmjs.org/doc/faq.html.   -  person malletjo    schedule 21.11.2011
comment
попробуйте node.js v. 0.4.12 похожая проблема aws-ec2-why" title="node js старше 0 4 12 неправильно работает на aws ec2, почему"> stackoverflow.com/questions/8117446/   -  person Bart    schedule 27.11.2011
comment
Убедитесь, что HTTPS (порт 443) разрешен в исходящей группе безопасности экземпляра.   -  person YanivN    schedule 19.06.2019
comment
@dade Можете ли вы обновить этот вопрос и отметить правильный ответ на сегодняшний день? Это должно было бы использовать NVM, как указал Дерек в комментарии stackoverflow.com/a/44509677/3117194.   -  person John C    schedule 19.11.2019


Ответы (9)


Следуйте этому Учебное пособие по AWS, в котором используется Диспетчер версий узла.

Node Version Manager (NVM) позволяет установить несколько версий Node.js и переключаться между ними.


Вот шаги:

Установить энергонезависимую память

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash

Активировать энергонезависимую память

. ~/.nvm/nvm.sh

Установить узел (выбрать версию)

nvm install 4.4.5

Подтвердите успешную установку

node -e "console.log('Running Node.js ' + process.version)"
person Derek Soike    schedule 12.06.2017
comment
используя этот метод; node и npm устанавливаются только при доступе к ним, если я использовал что-то вроде pm2 для развертывания своего приложения; Я получаю npm: command not found, почему это может произойти? - person Ashar Dweedar; 13.04.2020
comment
Вы можете установить npm с помощью nvm. nvm install-latest-npm - person Emilio Borraz; 18.07.2020

Чтобы установить NodeJS 6.x, выполните следующие команды:

curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
yum install nodejs --enablerepo=nodesource

Обновить

Вы можете установить NodeJS 7 и 8 таким же образом. Просто укажите нужную вам версию вместо 6 в команде выше.

Обновить

Чтобы обновиться до NodeJS 10 (или любой другой версии), выполните следующие действия:

rm -rf /etc/yum.repos.d/nodesource-el*
curl -sL https://rpm.nodesource.com/setup_10.x | sudo -E bash -
yum install nodejs --enablerepo=nodesource
person Ihor Burlachenko    schedule 03.03.2017
comment
как удалить 6 и установить 7? если я уже установил 6 таким образом? - person PK.; 06.12.2017
comment
@ПК. Обновлен ответ - person Ihor Burlachenko; 26.09.2018
comment
У меня это не сработало, я получаю сообщение Package 2:nodejs-6.16.0-1nodesource.x86_64 already installed and latest version Nothing to do, и когда я проверяю версию, она все еще v6.16.0. - как мне обновиться до 10? - person Agent Zebra; 31.01.2019

во-первых

sudo yum установить сделать

Вы можете запустить это, чтобы получить zip желаемой версии узла

wget https://nodejs.org/dist/v8.10.0/node-v8.10.0.tar.gz

Затем вы можете разархивировать его так

tar -xvf node-v8.10.0.tar.gz

затем перейдите в извлеченный каталог и установите узел, подобный этому

./configure && make && sudo make install
person Khurram W. Malik    schedule 15.05.2018
comment
Что делает ./configure? изнутри извлеченного каталога я получаю сообщение об ошибке ./configure: No such file or directory Я только что загрузил двоичный файл linux https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.gz на свой Mac, чтобы посмотреть, и в разархивированном каталоге нет файла ./configure - person Agent Zebra; 31.01.2019
comment
@AgentZebra: cd node-v10.15.1-linux-x64, затем ./configure && make && sudo make install. это создаст и установит узел - person Vaibhav Bhootna; 13.04.2019

Я нашел его учебник, который был очень полезен для меня: в последней главе объясняется, как установить узел и npm скомпилировать его.

http://iconof.com/blog/how-to-install-setup-node-js-on-amazon-aws-ec2-complete-guide/#installNode

person jbaylina    schedule 26.10.2013

Сначала получите файл http://npmjs.org/install.sh в своей системе, а затем выполните его напрямую, а не с помощью curl.

  • Используйте chmod +x install.sh, чтобы сделать его исполняемым
  • Затем запустите ./install.sh
person wswoodruff    schedule 06.10.2019

Это руководство отлично сработало: https://tecadmin.net/install-latest-nodejs-amazon-linux/

  1. Убедитесь, что у вас есть make

# sudo yum install -y gcc-c++ make

  1. Установить источник

# curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -

  1. Установить узел

# sudo yum install -y nodejs

Примечание. Вам нужно будет запустить sudo npm install, чтобы установка заработала.

person Jared Wilber    schedule 24.07.2020

Я сделал это вручную. Зачем возиться с установщиками, которые ломаются или не помещают вещи туда, куда я хочу? При установке *node.js на Amazon Web Services возникали такие проблемы, что ручная установка была простым способом получить желаемый результат.

Я хочу ГЛОБАЛЬНУЮ установку node и npm на AWS. Под этим я подразумеваю, что install следует помещать в такое место, как /usr/bin, чтобы все пользователи имели доступ. Удивительно, но AWS явно не поддерживает эту идею. AWS рекомендует использовать nvm, менеджер версий узлов, но он всегда устанавливается в каталог пользователя, а не в каталог системного уровня. После разочарования, когда решения rpm (упомянутые в другом месте) не сработали, я, наконец, решил просто выполнить установку вручную.

В браузере перейдите на страницу загрузки nodejs.org:

https://nodejs.org/en/download/

Найдите ссылку, которая говорит:

All download options

Нажмите на это; он переходит на индексную страницу с URL-адресом, например:

https://nodejs.org/dist/v14.16.1/

Там я искал имя, в названии которого были linux и x86. Я записал это или выбрал и скопировал, чтобы получить правильное написание. В моем случае это было:

node-v14.16.1-linux-x64.tar.gz

Объединив две части, я получил следующий URL:

https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz

Так вот что нужно скачать с помощью curl.

У меня есть временный каталог, удобно расположенный в моем домашнем каталоге.

cd ~/temp

Загрузка была выполнена с помощью curl. Обратите внимание, что параметр -o использовался для присвоения выходному файлу имени по моему выбору. Конечно, я решил дать ему то же имя, что и файл веб-сайта.

curl -o node-v14.16.1-linux-x64.tar.gz  https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz

Разархивируйте загруженный файл.

tar xf node-v14.16.1-linux-x64.tar.gz

Удобно, он создает свой собственный каталог. Иди туда.

cd node-v14.16.1-linux-x64 || exit 1;

Обратите внимание, что доставка состоит из относительно небольшого количества файлов и каталогов (поскольку node_modules рассматривается как единое целое).

В моем случае у меня все еще была установлена ​​старая и плохая реализация, поэтому были использованы следующие команды, чтобы отодвинуть в сторону любой мусор, который мог оказаться на пути. Некоторые команды завершались ошибкой, потому что старого мусора не существовало. Ничего страшного, ошибка при переходе на -OLD просто означает, что перемещать нечего; и это хорошо.

Примечание. Я поместил все эти команды mv (перемещение) в файл сценария, сделал его исполняемым и запустил как sudo. Альтернативой является запуск каждой строки отдельно как sudo.

mv /usr/bin/node    /usr/bin/node-OLD
mv /usr/bin/npm             /usr/bin/npm-OLD
mv /usr/bin/npx             /usr/bin/npx-OLD
mv /usr/include/node                /usr/include/node-OLD
mv /usr/lib/node_modules    /usr/lib/node_modules-OLD
mv /usr/share/doc/node                      /usr/share/doc/node-OLD
mv /usr/share/man/man1/node.1               /usr/share/man/man1/node.1-OLD
mv /usr/share/systemtap/tapset/node.stp             /usr/share/systemtap/tapset/node.stp-OLD

Вот фактическая установка. Помните, что это происходит в незаархивированном каталоге, в моем случае node-v14.16.1-linux-x64.

mv bin/node         /usr/bin
mv bin/npm          /usr/bin
mv bin/npx          /usr/bin
mv include/node             /usr/include
mv lib/node_modules         /usr/lib
mv share/doc/node           /usr/share/doc
mv share/man/man1/node.1            /usr/share/man/man1
mv share/systemtap/tapset/node.stp          /usr/share/systemtap/tapset/

Вот и все, готово.

person IAM_AL_X    schedule 08.05.2021

Изменить, поскольку мой ответ больше не актуален:

Пытаться:

curl --silent --location https://rpm.nodesource.com/setup | bash -

yum -y install nodejs 

https://github.com/joyent/node/wiki/Installing-Node.js-через-package-manager#enterprise-linux-and-fedora-core

person fkoessler    schedule 26.06.2012
comment
К вашему сведению, ссылка nodejs.tchol.org не работает (для всех, кто придет сюда год спустя). - person lollercoaster; 19.07.2013
comment
Устарело, больше не указано на данной странице. - person Air; 17.12.2013

person    schedule
comment
В вопросе не указывается ни запущенная ОС, ни версия CentOS/RHEL, ни установлен ли репозиторий EPEL. Например, NodeJS и NPM отсутствуют в репозитории RHEL5 EPEL. - person Charles; 11.02.2014
comment
это было автоматически помечено из-за длины, пожалуйста, добавьте небольшое объяснение. - person ; 11.02.2014
comment
эта версия больше не выглядит как текущая стабильная версия node.js, может быть, что-то не так с зеркалом? - person PaulWoodIII; 20.09.2015
comment
@ChinaPaul То же самое здесь. я получаю очень старую версию, и когда я пытаюсь обновить npm, она ломается. - person Jeremy Chone; 21.09.2015
comment
лучше всего запустить npm install npm -g после установки таким образом, чтобы обновить до последней версии npm - person Justin; 08.11.2015
comment
Для меня это установленный Node 0.X, что неприемлемо. В итоге я собрал nodejs из исходников, что заняло 20 минут. - person Neal Ehardt; 26.09.2016