Proxmox [Tuto] Suppression de l'avertissement de licence (nag-screen) dans Proxmox 9.x

MilesTEG

Administrateur
Membre du personnel
6 Septembre 2020
3 830
918
313
Bonjour,
Ce petit tuto vise à supprimer l'avertissement de licence (nag-screen) dans Proxmox 9.x à l'aide d'un script lancé automatiquement après une mise à jour avec la commande `apt`.
Le script va modifier le fichier `/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js` pour ne plus avoir l'avertissement de licence. Il faudra ensuite vider le cache du navigateur.
Il va aussi stocker le n° de version du paquet proxmox-widget-toolkit pour lequel il vient de faire la modification du proxmoxlib.js afin de ne pas retenter si le paquet ne change pas. (Attention, le script ne va pas détecter un changement manuellement effectué dans le fichier si ce n'est pas due à un changement de version du dit paquet).
Il loguera toutes ses actions dans un fichier.

Récapitulatif des fichiers à créer :
  • /etc/apt/scripts/no-nag-fix.sh : il s'agit du script à proprement parler,
  • /etc/apt/apt.conf.d/99-no-nag-script : il s'agit du fichier de configuration qui sera appelé à la fin de toutes commande apt upgrade.
Récapitulatif des fichiers qui seront créés par le script (ces deux fichiers sont définis dans des variables modifiables dans le script) :
  • /var/log/no-nag.log : il s'agit du fichier log qui contiendra les retours du script,
  • /var/lib/no-nag.version : il s'agit du fichier stockant la dernière version du paquet pour laquelle le script à modifié le fichier proxmoxlib.js .

Je recommande de faire une copie de sauvegarde du fichier qui sera modifié :
Bash:
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.backup-$(date +%F--%Hh%Mm%Ss)




Un exemple de ce qui se trouvera dans les fichiers créés par le script :
  • /var/log/no-nag.log :
    Code:
    5.0.6
  • /var/lib/no-nag.version :
    Code:
    [2025-11-11 22:56:41] === Vérification du nag Proxmox ===
    [2025-11-11 22:56:41] ✅  [OK] Patch appliqué avec succès pour proxmox-widget-toolkit (5.0.6)
Lors de mes essais, j'ai du restaurer le fichier de configuration proxmoxlib.js à son état d'origine ;)
Il me semble aussi que la réinstallation du paquet permet de restaurer le fichier proxmoxlib.js à son état d'origine :
Bash:
sudo apt install --reinstall proxmox-widget-toolkit




Maintenant, voilà le contenu des fichiers :
  • /etc/apt/scripts/no-nag-fix.sh :
    Bash:
    #!/bin/bash
    # /etc/apt/scripts/no-nag-fix.sh
    # Patch automatique du "nag" d’abonnement Proxmox après mise à jour du toolkit
    # Version colorée avec emojis
    
    # sudo chown root:root /etc/apt/scripts/no-nag-fix.sh; sudo chmod 750 /etc/apt/scripts/no-nag-fix.sh;
    
    LOGFILE="/var/log/no-nag.log"
    TARGET="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"
    VERFILE="/var/lib/no-nag.version"
    DATE=$(date '+%Y-%m-%d %H:%M:%S')
    
    # Couleurs ANSI
    GREEN="\033[1;32m"
    YELLOW="\033[1;33m"
    RED="\033[1;31m"
    BLUE="\033[1;34m"
    NC="\033[0m" # Reset
    
    echo "[$DATE] === Vérification du nag Proxmox ===" >> "$LOGFILE"
    
    # Vérifie si le fichier JS existe
    if [ ! -f "$TARGET" ]; then
        MSG="❌  [ERREUR] Fichier introuvable : $TARGET"
        echo -e "${RED}${MSG}${NC}"
        echo "[$DATE] $MSG" >> "$LOGFILE"
        exit 0
    fi
    
    # Récupère la version actuelle du package
    VERSION=$(dpkg-query -W -f='${Version}' proxmox-widget-toolkit 2>/dev/null)
    
    if [ -z "$VERSION" ]; then
        MSG="❌  [ERREUR] Package proxmox-widget-toolkit non installé"
        echo -e "${RED}${MSG}${NC}"
        echo "[$DATE] $MSG" >> "$LOGFILE"
        exit 0
    fi
    
    # Vérifie si le patch a déjà été appliqué pour cette version
    if [ -f "$VERFILE" ] && [ "$(cat "$VERFILE")" = "$VERSION" ]; then
        MSG="ℹ️  [INFO] Version $VERSION déjà patchée, rien à faire"
        echo -e "${GREEN}${MSG}${NC}"
        echo "[$DATE] $MSG" >> "$LOGFILE"
        exit 0
    fi
    
    # Vérifie si le patch est déjà présent dans le fichier JS
    if grep -q "NoMoreNagging" "$TARGET"; then
        MSG="ℹ️  [INFO] Patch déjà présent pour proxmox-widget-toolkit ($VERSION)"
        echo -e "${GREEN}${MSG}${NC}"
        echo "[$DATE] $MSG" >> "$LOGFILE"
        echo "$VERSION" > "$VERFILE"
        exit 0
    fi
    
    # Applique le patch
    if sed -i '/data\.status/{s/\!//;s/active/NoMoreNagging/}' "$TARGET"; then
        MSG="✅  [OK] Patch appliqué avec succès pour proxmox-widget-toolkit ($VERSION)"
        echo -e "${BLUE}${MSG}${NC}"
        echo "[$DATE] $MSG" >> "$LOGFILE"
        echo "$VERSION" > "$VERFILE"
    else
        MSG="❌  [ERREUR] Impossible d’appliquer le patch sur $TARGET"
        echo -e "${RED}${MSG}${NC}"
        echo "[$DATE] $MSG" >> "$LOGFILE"
    fi
  • /etc/apt/apt.conf.d/99-no-nag-script :
    Bash:
    DPkg::Post-Invoke { "/etc/apt/scripts/no-nag-fix.sh || true"; };
    Pour ce fichier, il est vital d'avoir une commande dans les accolades {...} en une seule ligne, sinon, ça ne fonctionne pas...


Voilà, ensuite, lancer une session en navigation privée pour vérifier si tout fonctionne bien.
J'ai testé ça sur deux hôtes proxmox avec succès.

Voilà :)

PS : il se peut que cela fonctionne avec les versions précédentes, mais je n'ai pas pu tester :)
 
  • J'aime
Réactions: morgyann