OBSD4* : wiki

Version de traduction basée sur la 6.1 officielle


Guide de migration : 6.0 vers 6.1

Les mises-à-jour sont seulement supportées d'une version à l'autre qui se suivent immédiatement. Veuillez lire et bien comprendre le processus avant de l'essayer. Concernant les machines critiques ou à distance, testez à l'identique, localement en premier.

Démarrez depuis le noyau d'installation bsd.rd : utilisez soit un media d'installation démarrable, ou placez la version 6.1 de bsd.rd à la racine de votre système de fichiers et informez le chargeur de démarrage au démarrage du noyau. Une fois que le noyau est démarré, choisissez l'option de mise-à-jour (U)pgrade et suivez les instructions. Finissez par la mise-à-jour des paquets : pkg_add -u.


Avant de redémarrer vers le nouveau noyau

Nettoyez /usr/share/man. Pour supprimer tous les manuels obsolètes : rm -rf /usr/share/man

Changement de la fonction bind cwm(1). La syntaxe de configuration pour les fonctions des boutons et touches a changé, remplaçant les mots-clés bind et mousebind par bind-key, bind-mouse, unbind-key, et unbind-mouse. Lire la page de manuel cwmrc(5) pour connaître les nouveaux noms des fonctions bind. Vous pouvez utiliser le script cwm-migrate-config pour mettre-à-jour le fichier de configuration avant la mise-à-jour :

    perl -pi.orig cwm-migrate-config.pl .cwmrc

Changement de l'installeur. Pour les architectures amd64, armv7, i386, hppa et macppc, l'installeur bsd.rd récupére par défaut les jeux de fichiers par https. Votre fichier de réponse autoinstall(8) doit avoir cette ligne additionnelle :

    Unable to connect using https. Use http instead = yes	# "no" is default

Entre les réponses à HTTP Server et Set name(s). De plus, la question à-propos de xdm a changé :

    Do you want the X Window System to be started by xenodm(1) 

Après la mise-à-jour système

Changement du système : Si vous avez l'intention de construire votre système depuis les sources dans le futur, vous avez besoin de fixer quelques permissions :

    # rm -rf /usr/obj/* /usr/xobj/*
    # chown build:wobj /usr/{,x}obj
    # chmod 770 /usr/{,x}obj

Il est recommandé d'ajouter les utilisateurs qui ont besoin de travailler avec l'arbre des sources au groupe wobj, ce qui leur permettra d'écrire dans /usr/obj.

Il est préférable de vérifier les sources les plus récentes depuis le serveur AnonCVS. Si vous avez besoin de mettre-à-jour un arbre de source pré-existant, vous avez besoin de faire quelques nettoyages en premier.

Nouveau format mandoc.db(5). Pour mettre-à-jour tous les fichiers mandoc.db(5) vers leur nouveau format, utilisez :

    makewhatis

softraid crypto a basculé vers bcrypt PBKDF. Les nouveaux volumes seront créés avec bcrypt PBKDF, toutefois les volumes existants continuent d'utiliser PKCS4 PBKDF2 jusqu'au changement de la passe-phrase.

Si vous démarrez sur un softraid crypto, assurez vous que le chargeur de démarrage a bien été mise-à-jour vers une version qui supporte le changement de votre passe-phrase. La version boot(8) devrait être au minimum 3.33 sur amd64 et 3.31 pour i386. De même, faites attention une fois que la passe-phrase a été changée, une vieille version de bioctl(8) (une de celles qui ne supporte pas bcrypt PBKDF) ne sera pas capable de “déverrouiller” le volume.

