Назад | Перейти на главную страницу

Проблема с установкой пакета npm и supervisor в AMI Amazon Linux

Я использую AMI Amazon Linux и успешно установил node.js с помощью wget'вставляем источник, распаковываем файл и запускаем ./configure а потом sudo make install. Когда я установил npm:

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

Он выводит:

npm cannot be installed without nodejs.
Install node first, and then try again.

Maybe node is installed, but not in the PATH?
Note that running as sudo can change envs.

PATH=/sbin:/bin:/usr/sbin:/usr/bin

Но узел явно установлен (работает node -v показывает его версию), значит, этот узел должен быть не на моем пути.

я открываю ~/.bash_profile и добавьте эту строку:

export PATH=/usr/local/bin:$PATH

Тогда беги source ~/.bash_profile

и попробуйте снова установить npm, только чтобы обнаружить, что он выводит то же сообщение, что и в прошлый раз, с тем же самым PATH.

Затем, что странно, я заметил, что npm действительно установлен! Бег npm -v показывает свою версию. Хм ....

Тогда я бегу npm install supervisor в каталоге моего приложения, а папка супервизора находится в /node_modules, Однако supervisor команда не существует.

Установка выходов супервизора:

npm WARN prefer global supervisor@0.3.1 should be installed with -g

поэтому я пытаюсь npm install -g supervisor который выводит

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/supervisor'
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

поэтому я пытаюсь sudo npm install -g supervisor

но выход sudo: npm: command not found

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

Любая помощь в выяснении этого будет принята с благодарностью!

По возможности лучше избегать компиляции пакетов. Помимо частой установки в нестандартных местах, программное обеспечение, скомпилированное из исходного кода, гораздо сложнее поддерживать в актуальном состоянии. Node.js предоставляет процедуру для установки из репозитория, который включает npm и некоторые другие связанные компоненты. Репозиторий обновляется и редко отстает от исходного кода более чем на пару дней. Более того, инструкции доступны специально для Amazon Linux:

sudo yum localinstall --nogpgcheck http://nodejs.tchol.org/repocfg/amzn1/nodejs-stable-release.noarch.rpm
sudo yum install nodejs-compat-symlinks npm.

npm следует установить в /usr/bin/npm что является символической ссылкой на /usr/lib/nodejs/npm/bin/npm-cli.js. Конечно, с некоторыми изменениями, внесенными в ваш PATH, возможно, что npm может не быть найден. echo $PATH (как root) должен напоминать:

/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

Одна из распространенных проблем при предыдущих установках с ошибкой npm - это поврежденный кеш - очистите кеш npm (npm cache clear) и посмотрите, добьетесь ли вы успеха. Конечно, глобальная установка пакета должна выполняться от имени пользователя root.