Bloquer la version de NodeJS pour Mastodon 4.2.0
La toute dernière version de Mastodon s'accompagne d'un petit souci d'administration si vous utilisez Debian 12 (Bookworm) comme système d'exploitation pour votre serveur : NodeJS.
En effet, la version de NodeJS officiellement supportée est, malgré ce que dit la documentation, la 16.x et pas plus alors que Debian 12 embarque la version 18 dans ses valises. Pas de 18, pas de 20, donc. Enfin, pas exactement. Il est possible de les utiliser au prix d'une bidouille officiellement diffusée dans les réponses aux différents soucis relayés dans Github.
Enfin, si comme moi, vous n'avez pas envie de vous embêter plus que ça, voici comment faire pour être tranquille.
Installer le dépôt NodeJS 16 pour Debian 12
On commence par les keys :
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
On ajout le dépôt :
sudo echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x bookworm main
deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x bookworm main" > /etc/apt/sources.list.d/nodesource.list
On fait le pinning qui va bien :
Dans /etc/apt/preferences.d/nodejs-mastodon ajoutez :
Package: nodejs*
Pin: release o=Debian*
Pin-Priority: -1
Package: *
Pin: release o=deb.nodesource.com
Pin-Priority: 99
Vous pouvez maintenant supprimer la version NodeJS de Debian et installer la version des dépôts que vous venez d'ajouter :
apt update
apt purge nodejs
apt install apt install nodejs=16.20.2-deb-1nodesource1
Un apt-cache pour vérifier tout ça :
nodejs:
Installed: 16.20.2-deb-1nodesource1
Candidate: 16.20.2-deb-1nodesource1
Version table:
18.13.0+dfsg1-1 -1
500 http://deb.debian.org/debian bookworm/main amd64 Packages
150 http://deb.debian.org/debian unstable/main amd64 Packages
*** 16.20.2-deb-1nodesource1 500
500 https://deb.nodesource.com/node_16.x bookworm/main amd64 Packages
100 /var/lib/dpkg/status
Vous êtes tranquille maintenant ! Du moins, tant que NodeJS 14 est maintenu, ce qui commence à devenir un souci.