sqlite3 déplacé vers les ports. SQLite a été déplacé du système de base vers les ports. Supprimer tous les fichiers suivants après la mise-à-jour du SE et mettez-à-jour les paquets, mais ceci avant de construire n'importe quel port :

    rm /usr/bin/sqlite3
    rm /usr/include/sqlite3*.h
    rm /usr/lib/pkgconfig/sqlite3.pc
    rm /usr/libdata/perl5/site_perl/*-openbsd/sqlite3*.ph
    rm /usr/share/man/man1/sqlite3.1
    rm /usr/lib/libsqlite3*

Les utilisateurs uucp et news sont supprimés. L'utilisateur uucp et le groupe news ont été supprimés de la base.

    userdel uucp
    groupdel news
    rm -rf /var/spool/uucp*	# unless you use the net/uucp port

uxterm et koi8xterm supprimés. Les scripts shell uxterm et koi8xterm ont été supprimés, comme xterm(1) sur OpenBSD supporte toujours UTF-8 :

    cd /usr/X11R6
    rm bin/koi8rxterm bin/uxterm
    rm share/X11/app-defaults/KOI8RXTerm share/X11/app-defaults/UXTerm
    rm man/man1/koi8rxterm.1 man/man1/uxterm.1

Si vous éditez tout fichier de configuration appelant uxterm, n'oubliez pas de changer les appels vers xterm directement. Si vous avez défini des ressources X pour UXTerm, considérez leur migration vers XTerm.

xdm(1) remplacé par xenodm(1). Le serveur d'affichage X a migré vers xenodm(1). Si vous avez activé xdm dans votre fichier /etc/rc.conf.local, vous devez mettre-à-jour votre configuration :

    rcctl disable xdm
    rcctl enable xenodm

Tout fichier de configuration local fait pour /etc/X11/xdm/ devrait être migré vers son fichier correspondant dans /etc/X11/xenodm. Après cela les fichiers xdm devront être supprimés :

    rm -rf /etc/X11/xdm
    rm /usr/X11R6/bin/xdm /usr/X11R6/man/man1/xdm.1 /etc/rc.d/xdm

Changement de configuration et de syntaxe

iked(8): Les groupes RFC5114 MODP sont supprimés. Le support pour les groupes secondaires modulaires exponentiels spécifiés dans la RFC5114 sont supprimés de [iked(8). Ce qui a pour résultat, iked(8) n'acceptera plus les groupes proposés avec le MODP2048-256 (grp24) et ceux qui ne sont pas capable d'agir en réponse aux clients fonctionnant sur OpenBSD 6.0 et plus récent. De fait la configuration des vieilles installations a besoin d'être changé : sélectionnez le groupe MODP spécifique en ajoutant une ligne telle que ikesa group modp2048 childsa group modp2048 pour être capable de discuter vers des terminaux faisant fonctionner des versions récentes.

Par exemple, si une vieille configuration dans le fichier iked.conf(5) ressemble à celle-là :

    ikev2 active esp from 10.3.0.0/24 to 10.1.0.0/24 \
            local 192.168.1.1 peer 192.168.2.1 \
            childsa enc aes-128-gcm \
            psk "secret"

il faudra l'amender de manière à ce qu'elle ressemble à celle-là :

    ikev2 active esp from 10.3.0.0/24 to 10.1.0.0/24 \
            local 192.168.1.1 peer 192.168.2.1 \
    	ikesa group modp2048 \
            childsa enc aes-128-gcm group modp2048 \
            psk "secret"

Une interface lo(4) par rdomain. Une interface de bouclage est maintenant créée par défaut pour chaque rdomain(4). De même que lo0 pour rdomain0, cela peut être utilisé pour voir et filtrer le trafic local via bpf(4) et pf(4).

Si vous utilisiez précédemment une interface loX dans un rdomain autre que X, ce n'est plus possible de créer un rdomain X en plus. Vous avez besoin d'utiliser une interface différente lo(4) ou un autre rdomain(4).

pkg.conf(5) n'est plus supporté. Les outils pkg_* utilisent maintenant le fichier installurl(5) pour trouver les dépôts des paquets principaux. Si vous installez ou mettez-à-jour depuis un miroir, le fichier est créé automatiquement. Vérifiez que le fichier /etc/installurl pointe vers votre miroir préféré et que l'url ne termine pas par /6.1 (ce qui peut arriver à cause d'un bogue de l'installeur).

Si nécessaire, créez le fichier /etc/installurl manuellement en y mettant votre miroir préféré :

    echo 'https://your.mirror/pub/OpenBSD' > /etc/installurl

Comme le fichier pkg.conf(5) ne sera plus jamais utilisé par les outils, vous devriez supprimer ceux-ci :

    rm /etc{,/examples}/pkg.conf /usr/share/man/man5/pkg.conf.5

Utilisez la variable d'environnement PKG_PATH si vous avez besoin de spécifier plus d'un dépôt.

sysctl machdep.lidsuspend renommée en machdep.lidaction. La variable sysctl machdep.lidsuspend a été renommée en machdep.lidaction. La paramétrer à 2 mettra en veille profonde la machine quand le lid sera fermé. Mettez-à-jour votre fichier sysctl.conf(5) pour utiliser le nouveau nom.

Des fichiers à supprimer

La distribution perl a été mise-à-jour vers la version 5.24.1. De nombreux fichiers et répertoires doivent être supprimés :

  rm -rf /usr/libdata/perl5/site_perl \
  /usr/bin/perl5* \
  /usr/lib/libperl.so.17.* \
  /usr/libdata/perl5/*-openbsd/5.*/ \
  /usr/bin/a2p \
  /usr/bin/config_data \
  /usr/bin/find2perl \
  /usr/bin/psed \
  /usr/bin/s2p \
  /usr/libdata/perl5/CGI* \
  /usr/libdata/perl5/Locale/Codes/Constants.pod \
  /usr/libdata/perl5/Module/Build* \
  /usr/libdata/perl5/Package \
  /usr/libdata/perl5/inc \
  /usr/libdata/perl5/pod/a2p.pod \
  /usr/libdata/perl5/unicore/lib/Gc/Lt.pl \
  /usr/libdata/perl5/unicore/lib/Hyphen/Y.pl \
  /usr/libdata/perl5/unicore/lib/LOE \
  /usr/libdata/perl5/unicore/lib/NChar \
  /usr/libdata/perl5/unicore/lib/PatWS \
  /usr/libdata/perl5/unicore/lib/Perl/_XExtend.pl \
  /usr/libdata/perl5/unicore/lib/Perl/_XRegula.pl \
  /usr/libdata/perl5/unicore/lib/Perl/_XSpecia.pl \
  /usr/libdata/perl5/unicore/lib/Space \
  /usr/libdata/perl5/version/vpp.pm

