Как управлять версиями Nodejs с помощью n в Linux
В этом руководстве представлено краткое введение в "n", неофициальный инструмент управления версиями узлов, а затем объясняется, как легко управлять версиями nodejs с помощью n в операционных системах Linux.
Что такое, менеджер версий узла?
NodeJS не требует представления. Nodejs — это среда выполнения JavaScript, построенная на базе движка Google V8. Nodejs поставляется со встроенным менеджером пакетов под названием npm
для установки и управления версиями узлов, а также существует множество сторонних инструментов для управления версиями узлов. n — это один из сторонних инструментов управления версиями узлов. Да, это всего лишь одна буква - н.
n — это интерактивный менеджер версий узлов, позволяющий легко управлять одной или несколькими версиями NodeJS! Никаких подоболочек, никаких настроек профиля, никаких запутанных API, никаких затрат на обучение — это просто простой инструмент. Это всего лишь сценарий оболочки, и его код находится в свободном доступе на GitHub.
1. Установите в Linux
Самый простой способ установить n — через npm
. Как уже говорилось, Npm — это встроенный менеджер пакетов для Nodejs, который предустановлен вместе с Nodejs.
Я предполагаю, что на вашем компьютере с Linux уже установлена последняя версия Nodejs. Если вы еще не установили NodeJS, обратитесь к следующему руководству:
- Как установить NodeJS в Linux
Затем выполните следующую команду для установки n в Linux:
npm install -g n
Если npm недоступен или вы не хотите устанавливать n с помощью npm, вы можете напрямую получить скрипт n с GitHub и установить его, как показано ниже:
curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n
bash n lts
При этом будут установлены как версия node
lts, так и npm
.
1.2. Создайте домашний каталог для установки узла.
По умолчанию n устанавливает node
в подкаталог n/versions
каталога /usr/local/
, который определен в N_PREFIX
переменная среды. Как вы уже знаете, нам требуется разрешение sudo
для установки узла в каталоге /usr/local/n/versions/node/
. Чтобы избежать использования sudo
, вы можете создать специальный каталог для установки узлов в $HOME и добавить их в свой PATH
.
Чтобы создать домашний каталог для установки узла, отредактируйте файл профиля пользователя, например ~/.bashrc
:
vi ~/.bashrc
Добавьте следующие строки:
export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH
Нажмите клавишу ESC
и введите :wq
, чтобы сохранить файл и выйти.
1.3. Установите n с помощью сценария n-install.
Другой способ установить n – использовать сценарий n-install, который устанавливает n непосредственно с GitHub.
curl -L https://git.io/n-install | bash
Эта команда выполнит следующий набор задач:
- Во-первых, он устанавливает для
PREFIX
иN_PREFIX
значение$HOME/n
; - И устанавливает
n
в$HOME/n/bin
; - Затем изменяет файлы инициализации поддерживаемых оболочек для экспорта
N_PREFIX
; - Затем добавляет
$HOME/n/bin
кPATH
; - Наконец, устанавливается последняя версия LTS Node.js.
2. Управление версиями nodejs с помощью n в Linux
Устанавливать версии nodejs и управлять ими с помощью n довольно просто! Давайте посмотрим несколько примеров.
2.1. Получать помощь
Если вы новичок в n, вероятно, будет хорошей идеей открыть раздел справки и научиться использовать n.
Чтобы просмотреть раздел справки n, просто запустите:
n --help
Просмотрите справочное руководство, чтобы получить представление об использовании каждой команды.
Usage: n [options] [COMMAND] [args]
Commands:
n Display downloaded Node.js versions and install selection
n latest Install the latest Node.js release (downloading if necessary)
n lts Install the latest LTS Node.js release (downloading if necessary)
n Install Node.js (downloading if necessary)
n install Install Node.js (downloading if necessary)
n run [args …] Execute downloaded Node.js with [args …]
n run [args …] Execute downloaded node with [args …]
n which Output path for downloaded node
n exec [args…] Execute command with modified PATH, so downloaded node and npm first
n rm Remove the given downloaded version(s)
n prune Remove all downloaded versions except the installed version
n --latest Output the latest Node.js version available
n --lts Output the latest LTS Node.js version available
n ls Output downloaded versions
n ls-remote [version] Output matching versions available for download
n uninstall Remove the installed Node.js
Options:
-V, --version Output version of n
-h, --help Display help information
-p, --preserve Preserve npm and npx during install of Node.js
-q, --quiet Disable curl output (if available)
-d, --download Download only
-a, --arch Override system architecture
--all ls-remote displays all matches instead of last 20
--insecure Turn off certificate checking for https requests (may be needed from behind a proxy server)
--use-xz/--no-use-xz Override automatic detection of xz support and enable/disable use of xz compressed node downloads.
Aliases:
install: i
latest: current
ls: list
lsr: ls-remote
lts: stable
rm: -
run: use, as
which: bin
Versions:
Numeric version numbers can be complete or incomplete, with an optional leading 'v'.
Versions can also be specified by label, or codename,
and other downloadable releases by /
4.9.1, 8, v6.1 Numeric versions lts Newest Long Term Support official release latest, current Newest official release auto Read version from file: .n-node-version, .node-version, .nvmrc, or package.json engine Read version from package.json boron, carbon Codenames for release streams lts_latest Node.js support aliases and nightly, rc/10 et al
2.2. Установите версии Nodejs, используя n
Чтобы установить последнюю версию nodejs с помощью n
, просто запустите:
n latest
Пример вывода:
installing : node-v16.2.0
mkdir : /home/ostechnix/.n/n/versions/node/16.2.0
fetch : https://nodejs.org/dist/v16.2.0/node-v16.2.0-linux-x64.tar.xz
installed : v16.2.0 (with npm 7.13.0)
Note: the node command changed location and the old location may be remembered in your current shell.
old : /home/ostechnix/.nvm/versions/node/v16.1.0/bin/node
new : /home/ostechnix/.n/bin/node
To reset the command location hash either start a new shell, or execute PATH="$PATH"
Установите версию nodejs с n в Linux
Старая версия узла будет перемещена в новое место, т.е. в моем случае /home/ostechnix/.n/bin/node
. Откройте новый сеанс оболочки или перезапустите сеанс терминала, чтобы использовать версию узла из нового местоположения.
Проверьте установленную версию узла:
node --version
v16.2.0
Проверьте версию npm:
npm -v
7.13.0
Аналогичным образом вы можете установить версию узла LTS, используя n, как показано ниже:
n lts
Пример вывода:
installing : node-v14.17.0
mkdir : /home/ostechnix/.n/n/versions/node/14.17.0
fetch : https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz
installed : v14.17.0 (with npm 6.14.13)
Вы также можете установить определенную версию Nodejs, например 16.0.0
, используя команду:
n 16.0.0
Как вы могли заметить, n создает отдельные каталоги для каждой версии узла. Например, он создает каталог /home/ostechnix/.n/n/versions/node/16.2.0
для последней версии узла, n/versions/node/14.17.0
для версии узла LTS и n/versions/node/16.0.0
для узла версии 16.0.0. Таким образом, каждая версия не смешивается друг с другом, и мы можем переключиться на любую версию в любое время.
2.3. Загрузите версии Nodejs, но не устанавливайте
Если вы не хотите устанавливать версию Nodejs, а хотите только загрузить ее, используйте опцию -d
, --download
:
n -d 15.8.0
Эта команда загрузит только версию узла 15.8.0, но не установит ее.
Пример вывода:
installing : node-v15.8.0
mkdir : /home/ostechnix/.n/n/versions/node/15.8.0
fetch : https://nodejs.org/dist/v15.8.0/node-v15.8.0-linux-x64.tar.xz
2.4. Список локально загруженных версий Nodejs
Чтобы просмотреть все загруженные версии Nodejs в локальном кеше, просто запустите:
n ls
Или,
n list
Пример вывода:
node/14.17.0
node/15.8.0
node/16.0.0
node/16.2.0
2.5. Список доступных версий Nodejs из удаленного репозитория
Мы можем использовать опцию ls-remote
для просмотра последних 20 версий Nodejs из реестра npm.
n ls-remote
Или,
n lsr
Пример вывода:
Listing remote… Displaying 20 matches (use --all to see all).
16.2.0
16.1.0
16.0.0
15.14.0
15.13.0
15.12.0
15.11.0
15.10.0
15.9.0
15.8.0
15.7.0
15.6.0
15.5.1
15.5.0
15.4.0
15.3.0
15.2.1
15.2.0
15.1.0
15.0.1
Самая последняя версия будет показана вверху.
По умолчанию в нем перечислено 20 версий. Вы также можете отобразить определенное количество версий узла.
n lsr 10
Чтобы вывести список всех доступных версий nodejs, используйте опцию --all
.
n ls-remote --all
2.6. Отобразить путь к загруженной версии Nodejs.
Чтобы распечатать полный путь к конкретной загруженной версии узла, запустите:
n which node/16.2.0
Пример вывода:
/home/ostechnix/.n/n/versions/node/16.2.0/bin/node
2.7. Переключение версий Nodejs
Последняя установленная версия будет версией узла по умолчанию. Если вы хотите переключиться на другую версию, введите n
и выберите версию из списка загруженных версий узла.
n
Эта команда отобразит все загруженные версии nodejs. Вы можете выбрать нужную версию, используя стрелки вверх/вниз, и нажать клавишу ENTER, чтобы установить ее.
node/14.17.0
node/15.8.0
ο node/16.0.0
node/16.2.0
Use up/down arrow keys to select a version, return key to install, d to delete, q to quit
Версия по умолчанию обозначается маленьким кружком перед ней.
Если вам не нужна конкретная загруженная версия nodejs, просто выберите ее и нажмите d
, чтобы удалить ее. Для выхода нажмите q
.
2.8. Запустить загруженную версию Nodejs
Как уже говорилось, последняя установленная версия является версией узла по умолчанию. Если вы хотите запустить другую версию, не устанавливая ее по умолчанию, вы можете использовать эту команду:
n run 15.8.0
Пример вывода:
Welcome to Node.js v15.8.0.
Type ".help" for more information.
>
Нажмите Ctrl+D
или введите .exit
, чтобы выйти из приглашения узла.
2.9. Удалить загруженные версии Nodejs
Укажите, сколько версий узлов загружено с помощью команды:
n ls
Чтобы удалить конкретную версию, просто укажите ее номер версии, как показано ниже:
n rm node/16.0.0
Либо введите n
, чтобы просмотреть доступные версии узла:
n
С помощью стрелок вверх/вниз выберите версию, которую хотите удалить, и нажмите d
, чтобы удалить ее. Вы должны быть осторожны при удалении версии узла. Потому что вам не будет предложено подтвердить удаление. Как только вы нажмете клавишу d
, выбранная версия исчезнет.
Чтобы удалить все загруженные версии, кроме установленной, запустите:
n prune
Чтобы полностью удалить установленную версию Nodejs, запустите:
n uninstall
Вас спросят, хотите ли вы удалить Node и Npm из вашей системы. Введите y
и нажмите клавишу ENTER
, чтобы полностью удалить node
и npm
, установленные n
из вашей системы.
Do you wish to delete node and npm from /home/ostechnix/.n? y
Uninstalling node and npm
/home/ostechnix/.n/bin/node
/home/ostechnix/.n/bin/npm
/home/ostechnix/.n/bin/npx
/home/ostechnix/.n/include/node
/home/ostechnix/.n/lib/node_modules/npm
/home/ostechnix/.n/share/doc/node
/home/ostechnix/.n/share/man/man1/node.1
/home/ostechnix/.n/share/systemtap/tapset/node.stp
Однако это не приведет к удалению версии узла, установленной с помощью NVM или менеджера пакетов вашего дистрибутива. Будут удалены только те версии узлов, которые установлены с помощью n.
Заключение
Сценарий n будет полезен, если вы захотите использовать другую версию Nodejs для разных проектов. Вам не нужно удалять одну версию Nodejs и устанавливать другую для каждого проекта. Вы можете установить несколько версий Nodejs и мгновенно переключаться с одной версии Nodejs на другую.
Ресурсы:
- Репозиторий GitHub
- Репозиторий сценариев GitHub без установки