Вы здесь:

При разработке на js в linux возможно появление ошибки типа "version `GLIBC_2.28' not found". Причина в том, что Node должен быть согласован с версией linux (точнее с версией glibc). Ниже описано диагностирование и варианты исправление этой проблемы.

Для начала, определить версию ядра linux:

$ uname -a
Linux vasi-note 5.4.0-150-generic
167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

или:

$ ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27
...

Версию ядра нужно нужно учитывать при установке окружения.

Далее будут использованы команды:

  • nvm - Node Version Manager (исполняющая система)
  • npm - Node Package Manager. Утилита установки пакетов, устанавливается по умолчанию вместе с node.
  • yarn - улучшеный Node Package Manager (утилита. Устанавливается отдельно от node).

Неплохая статья на эту тему https://habr.com/ru/articles/726096/
Есть еще package manage PNPN, НО!!! Please note that pnpm is currently blocking all traffic from Russia and Belarus https://twitter.com/pnpmjs/status/1498306992577957890
Установка версии node 16.15.1

$ nvm install 16.15.1

(НЕ SUDO)
Проверка:

$ /home/vasi/.nvm/versions/node/v16.15.1/bin/node --version
v16.15.1

Установить пути в .bashrc. Для этого добавить строку в .bashrc:

$ export PATH=/home/vasi/.nvm/versions/node/v16.15.1/bin:$PATH

Проверка:

$ node --version
v16.15.1

Установка версии node 17.9.1

$ nvm install 17.9.1

В .bashrc добавить строку:

export PATH=/home/vasi/.nvm/versions/node/v17.9.1/bin:$PATH

Проверка:

$ node --version
v17.9.1

версия v20.0.0 выдает ОШИБКУ (см. версию linux):

$ /home/vasi/.nvm/versions/node/v20.0.0/bin/node --version
>/home/vasi/.nvm/versions/node/v20.0.0/bin/node:
>  /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (
>    required by /home/vasi/.nvm/versions/node/v20.0.0/bin/node
>  )

yarn
Проверка версии yarn:

$ /usr/share/yarn/bin/yarn --version
1.22.5

npm
Проверка версии npm:

$ npm --version
8.11.0

или более подробно (без --)

$ npm version
{
  npm: '8.11.0',
  node: '17.9.1',
  v8: '9.6.180.15-node.16',
  ...

Очистка кеша npm:

$ npm cache clean -f

Выбор версии nvm:

$ nvm use v16.0.0

Опыты на notebook:

vasi@vasi-note:~$ ls /home/vasi/.nvm/versions/node/
v16.10.0  v16.15.1  v16.20.2  v17.9.1  v18.20.2  v20.0.0

vasi@vasi-note:~$ /home/vasi/.nvm/versions/node/v16.20.2/bin/node --version
v16.20.2

vasi@vasi-note:~$ /home/vasi/.nvm/versions/node/v17.9.1/bin/node --version
v17.9.1

vasi@vasi-note:~$ /home/vasi/.nvm/versions/node/v20.0.0/bin/node --version
/home/vasi/.nvm/versions/node/v20.0.0/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/vasi/.nvm/versions/node/v20.0.0/bin/node)

vasi@vasi-note:~$ /home/vasi/.nvm/versions/node/v18.20.2/bin/node --version
/home/vasi/.nvm/versions/node/v18.20.2/bin/node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/vasi/.nvm/versions/node/v18.20.2/bin/node)

Опыты на v.perm.ru:

vasi@v ~ $ whereis node
node: /usr/bin/node /usr/local/bin/node.bad /usr/local/bin/node /usr/share/man/man1/node.1.gz

vasi@v ~ $ /usr/local/bin/node --version
v8.10.0