Supprimer les noeux des périphériques sons inutilisés :

  rm -f /dev/sound*

Paquets spécifiques

ansible. Le module copy d'Ansible ajoutait une nouvelle ligne à la valeur de l'attribut content dans le cas où cela n'était pas présent. Ce comportement n'est pas standard et n'a pas été documenté. Il a été remis à la version précédente dans le paquet ansible-2.1.2.0p0. Si vous avez rencontre précédemment ce comportement, vous avez besoin d'ajouter explicitement \n à vos playbooks.

awesome. Awesome 4.0 arrive avec une API majeure cassée. Les configurations et extensions existantes ont besoin d'être portées. Veuillez lire les astuces officielles pour mettre-à-jour votre configuration.

courier-authlib. Un changement de configuration est nécessaire pour être capable d'utiliser la dernière version de mail/courier-authlib. Si MySQL ou Postgresql est utilisée comme source d'authentification, les lignes suivantes devraient être ajoutées aux fichiers de configuration appropriés : (/etc/courier/authmysqlrc ou /etc/courier/authpgsqlrc).

    ##NAME: MARKER:0
    #
    # Do not remove this section from this configuration file. This section
    # must be present at the end of this file.

De plus, si MySQL est utilisé, l'option MYSQL_OPT 0 doit être aussi paramétrée.

leafnode. Le compte _news utilisé pour faire fonctionner leafnode a basculé depuis le groupe news vers le groupe _news. Après la mise-à-jour vers leafnode-1.11.11p0, assurez-vous que le processus leafnode soit arrêté, puis faites :

    usermod -g _news _news
    chgrp -R _news /var/spool/news/

letskencrypt. Le port security/letskencrypt a été déplacé de la base comme l'utilitaire acme-client(1). La configuration est faite via le fichier de configuration acme-client(5). Ajustez les scripts et autres tâches cron si nécessaire.

nginx. Le port www/nginx a été converti pour utiliser les sous-paquets avec les modules dynamiques, en lieu des saveurs utilisées. Si vous utilisiez une version spécifique de nginx précédemment, ou les modules mail ou stream, vous avez besoin d'installer les sous-paquets appropriés. Vous aurez aussi besoin de modifier votre configuration de nginx pour utiliser load_module pour chaque module dynamique que vous souhaitez charger.

postgresql. PostgreSQL 9.6.2 est une mise-à-jour majeure. Utilisez pg_upgrade comme décrit dans le fichier pkg-readme de postgresl-server ou faites un dump/restore.

py-elasticsearch-curator. Avec la mise-à-jour d'Elasticsearch Curator aux versions 4.x, l'interface CLI a changé. En lieu et place des paramètres, ce sont les fichiers de configuration yaml qui sont utilisés. Les fichiers de documentation de configuration peuvent être trouvés dans les pages de références de curator.

railo. Railo a été remplacé par Lucee (un dérivé). Prenez des notes de votre configuration Railo existante avant la mise-à-jour. Vous aurez besoin d'ajuster la configuration de Tomcat, et de configurer Lucee selon vos notes de votre configuration précédente de Railo.

sympa. Le port du serveur de listes de mails mail/sympa a été mise-à-jour vers sa nouvelle version. Les notes de mises-à-jour expliquent comment migrer votre installation.

tomcat. www/tomcat/v8 a été mis-à-jour vers 8.5, ce qui maintenant renforce le umask par défaut sur 027 (anciennement, à moins que des changements avaient été faits, 022 devait être utilisé). Ce comportement peut être contrôlé en paramétrant la variable d'environnement UMASK. Si vous utilisiez le script rc.d et l'ancien comportement requis, ce qui suit doit être ajouté à :

    tomcat:\
          :setenv=UMASK=022:\
          :tc=daemon:

