Outils pour utilisateurs

Outils du site


openbsd.org:faq:upgrade69

OpenBSD Upgrade Guide: 6.8 to 6.9 : (v1.5 : 04/05/2021)

[ FAQ Index ] | [ 6.7 -> 6.8 ] ~ Traduction française du Guide de Migration OpenBSD : 6.8 vers 6.9

Guide de migration : 6.8 vers 6.9

Les mises à jour sont seulement supportées d'une version à celle qui la suit immédiatement.

Veuillez lire et bien comprendre ce processus avant de l'essayer. Concernant les machines critiques ou physiquement distantes, testez-la sur un système local identique d'abord.

Avant d'utiliser une méthode de mise à niveau

  • Vérifiez l'espace disque de /usr. Vérifiez que la partition /usr a au moins 1.1 Go. Avec moins d'espace la mise à niveau peut échouer, vous devriez considérer de réinstaller le système complètement à la place.
  • Vérifiez pf.conf(5). pf(4) et pfctl(8) sont maintenant plus strict à-propos des règles de validation qui utilisent des ensembles de ports.
    La vue ci-dessous montre un ensemble de ports incorrect qui était précédemment accepté :
    port 2004:2000
    port 2004 >< 2000
    port 2004 <> 2000 # range should be low-high
    port 2000 >< 2000 # range should not be a single port


    Si vous mettez à jour hors accès par console, vérifiez et corrigez les ensembles avant la mise à jour.

  • Lire les changements de configuration et de syntaxe. Il y a de nombreux changements de configuration et de changements dans les paquets qui peuvent requérir une planification avant de démarrer la mise à jour.

Méthodes de mise à niveau

  • Mise à niveau sans surveillance. Cette méthode la plus simple est une méthode pour mettre à niveau sans surveillance en utilisant sysupgrade(8). Le programme téléchargera tous les jeux d'installations, vérifiera leurs signatures, et redémarrera pour assumer automatiquement la mise à niveau. Une fois la mise à niveau effectuée, continuez selon ce qui est décrit ci-dessous.
  • Mise à niveau interactive. Si vous insistez pour ne pas utiliser certains jeux d'installation, vous voudrez exécuter une mise à niveau interactive. (sysupgrade met à niveau avec tous les jeux d'installations).
  • Mise à niveau manuelle. La dernière option est d'utiliser le processus de mise à niveau manuelle. (Ce n'est pas recommandé du tout, car c'est la méthode la plus sujette aux erreurs).

Mise à Niveau Interactive

Vérifiez bsd.rd et SHA256.sig en utilisant signify(1) :

$ signify -C -p /etc/signify/openbsd-69-base.pub -x SHA256.sig bsd.rd
  Signature Verified
  bsd.rd: OK
  • Ensuite, démarrez sur le noyau d'installation bsd.rd, récupéré précédemment. Mettez-le à la racine de votre système de fichier et instruisez le chargeur de démarrage de démarrer sur ce noyau. Une fois démarré sur ce noyau, choisissez l'option (U)pgrade et suivez les invites.
  • Après que les jeux d'installation aient été installés, le système redémarrera avec le noyau mis à jour. Maintenant, continuez avec la nouvelle étape :

Après la mise à niveau

Après la mise à niveau des jeux d'installation, le système redémarrera avec le noyau mis à jour et exécute sysmerge(8) durant le boot. Dans certains cas, les fichiers de configuration ne peuvent être modifiés automatiquement. Exécutez :

# sysmerge 

pour vérifier et assumer ces changements de configuration.

Ensuite, supprimez les vieux fichiers. Finissez par la mise à niveau des paquets en utilisant pkg_add -u.

Vous pouvez vérifier la page errata pour connaître les correctifs suivant la sortie.


