Node.js je běhové prostředí Javascriptu založené na V8
open source engine vytvořený společností Google a původně používaný v Chrome. Díky Node.js můžeme spouštět Javascript mimo kontext prohlížeče a používat jej také jako skriptovací jazyk na straně serveru, a tak kolem něj vytvořit celou webovou aplikaci. V tomto tutoriálu uvidíme, jak nainstalovat Node.js v distribuci RHEL 8 / CentOS 8.
V tomto tutoriálu se naučíte:
- Jak uvést dostupné verze Node.js na RHEL 8 / CentOS 8
- Jak nainstalovat konkrétní verzi Node.js
- Jak přepínat mezi verzemi Node.js na RHEL 8 / CentOS 8
The Node.js – RHEL 8
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | Software potřebný k provedení tohoto návodu je již součástí minimální instalace Rhel 8 |
Jiné | Oprávnění uživatele root k instalaci potřebných balíčků |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Která verze Node.js?
Jak jsme viděli v předchozím článku o instalaci php na Rhel8, verze Red Hat Enterprise Linux zavádí nový způsob organizace softwaru v úložištích. Ve výchozím nastavení jsou v distribuci povoleny pouze dva zdroje softwaru:BaseOs
a Appstream
. První obsahuje základní balíčky potřebné pro operační systém, zatímco druhý hostuje různé typy softwaru uspořádané do modules
.
Hlavní výhodou použití tohoto paradigmatu je, že je možné si vybrat mezi různými verzemi stejné aplikace nebo nástroje. Node.js je jednou z aplikací zahrnutých do Appstream
úložiště, takže ke kontrole verzí tohoto Javascriptového runtime dostupného na RHEL 8, vše, co musíme udělat, je použít module
, dílčí příkaz dnf
, správce distribučních balíčků. Spouštíme:
$ sudo dnf module list nodejs
Výstup příkazu zobrazuje dostupné moduly a jejich stav:
Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime nodejs 8 development, minimal, s2i, default [d] Javascript runtime Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Co nám tento výstup říká? Nejprve můžeme vidět, že existují dvě verze (neboli „streamy“) Node.js
dostupné v systému:10 a 8. Můžeme také vidět, že první je označen jako [d]
a proto je nastaven jako výchozí k instalaci. Pro každý stream je k dispozici několik profilů:bude nainstalována jiná sada balíčků v závislosti na tom, který z nich je vybrán. Chcete-li zobrazit seznam balíčků, které by byly nainstalovány s každým profilem, můžeme spustit následující příkaz:
$ sudo dnf module info --profile nodejs
Syntaxe příkazu je intuitivní:použili jsme dnf
pomocí module
dílčí příkaz a info
akci, požádat o informace o modulu nodejs. Poskytnutím --profile
zadali jsme, že chceme informace o dostupných profilech. Zde je výstup příkazu:
Name : nodejs:10:20181011133319:9edba152:x86_64 development : nodejs : nodejs-devel : npm minimal : nodejs s2i : nodejs : nodejs-nodemon : npm default : nodejs : npm Name : nodejs:8:20181011134412:9edba152:x86_64 development : nodejs : nodejs-devel : npm minimal : nodejs s2i : nodejs : nodejs-nodemon : npm default : nodejs : npm
Pro každý dostupný stream se zobrazí seznam balíčků zahrnutých v každém profilu. Můžeme to vidět pomocí default
profilu, balíčky zahrnuté v instalaci jsou nodejs
sám a npm
, Správce balíčků uzlů. Pomocí development
profil, nodejs-devel
balíček je přidán do seznamu, zatímco při použití minimal
za prvé, jediný nainstalovaný balíček je nodejs. Nakonec s2i
Profil (Source-to-Image) zahrnuje nodejs, npm a nodejs-nodemon, což je v podstatě skript určený k použití při vývoji aplikace node.js.
Instalace výchozí verze
Nyní, když známe dostupné verze Node.js, můžeme se rozhodnout, kterou nainstalovat. Jak jsme si řekli výše, výchozí verze je 10. Pokud je tato požadovaná, vše, co musíme udělat, je spustit:
$ sudo dnf install nodejs
Na terminálu se zobrazí souhrn balíčků k instalaci a jejich závislostí a systém požádá o potvrzení, aby mohl pokračovat:
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing: nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M Installing dependencies: npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k Enabling module streams: nodejs 10 Transaction Summary ====================================================================================================================================================== Install 4 Packages Total download size: 12 M Installed size: 57 M Is this ok [y/N]:
Určení verze k instalaci
Co když chceme nainstalovat alternativní verzi (stream
v terminologii Rhel) nebo jiný profil? Syntaxe je poměrně jednoduchá:
name:stream/profile
V podstatě k instalaci výchozí verze nodejs
modul, ale s development
profilu, spustíme:
$ sudo dnf module install nodejs:10/development
Seznam balíčků, které budou nainstalovány, se zvýší podle změny profilu:
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing group/module packages: npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M nodejs-devel x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 11 M nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M Installing dependencies: redhat-rpm-config noarch 115-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 82 k perl-srpm-macros noarch 1-25.el8 Rhel-8-for-x86_64-appstream-beta-rpms 11 k go-srpm-macros noarch 2-16.el8 Rhel-8-for-x86_64-appstream-beta-rpms 14 k dwz x86_64 0.12-9.el8 Rhel-8-for-x86_64-appstream-beta-rpms 109 k libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k python3-rpm-macros noarch 3-35.el8 Rhel-8-for-x86_64-appstream-beta-rpms 13 k rust-srpm-macros noarch 5-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.3 k ocaml-srpm-macros noarch 5-4.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.5 k efi-srpm-macros noarch 3-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 22 k qt5-srpm-macros noarch 5.11.1-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 11 k http-parser-devel x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 18 k nodejs-packaging noarch 17-2.el8+1541+81a6effd Rhel-8-for-x86_64-appstream-beta-rpms 19 k libuv-devel x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 34 k ghc-srpm-macros noarch 1.4.2-7.el8 Rhel-8-for-x86_64-appstream-beta-rpms 9.4 k python-srpm-macros noarch 3-35.el8 Rhel-8-for-x86_64-appstream-beta-rpms 14 k openblas-srpm-macros noarch 2-2.el8 Rhel-8-for-x86_64-appstream-beta-rpms 8.0 k krb5-devel x86_64 1.16.1-19.el8 Rhel-8-for-x86_64-baseos-beta-rpms 546 k libsepol-devel x86_64 2.8-1.el8 Rhel-8-for-x86_64-baseos-beta-rpms 85 k libcom_err-devel x86_64 1.44.3-1.el8 Rhel-8-for-x86_64-baseos-beta-rpms 37 k pcre2-devel x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 591 k zip x86_64 3.0-21.el8 Rhel-8-for-x86_64-baseos-beta-rpms 270 k libkadm5 x86_64 1.16.1-19.el8 Rhel-8-for-x86_64-baseos-beta-rpms 184 k unzip x86_64 6.0-38.el8 Rhel-8-for-x86_64-baseos-beta-rpms 192 k keyutils-libs-devel x86_64 1.5.10-6.el8 Rhel-8-for-x86_64-baseos-beta-rpms 48 k openssl-devel x86_64 1:1.1.1-6.el8 Rhel-8-for-x86_64-baseos-beta-rpms 2.3 M libselinux-devel x86_64 2.8-5.el8 Rhel-8-for-x86_64-baseos-beta-rpms 199 k zlib-devel x86_64 1.2.11-10.el8 Rhel-8-for-x86_64-baseos-beta-rpms 56 k pcre2-utf16 x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 223 k libverto-devel x86_64 0.3.0-5.el8 Rhel-8-for-x86_64-baseos-beta-rpms 18 k pcre2-utf32 x86_64 10.31-11.el8 Rhel-8-for-x86_64-baseos-beta-rpms 215 k Installing module profiles: nodejs/development Enabling module streams: nodejs 10 Transaction Summary ====================================================================================================================================================== Install 34 Packages
Stejným způsobem bychom pro instalaci verze 8 běhového prostředí Javascript s výchozím profilem spustili:
$ sudo dnf module install nodejs:8
V tomto případě, protože jsme chtěli použít výchozí profil, jsme jej vynechali zahrnout do příkazu. Jak si můžete
ve výstupu níže ověřit, verze balíčků k instalaci se znovu změnila:
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing group/module packages: nodejs x86_64 1:8.11.4-2.el8+2022+2ec55091 Rhel-8-for-x86_64-appstream-beta-rpms 7.5 M npm x86_64 1:5.6.0-1.8.11.4.2.el8+2022+2ec55091 Rhel-8-for-x86_64-appstream-beta-rpms 4.1 M Installing dependencies: libuv x86_64 1:1.23.1-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 134 k http-parser x86_64 2.8.0-1.el8 Rhel-8-for-x86_64-appstream-beta-rpms 40 k Installing module profiles: nodejs/default Enabling module streams: nodejs 8 Transaction Summary ====================================================================================================================================================== Install 4 Packages
Předpokládejme, že jsme potvrdili instalaci výše uvedeného seznamu balíčků. Pokud nyní spustíme:
$ sudo dnf module list nodejs
Můžeme vidět změny, které se projeví v zápisu použitém ve výstupu:
Name Stream Profiles Summary nodejs 10 [d] development, minimal, s2i, default [d] Javascript runtime nodejs 8 [e] development, minimal, s2i, default [d] [i] Javascript runtime Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Verze 10
je stále označena jako výchozí, ale nyní verze 8
stream je označen [e]
což znamená, že byl automaticky povolen. Kromě toho [i]
značka se používá v sekci profilů stejného streamu, poblíž názvu nainstalovaného.
Změna verze
Co když jsme nainstalovali konkrétní verzi Node.js a chceme přejít na jinou? V podstatě musíme specifikovat novou verzi k instalaci a o zbytek se postará systém. Například pro přepnutí zpět na verzi 10
znovu běžíme:
$ sudo dnf module install nodejs:10/default
Vypočítají se a zobrazí se nám akce, které by byly provedeny za účelem uspokojení požadavku. V Transaction Summary
části výstupu níže si můžeme skutečně všimnout, že by byly upgradovány 2 balíčky (nodejs a npm):
====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Upgrading: npm x86_64 1:6.4.1-1.10.11.0.2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 3.6 M nodejs x86_64 1:10.11.0-2.el8+2021+27085a9b Rhel-8-for-x86_64-appstream-beta-rpms 8.4 M Switching module streams: nodejs 8 -> 10 Transaction Summary ====================================================================================================================================================== Upgrade 2 Packages
Závěry
Node.js je runtime založený na V8 Javascript engine vytvořeném společností google a původně používaný v prohlížeči Chrome. Pomocí něj můžeme vytvářet aplikace využívající Javascript mimo kontext webového prohlížeče. V tomto tutoriálu jsme viděli, jak nainstalovat nodejs
balíček na operačním systému RHEL/CentOS Linux 8, jaké verze balíčku jsou dostupné ve výchozích repozitářích, jak je možné konkrétní nainstalovat a jak díky modules
, nový způsob organizace softwaru v nejnovější verzi podnikové distribuce Red Hat, můžeme přecházet z jedné verze na druhou.