Как установить Node версии 5.6.0 или выше на Ubuntu 16.04.4 LTS?

Вопрос или проблема

Компьютер работает под управлением Ubuntu 16.04.4 LTS 64-bit. Команда nvm use 16.20.2 работает нормально и выдает мне nodejs 4.2.6 (проверено с помощью nodejs --version). Я хотел бы использовать Node версии 5.6.0 или выше, поэтому я попробовал выполнить:

user@server:~/test$ nvm use 18.18.2

Но я получаю ошибку:

node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)

Ошибка возникает, потому что версия Node.js 18.18.2 требует более новой версии glibc (2.25, 2.27 или 2.28), которая не установлена.

Как я могу установить Node версии 5.6.0 или выше на Ubuntu 16.04?

Ответ или решение

Установка необходимой версии Node.js на систему Linux, такую как Ubuntu 16.04.4 LTS, требует учета нескольких факторов, учитывая, что более новые версии Node.js могут зависеть от компонентов системы, которые могут не поддерживаться старой версией Ubuntu. Давайте разберемся, как решить эту проблему и установить Node.js версии 5.6.0 или выше, избегая при этом несовместимости с системными библиотеками.

Теория

На данный момент Ubuntu 16.04 LTS устарел и получал поддержку до апреля 2021 года. Однако, если вам требуется использовать эту систему, необходимо учитывать зависимости, такие как версия glibc, необходимая для запуска более современных версий Node.js.

glibc (GNU C Library) – это набор библиотек, предоставляющих ядро для взаимодействия программного обеспечения с ядром Linux. Современные версии Node.js часто зависят от более современных версий glibc. Ваша текущая система, вероятно, имеет версию glibc, не совместимую с новейшими версиями Node.js. Таким образом, часто сложность заключается в том, чтобы либо обновить распределительную версию Ubuntu, либо вручную обновить glibc, что может быть небезопасным и потенциально привести к сбоям системы.

Пример

В вашем случае, попытка использовать nvm для установки более новой версии Node.js (18.18.2) привела к ошибкам, связанным с glibc:

node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)

Эти ошибки означают, что Node.js требует определенных версий glibc, которые отсутствуют в вашей системе.

Применение

Чтобы обойти эти ограничения и установить версию Node.js 5.6.0 или выше, следуйте указаниям ниже:

  1. NVM (Node Version Manager)

Если вы уже используете nvm, это значительно упрощает процесс, так как позволяет устанавливать и переключаться между различными версиями Node.js. Для установки Node.js 5.6.0 выполните команду:

nvm install 5.6.0
nvm use 5.6.0

Если по какой-то причине nvm не работает, например, из-за ограничений glibc, работающих даже на относительно старых версиях, рассмотрите другие варианты.

  1. Использование Node.js Binaries

Если по каким-то причинам nvm не подходит, можно использовать pre-built binaries от Node.js. Для этого:

  • Перейдите на официальный сайт Node.js в разделе загрузок.
  • Найдите версию 5.6.0 (или ближайшую наивысшую доступную версию).
  • Скачайте соответствующий архив под ваш процессор (x64).
  • Распакуйте его и добавьте директорию bin в ваш PATH для использования этой версии.
  1. Обновление операционной системы

Если возможно, самый простой и безопасный способ в долгосрочной перспективе – обновить систему до более свежей версии Ubuntu, где отсутствуют проблемы с обновлением glibc. Для этого:

sudo do-release-upgrade

Затем можно будет установить более новую версию Node.js без необходимости углубляться в зависимости glibc.

  1. Docker

Docker контейнеризация позволяет запускать приложения в соответствии с заключенными зависимостями, не касаясь основной системы. Вы можете использовать Node.js образы, включающие нужную версию:

docker pull node:5.6.0
docker run -it node:5.6.0 /bin/bash

Это упрощает управление зависимостями, предоставляя возможность прокачать систему безопасности и облегчая наладку окружения. Все установочные и специфические для Node.js зависимости будут уже включены в образ.

Заключение

Выбор правильного подхода зависит от ваших ограничений и требований системы. Использование nvm — это самый универсальный способ для управления Node.js, особенно в таких ситуациях. Однако если текущая версия glibc становится камнем преткновения, обновление системы или использование Docker может послужить более устойчивыми решениями. Всегда уделяйте внимание резервным копиям и сохранению стабильности системы при внесении изменений, особенно обновляя критичные системные компоненты.

Оцените материал
Добавить комментарий

Капча загружается...