Mise à niveau manuelle (sans le noyau d'installation)

Ceci N'EST PAS le processus recommandé. Utilisez la méthode d'installation du noyau autant que possible !

Parfois, vous avez besoin de faire une mise à jour d'une machine pour laquelle le processus normal de mise à jour n'est pas possible.

Préparation

Placez les fichiers d'installation au bon endroit. Assurez-vous d'avoir assez d'espace disque ! Exécuter une mise à jour à distance sans l'espace nécessaire pourrait être… catastrophique. Notez que l'usage de softdeps peut amplifier la situation car les fichiers supprimés ou réécrits ne restitueraient pas leur espace immédiatement. Envisagez le fait de désactiver l'option de montage softdep dans /etc/fstab et redémarrer avant de prendre le contrôle pour une mise à jour manuelle. Il est recommandé d'avoir au moins 500 Mo d'espace libre sur /usr.

Être root. Bien que l'usage de doas(1) avant chaque commande soit généralement une bonne pratique, la commande serait probablement interrompue par les dernières étapes, ainsi vous devriez passer root avant de démarrer le processus. C'est une bonne chose de vérifier votre accès administrateur en utilisant une des autres méthodes que doas, c'est à dire, par une connexion directe ou en utilisant su(1).

Arrêtez et/ou désactivez toutes les applications appropriées. Durant ce processus, toutes les applications dans l'espace utilisateur seront remplacées mais peuvent ne pas fonctionner, et des dysfonctionnements peuvent arriver. Vous pouvez également avoir des problèmes avec la résolution DNS lors du premier redémarrage, en effet les règles PF et les montages NFS dépendants des résolutions DNS peuvent causer des problèmes de démarrage. Il peut y avoir d'autres applications que vous souhaitez empêcher de fonctionner immédiatement après la mise à jour, arrêtez-les et désactivez-les aussi.

Installation des nouveaux blocs de démarrage. Cela devrait être effectivement fait à la fin de chaque mise à niveau. Si cela a été négligé, alors le fait de ne pas le faire maintenant pourrait rendre non-fonctionnel la console série ou d'autres choses, selon votre plate-forme. Utilisez installboot(8), en supposant que sd0 soit votre disque de démarrage :

installboot sd0

Mise à jour manuelle

Installer les nouveaux noyaux. Les étapes supplémentaires de copie sur le noyau primaire sont faites pour s'assurer qu'il y a toujours un noyau valide sur votre disque.

Si vous utilisez un noyau pour multi-processeurs :

# cd /usr/rel    # où vous placez les fichiers de version
# ln -f /bsd /obsd && cp bsd.mp /nbsd && mv /nbsd /bsd
# cp bsd.rd /
# cp bsd /bsd.sp

Si vous utilisez un noyau pour un mono-processeur :

# cd /usr/rel    # où vous placez les fichiers de version
# ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
# cp bsd.rd bsd.mp /    # peut lever une alerte inoffensive

Activer KARL. Enregistrez la somme de contrôle du noyau :

# sha256 -h /var/db/kernel.SHA256 /bsd 

Installer le nouvel espace utilisateur. Sauvegardez une copie de reboot(8), décompressez et installez les archives tar, puis redémarrez. Installez base69.tgz en dernier, car le nouveau système de base, en particulier tar(1), gzip(1) et reboot(8) ne fonctionnent pas avec l'ancien noyau. Soit, vous décompressez les jeux de fichiers nécessaires manuellement :

# cp /sbin/reboot /sbin/oreboot
# tar -C / -xzphf xshare69.tgz
# tar -C / -xzphf xserv69.tgz
# tar -C / -xzphf xfont69.tgz
# tar -C / -xzphf xbase69.tgz
# tar -C / -xzphf man69.tgz
# tar -C / -xzphf game69.tgz
# tar -C / -xzphf comp69.tgz
# tar -C / -xzphf base69.tgz    # À installer en dernier !
# /sbin/oreboot

ou, si vous utilisez ksh(1), vous pouvez faire :

# cp /sbin/reboot /sbin/oreboot
# for _f in [!b]*69.tgz base69.tgz; do tar -C / -xzphf "$_f" || break; done
# /sbin/oreboot

Notez que tar(1) ne peut décompresser qu'une seule archive par invocation, donc un simple glob ne fonctionnera pas.

Après le redémarrage, mettre à jour /dev. Exécutez MAKEDEV(8) :

# cd /dev
# ./MAKEDEV all

Mettre à jour le chargeur de démarrage. Toujours en supposant que sd0 soit votre disque de démarrage :

# installboot sd0

Mettre à jour les fichiers de configuration système. Exécutez sysmerge(8) :

# sysmerge

Mettre à jour les micrologiciels. Il peut y avoir de nouveaux micrologiciels pour votre système. Mettez-les à jour avec fw_update(1) :

# fw_update

Pour terminer : Examinez les sorties de console post démarrage (en utilisant dmesg -s) et corrigez toute défaillance si nécessaire. Toutes les étapes concernant les changements de configuration ci-dessous s'appliquent également aux mises à jour manuelles. Enfin, supprimez /sbin/oreboot et mettez à jour vos paquets : pkg_add -u. Redémarrez une fois que vous êtes sûr d'utiliser les nouveaux fichiers de micrologiciels et votre propre noyau généré par KARL.


Changement de configuration et de syntaxe

  • hostname.if(5). La RFC 8981 a changé la terminologie IPv6 de confidentialité des adresses temporaire. autoconfprivacy dans les fichiers hostname.if(5) doit être changé par temporary.
  • iked.conf(5). De nouveaux mots clés ont été introduits à iked.conf pour simplifier la configuration lors de l'utilisation de “config address”.
    Avant quand “to 0.0.0.0” ou “to 0.0.0.0/0” était utilisée, elles seront remplacées par l'adresse assignée par le pair lors de la création de flux. “to dynamic” a été introduit pour rendre la syntaxe de la configuration plus claire.
    to 0.0.0.0” fonctionne comme avant mais peut être mise à jour avec la nouvelle syntaxe.
    to 0.0.0.0/0” sera maintenant traitée littéralement ; si l'ancien comportement est désiré, il doit être changé en “to dynamic”.
  • pf(4). Dans les versions précédentes, même si la redirection n'était pas configurée, pf(4) permettait la redirection de paquets avec af-to. Pour continuer à utiliser NAT64, il devra être paramétré avec sysctl :
    # sysctl net.inet.ip.forwarding=1
    # sysctl net.inet6.ip6.forwarding=1 
  • pf.conf(5). La syntaxe des options de routage de PF (route-to, reply-to, dup-to) a changé. Si l'utilisation de ces fonctionnalités sans accès console, revoyez /etc/pf.conf avant la mise à niveau ; la syntaxe précédente sera rejetée par pfctl(8).
    Les options précédemment acceptées pour une adresse IP et une interface réseau, par exemple :
    # address is directly reachable via the interfaces (showing both accepted formats)
    pass out proto tcp to port {80 443} route-to 192.0.2.1@ix0
    pass out proto udp to port 53 dup-to (em2 192.168.2.99)
    
    # using placeholder address to signify remote address on a point-to-point link
    pass in on pppoe1 reply-to 0.0.0.1@pppoe1 


    Maintenant elles prennent seulement l'adresse IP, et assument une recherche de route pour déterminer l'interface. Les exemples ci-dessus peuvent être maintenant écrits, tels que :

    # address is directly reachable via the interfaces
    pass out proto tcp to port {80 443} route-to 192.0.2.1
    pass out proto udp to port 53 dup-to 192.168.2.99
    
    # using :peer to use the remote address on a point-to-point link
    # using (...) to track changes dynamically
    pass in on pppoe1 reply-to (pppoe1:peer)


    Alternativement, pour certaines configurations utilisant ces fonctionnalités, il peut être plus simple d'utiliser de multiples tables de routage à la place (en utilisant les fonctionnalités rdomain d'ifconfig et rtable de pf.conf).

  • smtpd.conf(5). Puisque smtpd(8) a été porté vers la bibliothèque libtls, la manière de gérer SNI a changé :
    • L'ensemble de certificats d'un listener TLS doit être explicitement défini par l’utilisation de l'option pki listener plusieurs fois :
      pki "mail.example.com" cert "/etc/ssl/mail.example.com.crt"
      pki "mail.example.com" key "/etc/ssl/private/mail.example.com.key"
      
      pki "mail.example.org" cert "/etc/ssl/mail.example.org.crt"
      pki "mail.example.org" key "/etc/ssl/private/mail.example.org.key"
      
      listen on egress tls pki "mail.example.com" \
                               pki "mail.example.org"
    • Le certificat à utiliser est maitenant choisi par la recherche des noms contenus dans les certificats définis pour les listeners. L'étiquette de l'entrée pki, elle-même, n'est plus pertinente.
  • Les configurations qui utilisent seulement un certificat unique n'ont plus besoin de mise à jour.
  • snmpd.conf(5). Le nettoyage du code de traphandler dans snmpd(8) met en lumière les changements suivants :
    • Pour définir une “trap handle”, activez explicitement la fonctionnalité de notification sur la socket d'écoute.
      listen on 127.0.0.1

      doit devenir

      listen on 127.0.0.1
      listen on 127.0.0.1 notify
    • Les paquets trap entrants doivent maintenant être vérifiés contre les “trap community”.
    • traphandler_v1translate est maintenant pleinement conforme avec la section 3.1 de la RFC3584. Les manipulateurs des “generic-trap < 6” ont besoin de modifier les scripts de “trap handle” et potentiellement d'ajouter des états “trap handle” en accord avec la section 3.1.3 de la RFC3584.
    • Faire fonctionner snmpd(8) sans l'option -N affiche maintenant iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0 (premier varbind) conformément à ses définitions MIB internes (iso.org.dod.internet.mgmt.mib_2.system.sysUpTime.0).
    • Faire fonctionner snmpd(8) avec l'option -N affiche maintenant iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0 (premier varbind) numériquement (.1.3.6.1.2.1.1.3.0).
    • Faire fonctionner snmpd(8) avec l'option -N affiche maintenant iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.snmpTrap.snmpTrapOID.0 (second varbind) numériquement (1.3.6.1.6.3.1.1.4.1.0).
  • video(4). De la même manière que la gestion de l'enregistrement audio, l'enregistrement vidéo a été désactivé par défaut dans video(4). Il doit être ré-activé tel que :
    # sysctl kern.video.record=1 # enable at runtime
    # echo kern.video.record=1 >> /etc/sysctl.conf # set at boot

