22
0
Fork 0

Mise à jour HowtoNodeJS

This commit is contained in:
Ludovic Poujol 2022-03-18 15:15:04 +01:00
parent bb39a50f0d
commit 66eeb271c0
1 changed files with 44 additions and 29 deletions

View File

@ -8,48 +8,63 @@ title: Howto NodeJS
[Node.js](https://nodejs.org/) est une implémentation libre en langage Javascript orientée pour les applications réseau événementielles. Node.js intègre une bibliothèque HTTP permettant de faire tourner un serveur web, notamment en utilisant le protocole [WebSocket](https://fr.wikipedia.org/wiki/WebSocket).
Cette documentation est compatible avec Debian **Jessie**, **Stretch** et **Buster**
Cette documentation est compatible avec Debian **Stretch**, **Buster** et **Bullseye**
## Installation
### Buster
En temps normal, nous préconisons l'installation de NodeJS avec les paquets Debian produits et distribuées par NodeSource pour deux raisons :
Nous préconisons l'installation des paquets Debian distribués par NodeSource (version 14.x LTS). En effet, ceux présent dans Debian Buster, bien qu'en version 10.24.0, ne semblent pas présenter les mêmes optimisations que ceux distribués par NodeSource. Ainsi, sur les temps de démarrage du moteur NodeJS, on constate jusqu'à 600ms de plus contre des temps inférieurs à 100ms pour la version NodeSource, ce qui peut être pénalisant dans certains cas d'usage.
1/ NodeJS a un cycle de publication de version plus rapide que celui de Debian, il est donc nécessaire de passer par un dépot tiers pour obtenir les versions plus récentes.
2/ Dans certains situations, même avec des versions similaires, les paquets de Debian ne semblent pas avoir les mêmes optimisations que ceux de NodeSource, ce qui peut être penalisant dans certains cas d'usage.
> **Note** : On va avoir tendence à préférer les versions *paires* de NodeJS qui sont des version à support long terme (LTS)
### Utilisation de NodeSource (**Stretch**, **Buster** et **Bullseye**)
L'url du dépot à utiliser suit le modèle `https://deb.nodesource.com/<VERSION_NODEJS> <DISTRIBUTION_LINUX> main`
Avec `<DISTRIBUTION_LINUX>` étant le nom de code de la distribution :
* *stretch*
* *buster*
* *bullseye*
Et `<VERSION_NODEJS>` étant la branche de version souhaitée :
* *node_10.x*
* *node_12.x*
* *node_14.x*
* *node_16.x* : Version LTS actuelle
Exemple pour avoir la version 16.x en Debian 11 (bullseye)
~~~
# echo "deb http://deb.nodesource.com/node_14.x buster main" >> /etc/apt/sources.list.d/nodesource.list
# apt install apt-transport-https
# echo "deb http://deb.nodesource.com/node_16.x buster main" >> /etc/apt/sources.list.d/nodesource.list
# wget https://deb.nodesource.com/gpgkey/nodesource.gpg.key -O /etc/apt/trusted.gpg.d/nodesource.asc
# chmod 644 /etc/apt/trusted.gpg.d/nodesource.asc
# apt update && apt install nodejs
$ nodejs -v
v14.17.5
$ node -v
v16.14.2
~~~
### Note pour Buster et nodejs 10.x
### Jessie/Stretch
Nous préconisons l'installation des paquets Debian distribués par NodeSource (version 10.x LTS). En effet, ceux présent dans Debian Stretch sont assez anciens (Version: 4.x). Idem pour ceux dans les dépôts de Debian Jessie (Version: 0.10)
Nous préconisons l'installation des paquets Debian distribués par NodeSource (version 10.x LTS). En effet, ceux présent dans Debian Buster, bien qu'en version 10.24.0, ne semblent pas présenter les mêmes optimisations que ceux distribués par NodeSource. Ainsi, sur les temps de démarrage du moteur NodeJS, on constate jusqu'à 600ms de plus contre des temps inférieurs à 100ms pour la version NodeSource, ce qui peut être pénalisant dans certains cas d'usage.
~~~
# echo "deb http://deb.nodesource.com/node_10.x stretch main" >> /etc/apt/sources.list.d/nodesource.list
# apt install apt-transport-https
# echo "deb http://deb.nodesource.com/node_10.x buster main" >> /etc/apt/sources.list.d/nodesource.list
# wget https://deb.nodesource.com/gpgkey/nodesource.gpg.key -O /etc/apt/trusted.gpg.d/nodesource.asc
# chmod 644 /etc/apt/trusted.gpg.d/nodesource.asc
# apt update && apt install nodejs
$ nodejs -v
v10.16.3
$ node -v
v10.24.1
~~~
### Version 16.x (Prochaine version LTS)
Pour avoir Node.js 16.X on utilisera la source suivante :
~~~
# echo "deb http://deb.nodesource.com/node_16.x buster main" >> /etc/apt/sources.list.d/nodesource.list
# wget https://deb.nodesource.com/gpgkey/nodesource.gpg.key -O /etc/apt/trusted.gpg.d/nodesource.asc
~~~
## Modules npm
### Utilisateur
@ -101,13 +116,7 @@ Et ainsi rendre la commande disponible via /usr/bin/<nom_module> et les biblioth
Yarn est un gestionnaire de dépendances pour NodeJS : <https://yarnpkg.com/fr/>
Il utilise le même registre de paquets que NPM mais pas le même mécanisme de résolution de l'arbre des dépendances.
Installation par NPM :
~~~
# npm install yarn
~~~
Installation via un paquet Debian :
Cas normal : Installation via un paquet Debian (pour tous les utilisateurs) :
~~~
# echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list
@ -117,13 +126,19 @@ Installation via un paquet Debian :
# apt update && apt install yarn
~~~
Cas spécifique : installation par NPM (juste pour un utilisateur)
~~~
$ npm install yarn
~~~
### PM2
[PM2 (Process Manager 2)](https://pm2.io) est un système de gestion de processus en production. Il peut s'assurer du bon fonctionnement du (ou des) processus applicatif, collecter les logs, faire du load balancing, etc...
La version "Runtime" est peut être installée simplement avec npm, ou via un paquet Debian :
~~~
# echo "deb https://packagecloud.io/Keymetrics/pm2/debian/ stretch main" > /etc/apt/sources.list.d/pm2.list
# wget https://packagecloud.io/Keymetrics/pm2/gpgkey -O /etc/apt/trusted.gpg.d/pm2.asc