Обновлен node до 16.16.0, но когда я ввожу ‘nodejs –version’, показывает 12.22.9.

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

Извините, я новичок в Linux.

Я пытаюсь обновить nodejs в свежей установке Ubuntu 22.04 на виртуальной машине.

Когда я выполняю это:

nodejs --version

Выводится:

v12.22.9

Я видел на многих ресурсах, что для обновления node до последней версии нужно выполнить эти команды:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Когда я это делаю, кажется, что работает и сообщает:

копирование: node/16.16.0

Однако, когда я снова выполняю nodejs --version, он все равно показывает v12.22.9

Что я делаю не так?

Все, что я нашел в интернете, говорит мне делать вышеперечисленное.

Как обновить nodejs и увидеть последнюю версию?

Итак,

$ help type
type: type [-afptP] name [name ...]
    Показывает информацию о типе команды.
    
    Для каждого ИМЕНИ указывает, как оно будет интерпретировано, если использовать в качестве
    названия команды.
    
    Опции:
      -a    отображает все местоположения, содержащие исполняемый файл с именем NAME;
            включает в себя псевдонимы, встроенные команды и функции, если и только если
            опция `-p' не используется.
 ...

поэтому
$ type -a node
может вывести ДВА экземпляра node, с приоритетом у верхнего, если вы не укажете, какой именно запускать.

Имея две версии одного и того же, вы МОЖЕТЕ также столкнуться с конфликтами, при этом по умолчанию важные части (например, библиотеки) могут смешиваться, в зависимости от конкретной ситуации. Это может вызвать серьезные проблемы – или нет.

Замечание: чаще всего самым безопасным вариантом или “хорошим решением” является удаление любой предыдущей версии, затем установка новой/последней…

У меня была такая же проблема вначале, просто откройте новый терминал и выполните node –version, у меня обновилось после того, как показывало v12.22.9 для node, новый терминал показал 16.

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

Для решения проблемы с обновлением Node.js на Ubuntu 22.04, важно понимать, как работает система управления версиями Linux и как Node.js может быть установлен и управляться на платформе. В данном случае мы наблюдаем ситуацию, когда после обновления Node.js с использованием инструмента n версия указывается как 16.16.0, но команда nodejs --version продолжает показывать 12.22.9. Это может быть связано с несколькими причинами, которые стоит разобрать.

Теория:

На Linux (в частности на Ubuntu), возможно наличие нескольких установленных версий одной и той же программы. Это происходит из-за особенностей системы путей, где разные версии могут находиться в разных директориях.

Пример:

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

nodejs --version

может ссылаться на системный путь, где сохранена старая версия Node.js.

Попробуйте использовать команду:

type -a node

Эта команда покажет все пути, где находится бинарный файл Node. Та версия, что появляется первой, будет выполняться, когда вы вводите просто node.

Практическое применение:

  1. Проверка и удаление старых версий:

    • Узнайте, где находятся все версии Node.js, с помощью команды типа type -a node.
    • Убедитесь, что вы установили правильную версию, используя правильные пути. Рекомендуется удалить старую версию полностью, чтобы избежать конфликта, используя:
      sudo apt remove nodejs
  2. Установка новой версии:

    • Используйте n для установки новой версии Node.js. Убедитесь, что пакет n установлен:
      sudo npm install -g n
    • После установки новой версии через n stable, убедитесь, что вы открыли новый терминал, чтобы изменения путей компиляции были применены.
  3. Проверка корректности установки:

    • Убедитесь, что правильный путь к Node.js установлен в переменной окружения PATH. Для этого вы можете проверить своё окружение командой:
      echo $PATH
    • Если вы удалили старую версию, убедитесь, что новая версия Node.js является первой в списке в PATH.

Выполнив вышеизложенные советы, вы сможете установить требуемую версию Node.js и быть уверенном, что система распознает именно её.

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

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