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

Обновите node 0.12.x до nodejs 4.4.x с помощью pm2

я использую PM2 для запуска процессов моего узла в производственной среде (в Ubuntu 14.04). После обновления с узел 0.12.x к nodejs 4.4.x, команда для запуска узла (js) изменилась с node к nodejs. Я выполнил инструкции по установке дистрибутива nodeource.

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

PM2 все еще хочет позвонить node, хотя в более новой версии используется команда nodejs. Я взломал его, заменив двоичный файл узла на сим-ссылку, например:

mv /opt/bitnami/nodejs/bin/node /opt/bitnami/nodejs/bin/node.old
ln -s /usr/bin/nodejs /opt/bitnami/nodejs/bin/node

и это, кажется, работает нормально. Но предпочел бы просто изменить конфигурацию в PM2, чтобы указать на новый двоичный файл.

Как лучше всего сделать pm2 совместимым с обновлением до nodejs 4.4.x?

Обновить: это места, где node существует на этом сервере

root@ip-172-30-1-190:/usr/bin# find / -name "node" -type f
/opt/bitnami/nodejs/bin/node
/var/lib/dpkg/alternatives/node
/usr/local/bin/node
/usr/local/n/versions/node/4.4.1/bin/node

Изначально я пытался обновить узел с помощью npm и n пакет используя этот учебник, что составляет /usr/local/n/versions/node/4.4.1/bin/node линия.

Используйте NVM, который является менеджером пакетов NodeJS с множеством участников и принят сообществом NodeJS. https://github.com/creationix/nvm

На этот вопрос также ответят в Stackoverflow: https://stackoverflow.com/a/12570971/404699

Предостережение: nvm устанавливается в домашний каталог пользователя. Поэтому, если вы используете другой инструмент для управления процессами узлов, например pm2, то вам нужно указать новое имя процесса узла (nodejs против node), чтобы испытать наборы версий nvm (например, при переходе с v0.12.x на v4.x). Это потому, что ссылки nvm node к nodejs только под установленным профилем пользователя.

Если у тебя есть node и nodejs в вашей системе, почему вы удалили node?
Что /opt/bitnami/nodejs/bin/node? Это не официальный путь ни к одному из node ни nodejs.

При установке node.js 4.x Ubuntu настроил вашу систему так, чтобы node это просто альтернативное название для нового nodejs бинарный, чтобы не ломать существующие системы. Итак, в вашем случае вам не нужно было создавать символическую ссылку.

Вот как должна быть настроена ваша система:

root@server:~# update-alternatives --get-selections | grep node
js                             auto     /usr/bin/nodejs
node                           auto     /usr/bin/nodejs

Поскольку вы вручную удалили node ссылка, выходные данные вышеуказанной команды могут быть такими же, но, вероятно, не работают. Если вам не нужен Программа узла любительского пакетного радио (узел), Я бы посоветовал вам отремонтировать его и позволить Ubuntu поддерживать символические ссылки, определяющие команды по умолчанию.

# Remove the symlink and remove the rest of a broken "update-alterantive" configuration:

unlink /opt/bitnami/nodejs/bin/node
unlink /opt/bitnami/nodejs/bin/node.old
update-alternatives --remove-all node
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10