Fichiers à supprimer

  • Perl a été mis à niveau vers 5.32.1 et certains fichiers ne sont plus inclus et peuvent être supprimés.
    # rm -rf /usr/bin/podselect \
              /usr/lib/libperl.so.20.0 \
              /usr/libdata/perl5/*/CORE/dquote_inline.h \
              /usr/libdata/perl5/*/Tie \
              /usr/libdata/perl5/*/auto/Tie \
              /usr/libdata/perl5/Pod/Find.pm \
              /usr/libdata/perl5/Pod/InputObjects.pm \
              /usr/libdata/perl5/Pod/ParseUtils.pm \
              /usr/libdata/perl5/Pod/Parser.pm \
              /usr/libdata/perl5/Pod/PlainText.pm \
              /usr/libdata/perl5/Pod/Select.pm \
              /usr/libdata/perl5/pod/perlce.pod \
              /usr/libdata/perl5/unicore/Heavy.pl \
              /usr/libdata/perl5/unicore/lib/Lb/EB.pl \
              /usr/libdata/perl5/unicore/lib/Perl/_PerlNon.pl \
              /usr/libdata/perl5/unicore/lib/Sc/Armn.pl \
              /usr/libdata/perl5/utf8_heavy.pl \
              /usr/share/man/man1/podselect.1 \
              /usr/share/man/man3p/Pod::Find.3p \
              /usr/share/man/man3p/Pod::InputObjects.3p \
              /usr/share/man/man3p/Pod::ParseUtils.3p \
              /usr/share/man/man3p/Pod::Parser.3p \
              /usr/share/man/man3p/Pod::PlainText.3p \
              /usr/share/man/man3p/Pod::Select.3p
  • Un nettoyage plus détaillé peut être fait à l'aide du paquet sysclean.

Paquets spécifiques

  • databases/postgresql. Mise à jour majeure vers PostgreSQL 13.2. Utilisez pg_upgrade tel que décrit dans le fichier pkg-readme de postgresql-server ou faites un dump pour restauration.
  • games/multimc. Avec l'import de games/lwjgl3, multimc a été mis à jour afin de permettre de jouer avec les dernières versions de Minecraft. Pour jouer les anciennes versions de Minecraft ≤ 1.12.2, lisez le pkg-readme ou utilisez le paquet minecraft.
  • security/yubiserve. Le paquet “yubiserve” n'est plus maintenu et requiert une version de Python obsolète. Il a été remplacé par “yubikeyedup”. Bien qu'il soit largement compatible avec l'utilisation la plus courante de yubiserve, il a ses limites : il supporte seulement sqlite3 (utilisant le même schema qu'auparavant), pas d'autres bases de données, et il supporte seulement HTTP en interne ; si vous voulez utiliser HTTPS alors vous devrez utiliser un proxy (e.g. relayd ou nginx). Il n'utilise plus de fichier de configuration, seulement des arguments en ligne de commande.
  • www/rt. La mise à niveau vers 5.0.0 déplace le répertoire de configuration par défaut de /etc/rt3 vers /etc/rt. Assurez vous de déplacer tous les fichiers de configurations modifiés vers ce nouveau chemin.

[ FAQ Index ] | [ 6.7 -> 6.8 ]


Cette page est la traduction officieuse de la page “Upgrade Guide: 6.8 to 6.9” de la FAQ officielle d'OpenBSD.
En cas de doute, merci de vous y référer !

Si vous voulez participer à l'effort de traduction, merci de lire ce topic.


Contribut(rice|eur)s :

pengouinpdt
openbsd.org/faq/upgrade69.txt · Dernière modification: 2021/05/07 21:02 de pengouinpdt