Toutes les branches de www/tomcat ont maintenant le requis strict à-propos de l'encodage d'URL pour empêcher une rangée de caractères invalides (voir CVE-2016-6816). Cela inclus plusieurs caractères qui sont souvent utilisés dans la forme non encodée : { } et |. Pour ces trois caractères seulement, si les appels ne peuvent pas être corrigés, la restriction peut être assouplie en listant ceux dont vous avez besoin dans les paramètres de /etc/rc.conf.local:

    tomcat_flags=-server -Dtomcat.util.http.parser.HttpParser.requestTargetAllow='|'

uucp. En démarrant avec uucp-1.07p4, la suite uucp fonctionne maintenant sous le compte _uucp. Assurez-vous de ne pas avoir de processus uucp fonctionnant, puis ajustez le propriétaire de ces quelques fichiers :

    find /etc/ /var/spool/ -user uucp -exec chown _uucp {} ';'

Mise-à-jour sans le noyau d'installation

Ceci N'EST PAS le processus recommandé. Utilisez la méthode ci-dessus !

Parfois, vous avez besoin de faire une mise-à-jour d'une machine pour laquelle le processus normal de mise-à-jour n'est pas possible. Dans la plupart des cas, c'est le cas d'une machine à distance où l'accès à la console système n'est pas aisée.

Préparation

Placez les fichiers d'installation au bon endroit. Assurez-vous d'avoir assez d'espace disque ! Faire une mise-à-jour à distance sans avoir assez d'espace pourrait être … catastrophique. Notez que l'usage de softdeps peut exagérer la situation car les fichiers supprimés ou réécrits ne restitueraient pas l'espace immédiatement. Considérez le fait de désactiver l'option de montage softdep dans /etc/fstab et redémarrez avant de prendre le contrôle pour une mise-à-jour manuelle. Il est recommandé d'avoir au moins 200 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 pourrait ne pas fonctionner correctement dans les dernières étapes, ainsi vous devriez être 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, que ce soit par une connexion directe ou en utilisant su(1).

Arrêtez et/ou désactivez toutes 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 avoir aussi des problèmes de résolutions 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 au démarrage. Il peut y avoir d'autres applications que vous pourriez souhaiter faire 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 actuellement fait à la fin de chaque mise-à-jour. Si cela a été négligé, alors des problèmes pourraient rendre dysfonctionnel la console série ou d'autres choses, dépendants de votre plate-forme. . Utilisez installboot(8), en assumant que 'sd0' est votre disque de démarrage :

      installboot sd0

Mise-à-jour manuelle

Installation des nouveaux noyaux. Ces étapes supplémentaires sont nécessaires pour s'assurer que vous avez toujours un noyau valide sur votre disque.

Si vous utilisez un noyau pour multi-processeurs :

      cd /usr/rel    # where you put the release files
      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 seul processeur :

      cd /usr/rel    # where you put the release files
      ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
      cp bsd.rd bsd.mp /    # may give a harmless warning

Installation du nouvel espace utilisateur. Sauvegardez une copie de reboot(8), extrayez et installez les tarballs, puis redémarrez. En dernier installez base61.tgz, car le nouveau système de base, en particulier tar(1), gzip(1) et reboot(8) ne fonctionnent pas avec de vieux noyaux. Décompressez l'un ou l'autre des jeux de fichiers manuellement :

      cp /sbin/reboot /sbin/oreboot
      tar -C / -xzphf xshare61.tgz
      tar -C / -xzphf xserv61.tgz
      tar -C / -xzphf xfont61.tgz
      tar -C / -xzphf xbase61.tgz
      tar -C / -xzphf man61.tgz
      tar -C / -xzphf game61.tgz
      tar -C / -xzphf comp61.tgz
      tar -C / -xzphf base61.tgz    # Install last!
      /sbin/oreboot

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

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

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

Après le redémarrage, mettez-à-jour /dev. Utilisez MAKEDEV(8) :

      cd /dev
      ./MAKEDEV all

Mettez-à-jour le chargeur de démarrage. Toujours en assumant que sd0 soit votre disque de démarrage :

      installboot sd0

Mettez-à-jour les fichiers de configurations systèmes. Utilisez sysmerge(8) :

      sysmerge

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

      fw_update

Pour terminer : Lisez les sorties de consoles post démarrage (en utilisant dmesg -s) et corrigez tout problème nécessaire. Toutes les étapes suivantes après la mise-à-jour doivent aussi être appliquées après la mise-à-jour manuelle. Supprimez /sbin/oreboot et mettez-à-jour vos paquets : pkg_add -u


Cette page est la traduction officieuse de la page “Upgrade Guide: 6.0 to 6.1” 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.