[3.4 -> 3.5] |
[3.5 -> 3.6] |
[3.6 -> 3.7] |
[3.7 -> 3.8] |
[3.8 -> 3.9] |
[3.9 -> 4.0] |
[4.0 -> 4.1] |
[4.1 -> 4.2] |
[4.2 -> 4.3] |
[4.3 -> 4.4] |
[4.5 -> 4.6] |
[FAQ Index]
Il est hautement recommandé de lire entièrement la présente page et de bien comprendre la procédure de mise à jour avant de l'appliquer. Si vous comptez mettre à jour une machine critique ou physiquement distante, il est recommandé d'essayer d'abord la procédure ci-après sur un système local afin d'en vérifier le succès.
La mise à niveau est un moyen commode afin d'avoir votre système à jour avec la version la plus récente de OpenBSD. Cependant, les résultats escomptés ne sont pas censés être précisément ceux d'une installation de zéro. Les fichiers d'anciennes bibliothèques en particulier ne sont pas supprimés lors du processus de mise à niveau, car ils pourraient être requis par de plus anciennes applications pouvant être ou non mises à jour à ce moment précis. Si vous voulez VRAIMENT vous débarrasser de ces anciens fichiers, vous feriez probablement mieux de réinstaller complètement votre système.
Table des matières :
Pour afficher les types de média supportés, vous devez maintenant utiliser :ifconfig interface scan
ifconfig interface media
Le pilote i810(4) a été complètement remplacé par le pilote intel(4) , donc votre fichier xorg.conf(5) doit être mis à jour en accord avec ces changements.
Plusieurs modules xserver et pilotes sont devenus obsolètes. Pour être sur que X -configure n'essaye pas de configurer les modules obsolètes, vous devez supprimer le contenu de /usr/X11R6/lib/modules/ avant la mise à jour.
Qui doit utiliser sysmerge(8) :
Les personnes utilisant des systèmes très modifiés ou qui ne démarrent
pas avec une version précédente (par exemple, un snapshot entre deux
versions), qui ont mis à jour vers un snapshot ou qui n'ont pas bien
mis à jour leur système dans le passé trouveront l'utilisation de
sysmerge très supérieure à l'utilisation des patchs, car il fonctionne
avec ce qu'il y a actuellement sur votre système, à la place de ce nous
aimerions trouver sur votre système.
Il vous donnera aussi un bien plus grand contrôle sur votre processus
de mise à jour, et vous y serez bien plus intégré.
Qui NE doit pas utiliser sysmerge(8) :
Les personnes qui possèdent un parc de machines à mettre à jour dans une
configuration simple et qui utilise la dernière version stable préféreront
plutot utiliser l'ancien système de correctif qui est plus simple.
Bien que sysmerge peut prendre en compte TOUS les changements de /etc, /dev, /root et /var, nous recommandons vivement de faire certains changements manuellement avant, cela vous fera gagner du temps et réduira la possibilité d'erreurs humaines. En particulier, il est hautement recommandé de ne pas utiliser sysmerge pour mettre à jour les comptes utilisateurs et les groupes, comme il est trés simple de choisir la mauvaise option entraînant l'effacement complet de vos comptes utilisateurs et configurer le mot de passe root à une valeur nulle, en prévision de connexions distantes qui pourraient corriger le problème.
AVANT de mettre à jour, cependant, faite ce qui suit si vous avez installé X :
Ensuite, terminez la mise à jour en suivant les étapes finales ci-dessous.rm -rf /usr/X11R6/lib/modules/*
Une solution simple pour démarrer sur le noyau d'installation est de mettre le noyau bsd.rd de la version 4.5 à la racine de votre lecteur de démarrage et de dire au chargeur de démarrage d'utiliser ce nouveau fichier bsd.rd. Sur amd64 et i386, vous pouvez entrer "boot bsd.rd" à l'invite de commandes boot>.
De temps à autre, on peut avoir besoin de faire la mise à jour d'une machine sans pouvoir utiliser le processus de mise à jour classique. Le cas le plus courant est celui d'une machine distante dont on ne peut accéder à la console système. On peut alors réaliser une mise à niveau en faisant attention suivant cette procédure :
export RELEASEPATH=/usr/rel # où mettre les fichiers
cd ${RELEASEPATH}
rm /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
cp bsd.rd bsd.mp /
(si vous utilisez un noyau multiprocesseurs, utilisezRemarquez les étapes additionnelles pour copier par dessus un premier noyau : celles-ci sont réalisées afin de s'assurer qu'il existe toujours une copie valide du noyau sur le disque et que le système puisse redémarrer en cas de coupure électrique ou de panne.
rm -rf /usr/X11R6/lib/modules/*
cp /sbin/reboot /sbin/oreboot
Tous les jeux de fichiers ne seront pas à installer pour toutes les applications, cependant, si vous aviez installé initialement un jeu de fichiers, vous devrez certainement le mettre à niveau avec le nouveau jeu de fichiers.tar -C / -xzphf xserv45.tgz tar -C / -xzphf xfont45.tgz tar -C / -xzphf xshare45.tgz tar -C / -xzphf xbase45.tgz tar -C / -xzphf game45.tgz tar -C / -xzphf misc45.tgz tar -C / -xzphf comp45.tgz tar -C / -xzphf man45.tgz tar -C / -xzphf base45.tgz # Installation en dernier ! /sbin/oreboot
Encore une fois, les fichiers dans /etc sont traités séparement plus loin, donc etc45.tgz et xetc45.tgz NE sont pas ouvert maintenant.
cd /dev ./MAKEDEV all
useradd -u94 -g=uid -c"Bluetooth Daemon" -d/var/empty -s/sbin/nologin_btd
Vous aurez besoin d'extraire les fichiers etc45.tgz dans un endroit temporaire :
export RELEASEPATH=/usr/rel
tar -C /tmp -xzphf ${RELEASEPATH}/etc45.tgz
Les fichiers suivants peuvent être probablement copiés "tels quels" à
partir de etc45.tgz :
Remarquez qu'il EST possible de modifier localement ces fichiers. Si vous l'avez fait, NE pas copier sur ces fichiers, et utilisez sysmerge(8) à la place. Voici des lignes à copier/coller pour copier ces fichiers, en supposant que vous avez extrait etc45.tgz à l'endroit précité :netstart rc rc.conf services afs/CellServDB mail/README mail/submit.cf mtree/4.4BSD.dist mtree/special /var/named/etc/root.hint /var/named/etc/named*
cd /tmp/etc cp netstart rc rc.conf services /etc cp afs/CellServDB /etc/afs cp mtree/* /etc/mtree cp mail/README mail/submit.cf /etc/mail cp ../var/named/etc/root.hint ../var/named/etc/named-*.conf /var/named/etc cp ../var/named/etc/named.conf /var/named/etc/ # SI pas de changements locaux !
Les fichiers suivants ont probablement été modifiés localement, mais ils doivent être mis à jour pour 4.5. SI vous n'avez pas modifié ces fichiers, vous pouvez copier directement la nouvelle version, sinon vous devrez fusionner les modifications avec vos fichiers :
Les modifications apportées à ces fichiers se trouvent dans ce fichier correctif. Vous pouvez tenter de l'utiliser en exécutant les commandes suivantes sous l'identité root :/etc/changelist /etc/ftpusers /etc/ksh.kshrc /etc/lynx.cfg /etc/mail/aliases /etc/mail/trusted-users /etc/shells /etc/ssh/ssh_config
Ceci aura pour effet de tester le correctif afin de voir s'il va bien s'appliquer à VOTRE système. Si vous voulez l'appliquer, il suffit d'omettre l'option "-C". Il est probable que, si vous avez adapté ces fichiers à vos besoins ou si vous ne les avez pas maintenus à jour de manière stricte, ou si vous avez mis à jour à partir d'un snapshot de 4.4, le correctif ne se passera pas de manière satisfaisante. Dans ces cas, vous devrez appliquer manuellement les modifications. Veuillez tester ce processus avant de vous y fier, notamment pour une machine à laquelle vous ne pouvez pas accéder facilement.cd / patch -C -p0 < upgrade45.patch
Les fichiers suivants comportent des modifications dont vous devez prendre connaissance, mais il est peu probable qu'ils puissent être directement copiés ou fusionnés (i.e. si vous utilisez pf.conf, prenez connaissance de la stratégie de mise à jour suggérée, et décidez si oui ou non elle est appropriée dans votre cas).
etc/dhcpd.conf etc/ntpd.conf etc/pf.conf
Finalement, utilisez newaliases(8) pour mettre à jour la base des aliases, mtree(8) créera tout nouveau répertoire :
newaliases mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
Le nouvel utilitaire sysmerge(8) comparera les fichiers qui sont actuellement sur votre système avec ceux qui devront être installés pendant la nouvelle installation, et vous assister dans la fusion des changements sur votre système. Il est à noter que contrairement au fichier correctif, il n'y a pas d'hypothèses faites sur ce qui est effectivement sur votre système, donc vous pouvez utiliser sysmerge(8) pour changer de facon arbitraire entre différentes saveurs du processus de développement, comme d'une ancienne version -current vers la 4.5-release ou d'une -current vers la dernière.
Il est conseillé de lire la page de manuel sysmerge(8) avant de l'utiliser sur votre système. Il serait aussi avisé de lire les pages de manuel suivantes diff(1), sdiff(1) et même revoir more(1) avant de continuer.
En supposant que les fichiers etc45.tgz et xetc45.tgz existent dans votre $RELEASEPATH, l'exécuter avec :
Sysmerge(8) va vous présenter un diff(1), unifié à travers votre $PAGER favori (i.e., more(1)) et va vous demander, pour la plupart des changements de fichiers, si vous souhaitez :# sudo sysmerge -as $RELEASEPATH/etc45.tgz -x $RELEASEPATH/xetc45.tgz
Use 'd' to delete the temporary ./var/www/htdocs/index.html Use 'i' to install the temporary ./var/www/htdocs/index.html Use 'm' to merge the temporary and installed versions Use 'v' to view the diff results again Default is to leave the temporary file to deal with by hand
Si vous souhaitez garder vos fichiers existants, supprimez le fichier temporaire, si vous souhaitez remplacer votre fichier existant par la nouvelle version, installez le fichier temporaire. Si vous souhaitez fusionner les deux ensemble, choisissez 'm' qui va vous mettre sous sdiff(1), ou vous pourrez manuellement fusionner le fichier. La valeur par défaut est de revenir et de traiter le fichier plus tard, manuellement.
Tant qu'il peut travailler, nous ne vous recommandons pas d'utiliser sysmerge à intégrer de nouveaux utilisateurs dans le système, mais plutôt d'utiliser la ligne useradd(8) plus haut. Nous pensons qu'il est beaucoup moins sensibles aux erreurs. (conseil: ne pas installer le fichier temporaire master.passwd sur votre existant !).
Sysmerge(8) sauvegardera tous vos fichiers remplacés dans un répertoire temporaire, similaire à /var/tmp/sysmerge.24959/backups, donc si vous avez accidentellement supprimé quelque chose, ce qui n'était probablement pas une bonne idée, vous avez une chance de le récupérer. Il est à noter que daily(8) effacera les anciens fichiers de ce répertoire.
Si vous avez suivi les instructions de mise à niveau sans noyau d'installation, vous avez déjà accompli cette étape. En revanche, si vous utilisez le média d'installation et si vous aviez un noyau modifié en 4.4, il est probable que vous devrez modifier le noyau 4.5 de base. Cela peut être aussi simple que de modifier un périphérique spécifique avec config(8), mais il peut aussi être nécessaire de recompiler le noyau si l'option que vous souhaitez n'est pas incluse dans le noyau GENERIC. Consultez la section FAQ 5 - Construire le Système à partir des Sources avant d'envisager une recompilation de votre noyau.
Les paquetages suivants sont connus pour avoir des interrogations sur la mise à jour qui aura un impact sur un grand nombre d'utilisateurs. Le fait qu'un paquetage n'est pas sur cette liste ne signifie pas qu'il aura une mise à jour triviale. Vous devez faire des travaux personnels sur les applications que VOUS utilisez.
Les utilitaires de gestion des paquetages supportent la mise à jour avec la commande pkg_add -u. Par exemple, pour mettre à jour tous vos paquetages, soyez certains que PKG_PATH pointe bien vers le répertoire contenant les paquetages 4.5 sur votre CD ou un miroir FTP proche et utilisez une commande du type
où -u indique le mode mise à jour et -i le mode interactif, ainsi pkg_add vous demandera ce que vous souhaitez faire lorsque celui-ci rencontrera une ambiguïté. Lisez le manuel de pkg_add(1) et le chapitre de la FAQ sur la gestion des paquetages pour de plus amples informations.# pkg_add -ui -F update -F updatedepends
Un nombre de modules Perl qui étaient auparavant en paquetages sont maintenant inclus avec Perl 5.10.0 dans le système de base, donc après la mise à jour des autres paquetages, ces paquetages doivent être supprimés. En plus, xcompmgr(1) fait maintenant parti de xbase45.tgz, et n'est plus un paquetage donc il doit être aussi supprimé.
Il faut remarquer que si vous faites un copier-coller de cette commande sur votre système, vous aurez sûrement un nombre important de messages d'erreurs de paquetages que vous n'avez pas installé. C'est ok.pkg_delete p5-Archive-Tar p5-Compress-Raw-Zlib p5-Compress-Zlib \ p5-IO-Compress-Base p5-IO-Compress-Zlib p5-IO-Zlib p5-Module-Build \ p5-Module-CoreList p5-Module-Load p5-version p5-Digest-SHA \ p5-Locale-Maketext-Simple p5-Pod-Escapes p5-Pod-Simple \ p5-ExtUtils-ParseXS p5-ExtUtils-CBuilder p5-Module-Pluggable \ p5-Time-Piece p5-Module-Loaded xcompmgr
[3.4 -> 3.5] |
[3.5 -> 3.6] |
[3.6 -> 3.7] |
[3.7 -> 3.8] |
[3.8 -> 3.9] |
[3.9 -> 4.0] |
[4.0 -> 4.1] |
[4.1 -> 4.2] |
[4.2 -> 4.3] |
[4.3 -> 4.4] |
[4.5 -> 4.6] |
[FAQ Index]