class

Beryl::Apply::PkgVersioned

Inherits Beryl::Apply::Primitive < Reference < Object

Primitive pkg-versioned : installe un paquet FreeBSD versionné du type <base><NN>-<composant> (mariadb, postgresql, mysql…). Idempotente.

- pkg-versioned:
    base: mariadb
    version: latest      # défaut ; ou un numéro FreeBSD : 114, 1011…
    only: server         # optionnel : `server` ou `client`
    server_package: postgresql18-server-aloli   # optionnel, cf. plus bas

Sans only → installe server ET client. version: latest (ou absent) → résolu par la VRAIE version (pkg rquery '%v %n' | sort -V), car l'encodage FreeBSD sans point piège un tri des noms (mariadb 10.11 = 1011 se classerait après 11.4 = 114). Capacité ÉTROITE : installer un paquet versionné, rien d'autre.

latest ne vaut qu'à la PREMIÈRE installation : si une version majeure est déjà en place (<base>NN-server ou -client), elle est gardée. Sinon pkg install de la majeure suivante remplacerait le paquet (conflit) et le cluster existant (/var/db/postgres/data18) ne serait plus servi : le serveur repartirait sur un data dir vide, ou ne démarrerait pas. Une montée de majeure est une migration (pg_upgrade, mariadb-upgrade), pas un apply.

server_package : NOM EXACT du serveur, à la place de <base>NN-server — un paquet maison de la même majeure (options différentes, ex. PostgreSQL sans JIT), le client restant l'officiel. Exige une version explicite (un paquet maison n'existe que pour SA majeure) et un nom qui commence par <base><version>-server. Remplacer le serveur officiel déjà installé par le maison est le travail de la recette (arrêt, retrait, installation, redémarrage) : ici, on ne fait qu'installer ce qui manque.

Instance methods

apply(shell : Shell, params : Hash(String, YAML::Any), dry_run : Bool, context : Context) : StepResult

params est le hash brut du step YAML (ex: {"packages" => [...]}), déjà interpolé par l'Executor. context porte les infos dérivées du host (cf. Context).

Source
name

Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).

Source