Установите последнюю версию node.js на Ubuntu 24.10.

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

Версия node.js в Ubuntu 24.10 – v14.21.3. Чтобы использовать React (с vite), требуется последняя или, по крайней мере, гораздо более поздняя версия. Я пробовал различные способы обновления node через репозиторий пакетов, и все казалось прошло хорошо, включая сообщение о том, что установлена версия node 22. Однако команда node -v все еще возвращала v14.21.3, и попытка запустить

npm run dev

для сервера разработки react по-прежнему возвращала ошибку из-за версии node.

Затем я обновил node, используя nvm (nvm install --lts) и затем nvm use --lts

Это работает, и node -v возвращает v22.14.0 (npm v11.1.0)

Однако версия node остается на уровне 22 только до закрытия терминала. Есть ли способ сделать изменение на версию 22 постоянным?

Ubuntu 24.10 имеет nodejs v20.16.0, ваша проблема совсем не связана с дистрибутивом.

Вы изменили ваш $PATH, добавив в него каталог /home/<user>/.nvm/versions/node/v14.21.3/bin, из-за которого вы видите старую версию nodejs. Откуда взялся этот JavaScript, это вопрос, на который можете ответить только вы. Но у вас есть два возможных решения:

  1. Удалите этот каталог из $PATH
  2. Или, по альтернативе, удалите установленный через nvm node. Вероятно, вы добавили каталог, чтобы использовать некоторые утилиты, установленные с помощью nvm, но затем также установили там nodejs, поэтому он используется вместо дистрибутивного. Вы можете просто его удалить.

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

Установка последней версии Node.js на Ubuntu 24.10 может показаться неочевидной задачей из-за конфликтов версий и путей, возникающих при использовании различных средств управления версиями, таких как nvm. В этом ответе я раскрою все аспекты, чтобы устранить проблемы с версиями Node.js, а также подробно объясню, как сделать так, чтобы новая версия оставалась постоянной даже после закрытия терминала.

Теория

Сначала рассмотрим, почему возникают проблемы с версиями Node.js. Возможно, что по умолчанию в вашей системе в переменной окружения $PATH указан путь, который указывает на старую версию Node.js. Например, если старые версии Node.js были установлены через пакетный менеджер или вручную размещены в какой-то из директорий, их пути могут оставаться в переменной $PATH.

Управление версиями через NVM

Чтобы управлять различными версиями Node.js, часто используют nvm (Node Version Manager). Это утилита, позволяющая устанавливать и переключаться между разными версиями Node.js в пользовательском пространстве, что удобно для различных проектов с различными потребностями в версиях.

Пример команды для установки последней LTS (Long Term Support) версии Node.js с помощью nvm:

nvm install --lts
nvm use --lts

Однако, как вы заметили, такие изменения сохраняются только в текущей сессии терминала. После его закрытия ваши настройки версии будут сброшены к системной по умолчанию. Это аспект, который нужно учитывать и впереди мы рассмотрим, как его решить.

Пример

Проблема в том, что команда node -v все еще возвращает v14.21.3, несмотря на мнимый успех установки нового Node.js v22 с помощью пакетного менеджера. Сначала разберемся, как очистить вашу систему от несовместимых или устаревших версий, а затем удержать выбранную версию постоянной.

  1. Удаление неправильных путей:

    Проверьте ваш файл .bashrc, .zshrc или .profile (в зависимости от шелла, который вы используете) на наличие устаревших путей. В частности, удалите или прокомментируйте строки, которые добавляют в $PATH директорию со старым Node.js, например:

    export PATH="/home/<user>/.nvm/versions/node/v14.21.3/bin:$PATH"
  2. Удаление старых версий Node.js:

    Убедитесь, что старые версии Node.js удалены из вашей системы:

    sudo apt-get remove nodejs
  3. Корректное использование NVM:

    Теперь, когда старые версии удалены, убедитесь, что NVM загружается в вашем файле конфигурации оболочки (.bashrc или .zshrc, например) и выбирается нужная версия Node.js:

    export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
    nvm use --lts

Эти строки обеспечат автоматическую загрузку NVM и переход на последнюю LTS-версию при каждом запуске нового терминала.

Применение

Теперь, когда мы освободились от проблемных мест, прецептируем рабочее решение:

  1. Постоянное назначение версии:

    Изменения, сделанные в файлах конфигурации шелла, гарантируют, что каждый раз при запуске нового терминального окна ваша система будет автоматически переключаться на последнюю LTS-версию Node.js посредством NVM.

  2. Проверка и тестирование:

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

    node -v

    Вы должны увидеть желаемую версию, например, v22.14.0.

  3. Работа с проектами:

    Теперь вы можете без проблем запускать npm run dev или любые другие команды, связанные с исполнением Node.js в вашем проекте React с использованием Vite.

Заключение

Представленный подход обеспечивает долговременное решение проблем, связанных с управлением версиями Node.js на Ubuntu 24.10. Убедитесь, что ваш файл конфигурации оболочки настроен правильно для автоматической загрузки и установки нужной версии Node.js, и любые установленные вами версии через NVM не конфликтуют с системными или устаревшими версиями. Таким образом, вы получаете стабильность и удобство при работе над вашими проектами.

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

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