Beryl::CLI::Upgrade
beryl upgrade [portée] [--apply] [--recipes] — pkg upgrade. DRY-RUN par
défaut (plan via pkg upgrade -n) ; --apply exécute réellement.
Constants
Dépôt du SYSTÈME de base (pkgbase) : réservé à beryl os-upgrade.
Relances qui coupent un accès réseau le temps de redémarrer : annoncées avant d'être faites.
Délai maximal d'une relance (secondes) ; timeout(1) sort alors en 124.
Niveau 4 de la trace de pkg : règles « X wants Y » et fournisseurs trouvés pour chaque bibliothèque requise (libpkg/pkg_solve.c, pkg_jobs_universe.c). Assez pour savoir QUI tire un nouveau paquet.
Class methods
Paquets vulnérables du host, ou nil si l'audit n'a pas pu se faire (base des vulnérabilités absente, pkg en erreur). Lecture seule.
Alerte paquets vulnérables, bien visible : un host par ligne avec ses paquets. nil si aucun. Pur.
pkg audit : paquets installés touchés par une vulnérabilité connue.
-F rafraîchit d'abord la base des vulnérabilités (vuln.xml, comme le
periodic quotidien) ; sur un host protégé, base existante seulement
(aucune écriture). N'installe ni ne modifie aucun paquet.
Nombre de paquets du système de base en attente (lecture seule), nil si le serveur n'est pas en pkgbase ou si la sonde échoue.
Paquets MODIFIÉS annoncés par pkg upgrade (-n ou -y) : sections
« Installed packages to be UPGRADED: » (\tnom: a -> b [dépôt]) et
« … REINSTALLED: » (\tnom-version [dépôt] (options changed)). Les
nouveaux paquets (INSTALLED) ne font tourner aucun service existant :
ignorés. Pur.
Bloc d'un host : FQDN seul, puis ses mises à jour indentées d'une
tabulation, « (vulnerable!) » en fin de ligne d'un paquet vulnérable
(pkg audit). Un vulnérable SANS mise à jour disponible a sa propre
ligne. Rien à lister : « fqdn : note » sur une ligne. Pur.
Ligne d'action, SEULEMENT s'il y a quelque chose à faire (mises à jour, paquets vulnérables, injoignables) : décompte non nul + commandes. Pur.
Sortie de flotte : un bloc par host, séparés par une ligne vide. Pur.
NOUVEAUX paquets annoncés par pkg upgrade (section « New packages to
be INSTALLED: », \tnom: version [dépôt]). Pur.
Trace du solveur pour les nouveaux paquets de output (plan d'un
dry-run), relancée en lecture seule ; vide s'il n'y en a pas.
Nom d'un paquet « nom-version » (sortie de pkg audit -q). Pur.
« Number of packages to be upgraded: 7 » (+ installed/reinstalled) → 7. 0 si pkg annonce que tout est à jour. Fonction pure.
Lignes de mise à jour de pkg upgrade -n, au format de pkg
(« nom: a -> b [dépôt] »), toutes sections « … to be X: ». Pur.
Services ACTIVÉS touchés par une mise à jour : scripts rc.d des paquets modifiés ET de tous ceux qui en dépendent, de proche en proche (une bibliothèque comme expat ou openssl met à jour le code de nginx, git…). Un service qui tourne garde l'ancien code en mémoire tant qu'il n'est pas relancé. Lecture seule.
pkg upgrade des seuls paquets LOGICIELS : les paquets installés HORS du
dépôt de base et disponibles dans un dépôt (pkg upgrade sans nom
toucherait aussi le noyau), restreints à pkgs si donné (mode
--recipes). Les règles de pkg s'appliquent tel quel à cette liste
(versions, options changées, nouvelles dépendances). Lecture seule en
dry-run : aucun verrou posé. Aucun paquet logiciel → rien, jamais pkg upgrade nu.
Un pkg upgrade -r <dépôt> PAR DÉPÔT D'ORIGINE (%R) : un paquet offert
par deux dépôts (gmp, mpfr, libffi… republiés par poudriere dans le
dépôt maison, copies de FreeBSD-ports) échappe sinon à la règle « ne pas
installer ce qui n'est pas installé » du solveur (posée seulement quand
il n'existe qu'UNE variante, libpkg/pkg_solve.c) : pkg l'installait sans
que rien ne le réclame, et pkg-autoremove le retirait aussitôt
(loulou, quantas, 27 oct. 2026). Un paquet absent de son dépôt d'origine
mais présent ailleurs : pkg upgrade sans -r (« - »), comme avant.
trace (dry-run seulement) : même plan, avec la trace du solveur
(SOLVER_DEBUG) sur la sortie d'erreur.
Lignes de la trace du solveur (DBG(n)[pid]> …) qui nomment l'un des
names, préfixe retiré, sans doublon : celles du solveur d'abord (les
règles « X wants Y »), puis les autres, sans les requêtes SQL internes
de pkg ((db) running: …, quantas, 27 oct. 2026) ; au plus TRACE_MAX
(+ décompte du reste). Un nouveau paquet sans dépendant déclaré (mpfr sur loulou, 27
oct. 2026, retiré une minute plus tard par pkg-autoremove) y montre la
règle qui l'a tiré. Pur.