Поиск по сайту:

NVM — установка и управление несколькими версиями Node.js в Linux


Диспетчер версий узла (сокращенно NVM) — это простой сценарий bash для управления несколькими активными версиями node.js в вашей системе Linux. Он позволяет вам установить несколько версий node.js и просматривать все версии, доступные для установки, а также все версии, установленные в вашей системе.

Nvm также поддерживает запуск определенной версии node.js и может показывать путь к исполняемому файлу, где он был установлен, и многое другое.

В этой статье мы объясним, как установить Node Version Manager (NVM) для управления несколькими активными версиями node.js в вашем дистрибутиве Linux.

Установка NVM (менеджера версий узла) в Linux

Чтобы установить или обновить nvm в своем дистрибутиве Linux, вы можете загрузить сценарий автоматической установки с помощью инструментов командной строки Curl или wget, как показано.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
OR
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

Приведенный выше сценарий автоматической установки клонирует репозиторий nvm в ~/.nvm в вашем домашнем каталоге и добавляет необходимые исходные команды в сценарии запуска оболочки, т. е. ~/ .bash_profile, ~/.zshrc, ~/.profile или ~/.bashrc, в зависимости от используемой вами программы оболочки. используются, как показано в следующем выводе.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  34227      0 --:--:-- --:--:-- --:--:-- 34301
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 359, done.
remote: Counting objects: 100% (359/359), done.
remote: Compressing objects: 100% (305/305), done.
remote: Total 359 (delta 40), reused 168 (delta 28), pack-reused 0
Receiving objects: 100% (359/359), 219.46 KiB | 6.86 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
...

После завершения установки закройте текущее окно терминала и откройте новое. Или просто используйте файл профиля оболочки для загрузки nvm. Например, если вы используете bash, выполните следующую команду:

source ~/.bashrc
OR
source ~/.profile

Затем проверьте, установлен ли nvm в вашей системе, с помощью следующей команды.

command -v nvm

nvm

Если установка прошла успешно, выходные данные будут отображаться как «nvm».

Установите несколько версий Node.js с помощью NVM

Теперь пришло время узнать, как использовать Менеджер версий узла в Linux. Чтобы загрузить, скомпилировать и установить последнюю версию node, выполните следующую команду:

nvm install node 

Обратите внимание, что в приведенной выше команде “node” является псевдонимом последней версии.

Downloading and installing node v20.0.0...
Downloading https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.0.0 (npm v9.6.4)
Creating default alias: default -> node (-> v20.0.0)

Чтобы установить конкретную версию узла, сначала перечислите доступные версии узла, а затем установите версию, как показано.

nvm ls-remote
nvm install 19.0.0  
Downloading and installing node v19.0.0...
Downloading https://nodejs.org/dist/v19.0.0/node-v19.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v19.0.0 (npm v8.19.2)

После того как вы установили версию Node.js с помощью nvm, система теперь должна указывать на Node.js и npm . версии под nvm. Вы можете проверить расположение используемого двоичного файла/команды node и npm, запустив команду который следующим образом:

which node
/root/.nvm/versions/node/v20.0.0/bin/node

# which npm
/root/.nvm/versions/node/v20.0.0/bin/npm

# node -v
v20.0.0

# npm -v
9.6.4

Перечисление установленных версий Node.js

Вы можете проверить все установленные версии с помощью следующей команды:

nvm ls
->      v19.0.0
        v20.0.0
         system
default -> node (-> v20.0.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.0.0) (default)
stable -> 20.0 (-> v20.0.0) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)

Выберите версию узла для проекта

Здесь nvm становится интересным. Теперь вы можете использовать nvm, чтобы выбрать версию node.js для каждого проекта, над которым вы работаете, в зависимости от требований. Давайте посмотрим, как это сделать, как описано ниже.

Откройте несколько терминалов и перейдите в каталоги проекта. В этом руководстве у нас есть два проекта под ~/projects/app-server и ~/projects/test-ui, которым обманчиво требуются версии узла 19.0.0 и 20.0.0. .

------------ Project 1 ------------ 
cd ~/projects/api-server
nvm use 19.0.0
node -v

------------ Project 2 ------------
cd ~/projects/test-ui
nvm use 20.0.0
node -v

Например, если у вас установлен глобальный пакет при активной версии 19.0.0, то при переходе на версию 20.0.0 вам необходимо переустановить глобальный пакет под новой версией.

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

nvm which 20.0.0
nvm which 19.0.0
nvm which system  #check system-installed version of a node using “system” alias

Установить версию Node.js по умолчанию в Linux

Кроме того, чтобы вручную установить версию узла по умолчанию для использования в любой новой оболочке, используйте псевдоним «default», как показано.

nvm alias default 20.0.0
nvm alias default system
nvm alias default 19.0.0

Удаление версии Node.js в Linux

Чтобы удалить версию Node.js, введите следующую команду (не забудьте заменить 19.0.0 номером версии):

nvm uninstall 19.0.0

Удаление NVM в Linux

Чтобы вручную удалить nvm из вашей системы, выполните следующие команды:

rm -rf "$NVM_DIR"
OR
rm -rf ~/.nvm

Затем отредактируйте ~/.bashrc (или соответствующий файл конфигурации профиля оболочки, как указано выше) и удалите следующие строки конфигурации:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion

Для получения дополнительной информации см. nvm --help или перейдите в репозиторий Node Version Manager Github: https://github.com/nvm-sh/nvm.

Вот и все! Диспетчер версий узла — это простой сценарий Bash для управления несколькими активными версиями node.js в вашей системе Linux. Используйте форму обратной связи ниже, чтобы задать нам вопросы или поделиться своими комментариями.