Accueil En bref Objectifs Services Contact Adhésion Abonnement Tarifs Brique Internet Vidéos L'Association Support Déploiement Changements

MAJ ports packages

Pré-requis : lire la FAQ d'OpenBSD sur les packages et les ports.

Principe général

Tout d'abord, il faut avoir un arbre des ports à jour. La démarche est expliquée sur Comment mettre à jour OpenBSD ?.

Pour vérifier que l'ensemble des logiciels est à jour, il y a dans /usr/ports/infrastructure/bin "out-of-date" qui permet de vérifier si des logiciels ont une mise à jour disponible.

Par exemple :

 /usr/ports/infrastructure/bin$ out-of-date                                        
 Collecting installed packages: ok
 Collecting port versions: ok
 Collecting port signatures: ok
 Outdated ports:

 databases/p5-DBD-Pg            # @postgresql-client-9.1.4 -> @postgresql-client-9.1.9
 devel/git,-main                # @curl-7.26.0 -> @curl-7.26.0p0
 devel/quirks                   # always-update -> quirks-1.73
 lang/php/5.3,-pgsql            # @postgresql-client-9.1.4 -> @postgresql-client-9.1.9
 net/freeradius,-pgsql          # @freeradius-2.1.12,@postgresql-client-9.1.4 -> @freeradius-2.1.12p0,@postgresql-client-9.1.9
 security/gnupg                 # @curl-7.26.0 -> @curl-7.26.0p0

On a ici la liste des logiciels qui ont une version plus récente disponible.

Supposons maintenant que postgresql soit vulnérable et qu'il faille le mettre à jour (ce qui suit est une manière de faire, d'autres sont possibles). On se déplace à l'endroit idoine :

 $ cd /usr/ports/databases/postgresql

Étant donné que compiler pgsql prend du temps, au lieu de `make install`, on fait un `make package`, cela va compiler le soft. Une fois que c'est fait, le package créé est présent dans /usr/ports/packages. Il suffit de faire ce qu'on a à faire pour la base (l'arrêter, faire un dump etc.) puis :

 $ sudo pkg_add le_package_compile

Et voilà, c'est à jour \o/

Flavors

Les flavors sont des options qu'on peut avoir avec certains logiciels. Par exemple pour Apache2, on peut l'installer avec et sans support de ldap. Pour savoir quelles sont ces options, on se place dans le dossier du logiciel et on utilise la commande `make show=FLAVORS`.

Si on veut compiler un port avec un flavor particulier, il suffit d'utiliser la commande `env FLAVOR="ldap" make package`.

Par contre les dépendances ne sont pas compilées avec le flavor. Il faut donc vérifier si les dépendances nécessitent le "flavor" aussi. Toujours dans l'exemple d'Apache2 ldap, il y a comme dépendance OpenLDAP? qui n'a pas de flavor, mais lui même a besoin de Cyrus-sasl2. Si on veut du support ldap avec Cyrus, il faut builder ce dernier avec le flavor (avec `env FLAVOR="ldap" make package`) sinon, ce n'est pas nécessaire.