Comment mettre à jour FreeBSD de la version 10.2 à 10.3

introduction

FreeBSD est en constante évolution; l’équipe ajoute de nouvelles fonctionnalités et corrige des vulnérabilités de sécurité. Maintenir le système d’exploitation de votre serveur à jour garantit une sécurité et une compatibilité améliorées. FreeBSD inclut l’outil + freebsd-update + pour simplifier cette tâche. Dans ce tutoriel, vous allez mettre à jour un serveur FreeBSD existant exécutant FreeBSD 10.2-RELEASE vers 10.3.RELEASE-p4.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Un serveur sous FreeBSD 10.2.

  • Un compte d’utilisateur configuré pour exécuter des commandes avec + sudo +. Nous utiliserons le compte * freebsd * par défaut, créé automatiquement lorsque vous créez un droplet FreeBSD. Pour en savoir plus sur la connexion à votre Droplet FreeBSD et sur sa gestion de base, consultez la série de tutoriels Mettre avec FreeBSD.

Étape 1 - Récupération et application de correctifs

Afin de mettre à niveau le système d’exploitation, nous devons d’abord récupérer les packages et les correctifs pour notre version de destination. Connectez-vous au serveur avec le compte * freebsd *.

ssh freebsd@

Ensuite, utilisez la commande + freebsd-upgrade + pour collecter des informations sur la mise à niveau du système et déterminer ce qui doit changer. Exécutez la commande suivante:

sudo freebsd-update upgrade -r 10.3-RELEASE

Nous utilisons le commutateur + -r + pour spécifier la version à mettre à niveau, à savoir + 10.3-RELEASE +. Après quelques instants, vous verrez la sortie suivante:

Outputsrc component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update6.freebsd.org... done.
Fetching metadata signature for 10.2-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system...

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/doc world/games world/lib32

The following components of FreeBSD do not seem to be installed:

Does this look reasonable (y/n)?

Cela vous donne l’occasion d’examiner tous les problèmes potentiels. Tapez + y + et appuyez sur + ENTER + pour continuer.

Une fois que vous acceptez de continuer, le processus applique les mises à jour et les correctifs. Vous verrez le résultat suivant:

OutputFetching metadata signature for 10.3-RELEASE from update6.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system...
Fetching files from 10.2-RELEASE for merging... done.
Preparing to download files...
Fetching 10722 patches.....10....20....30....40....50....60....70....80....90
....100....110....120....130....140....150....160....170....180....190....200

   **. . .**

....10650....10660....10670....10680....10690....10700....10710....10720. done.
Applying patches... done.
Fetching 152 files...
Attempting to automatically merge changes in files... done.

Cependant, le processus ne peut pas tout corriger automatiquement. Nous devrons intervenir manuellement.

Étape 2 - Résolution des conflits

Après l’application des correctifs au système d’exploitation, + freebsd-update + vous affichera deux messages d’avertissement et vous devrez résoudre manuellement certains conflits mineurs dans deux fichiers de configuration différents. L’un est + / etc / rc.subr + et l’autre `` / / etc / ssh / sshd_config + `.

Le premier avertissement que vous voyez est le suivant:

outputThe following file could not be merged automatically: `/etc/rc.subr`
Press Enter to edit this file in vi and resolve the conflicts
manually...

Lorsque vous appuyez sur + Entrée +, le fichier + / etc / rc.subr + s’ouvre dans l’éditeur de texte + vi + et vous verrez le texte suivant:

Fichier /etc/rc.subr avec conflits à résoudre manuellement

# $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $



# $FreeBSD: releng/10.3/etc/rc.subr 292450 2015-12-18 19:58:34Z jilles $

Modifiez cette section en supprimant les lignes relatives à la version actuelle, mises en évidence en rouge ci-dessus. Même si nous utilisons actuellement FreeBSD 10.2, ce fichier référence 10.1 comme «actuel». Supprimez ces lignes pour que la section ressemble à l’exemple suivant:

/etc/rc.subr prêt à continuer

# $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $
# $FreeBSD: releng/10.3/etc/rc.subr 292450 2015-12-18 19:58:34Z jilles $

Enregistrez vos modifications dans le fichier et quittez l’éditeur.

Dès que vous fermez l’éditeur de texte, vous verrez une ligne indiquant la fusion réussie du fichier que vous venez de modifier. Ensuite, vous verrez le deuxième avertissement indiquant que le fichier de configuration + / etc / ssh / sshd_config + a besoin de votre attention:

Output/var/db/freebsd-update/merge/new//etc/rc.subr: 2087 lines, 47888 characters.

The following file could not be merged automatically: `/etc/ssh/sshd_config`
Press Enter to edit this file in vi and resolve the conflicts
manually...

Comme avant, lorsque vous appuyez sur + ENTER +, un fichier texte que vous devez modifier s’affiche. La pièce à modifier sera similaire au premier fichier que vous avez édité.

Fichier / etc / ssh / sshd_config contenant des conflits à résoudre manuellement

#       $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
#       $FreeBSD: releng/10.3/crypto/openssh/sshd_config 296853 2016-03-14 13:05:13Z des $

Encore une fois, modifiez cette section en supprimant les lignes relatives à la version actuelle jusqu’à ce que la section du fichier ressemble à ceci:

/ etc / ssh / sshd_config prêt à continuer

#       $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $
#       $FreeBSD: releng/10.3/crypto/openssh/sshd_config 296853 2016-03-14 13:05:13Z des $

Enregistrez vos modifications dans le fichier et fermez l’éditeur.

Une fois que l’éditeur se ferme, le processus + freebsd-update + affiche chaque fichier que vous avez modifié et vous demande si les modifications semblent raisonnables. Répondez + y + aux deux questions pour continuer l’installation.

Une fois que vous acceptez les modifications, vous verrez une liste des fichiers binaires et des fichiers de configuration qui seront mis à jour. Cette liste est très longue. Appuyez sur + ESPACE pour faire défiler la liste page par page. Ou, si vous ne souhaitez pas consulter la liste, tapez + q + pour quitter. Ne vous inquiétez pas appuyer sur + q + n’abandonnera pas le processus de mise à niveau.

La liste ressemble à ceci:

OutputThe following files will be added as part of updating to 10.3-RELEASE-p5:
/boot/kernel/ismt.ko
/boot/kernel/ismt.ko.symbols
/boot/kernel/linux64.ko
/boot/kernel/linux64.ko.symbols
/boot/kernel/linux_common.ko
/boot/kernel/linux_common.ko.symbols
/boot/kernel/mlx5.ko

   . . .

The following files will be updated as part of updating to 10.3-RELEASE-p5:
/.cshrc
/.profile
/COPYRIGHT
/bin/[
/bin/cat
/bin/chflags
/bin/chio

   . . .

Une fois que vous avez examiné la liste, vous serez de retour à l’invite de votre terminal. Vous êtes prêt à effectuer l’installation.

Étape 3 - Installer FreeBSD 10.3

Les mises à jour ont été téléchargées et les fichiers essentiels ont été fusionnés ou configurés avec succès. Pour installer les mises à niveau téléchargées, utilisez la commande suivante:

sudo /usr/sbin/freebsd-update install

Voici le résultat que vous verrez:

Outputsrc component not installed, skipped
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

L’installation vous invite à redémarrer l’ordinateur, alors exécutez cette commande pour redémarrer votre ordinateur:

sudo reboot

Vous serez déconnecté de votre session SSH et le redémarrage prendra environ une minute. Une fois que votre machine est revenue en ligne, reconnectez-vous et passez à l’étape suivante.

Étape 4 - Fin du processus d’installation

Vérifions la version de notre serveur pour vous assurer que le processus de mise à niveau a fonctionné et que le nouveau noyau est chargé. Commencez par vous reconnecter à votre serveur:

ssh freebsd@

Une fois connecté, exécutez la commande suivante:

uname -a

et la sortie suivante indique que la mise à niveau a fonctionné:

OutputFreeBSD  #0: Sat May 28 12:23:44 UTC 2016     [email protected]:/usr/obj/usr/src/sys/GENERIC  amd64

Mais nous n’avons pas encore terminé la mise à niveau. Nous devons installer toutes les dernières mises à jour qui pourraient s’être produites depuis la publication de la version. Exécutez donc à nouveau + freebsd-update +.

sudo /usr/sbin/freebsd-update install

Vous verrez le résultat suivant:

Outputsrc component not installed, skipped
Installing updates...
Installing updates...
install: ///var/db/etcupdate/current/etc/mtree/BSD.debug.dist: No such file or directory
install: ///var/db/etcupdate/current/etc/periodic/daily/480.leapfile-ntpd: No such file or directory
done.

Il est prudent de ne pas tenir compte des deux avertissements à la fin. Les deux fichiers seront créés ou mis à jour par ce processus.

Lorsque vous mettez à niveau FreeBSD, vous devez également mettre à niveau tous vos packages tiers installés, en particulier si vous effectuez une mise à niveau majeure. Pour ce faire, exécutez la commande suivante:

sudo pkg upgrade

La sortie ressemblera à ceci:

OutputUpdating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.

   . . .

Processing entries: 100%
FreeBSD repository update completed. 25089 packages processed.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
       pkg: 1.5.6 -> 1.7.2

The process will require 242 KiB more space.
2 MiB to be downloaded.

Proceed with this action? [y/N]:

Tapez + y + et appuyez sur + ENTER + pour continuer. Le résultat suivant s’affichera:

OutputFetching pkg-1.7.2.txz: 100%    2 MiB   1.3MB/s    00:02
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.5.6 to 1.7.2...
[1/1] Extracting pkg-1.7.2: 100%
Updating FreeBSD repository catalogue...
Repo "FreeBSD" upgrade schema 2011 to 2012: Add depends formula field
Repo "FreeBSD" upgrade schema 2012 to 2013: Add vital field
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Checking for upgrades (24 candidates): 100%
Processing candidates (24 candidates): 100%
The following 24 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
       xproto: 7.0.27 -> 7.0.28
       sudo: 1.8.13 -> 1.8.16_1
       rsync: 3.1.1_3 -> 3.1.2_1
       python27: 2.7.9_1 -> 2.7.11_2
       py27-setuptools27: 17.0 -> 20.0
       py27-pip: 7.0.3 -> 8.0.2
       perl5: 5.20.2_5 -> 5.20.3_12
       pcre: 8.37_4 -> 8.38_1
       libxml2: 2.9.2_3 -> 2.9.3
       libxcb: 1.11_1 -> 1.11.1
       libnet: 1.1.6_3,1 -> 1.1.6_4,1
       libiconv: 1.14_8 -> 1.14_9
       libX11: 1.6.2_3,1 -> 1.6.3,1
       kbproto: 1.0.6 -> 1.0.7
       indexinfo: 0.2.3 -> 0.2.4
       gobject-introspection: 1.42.0 -> 1.46.0
       glib: 2.42.2 -> 2.46.2
       gettext-runtime: 0.19.4 -> 0.19.7
       expat: 2.1.0_3 -> 2.1.1_1
       dbus: 1.8.16 -> 1.8.20
       curl: 7.43.0_2 -> 7.48.0_1
       ca_root_nss: 3.19.3 -> 3.22.2
       avahi-app: 0.6.31_3 -> 0.6.31_5

Installed packages to be REINSTALLED:
       dbus-glib-0.104 (option added: DOCS)

The process will require 5 MiB more space.
39 MiB to be downloaded.

Proceed with this action? [y/N]:

Une fois encore, tapez + y +, suivi de + ENTER + pour continuer.

Les packages seront mis à niveau, mais pour vous assurer que votre utilisateur a accès aux dernières versions, exécutez la commande + rehash +:

rehash

Avec cela, le processus de mise à niveau est terminé. Mais si quelque chose n’allait pas?

Étape 5 - Restauration d’une installation ayant échoué (facultatif)

L’ensemble du processus de mise à niveau devrait se dérouler sans heurts, mais en cas de problème, vous pouvez restaurer les packages récemment installés à l’aide de la commande suivante:

sudo freebsd-update rollback

Cela initiera le processus de restauration et vous ramènera là où vous étiez. Vous pouvez également restaurer la sauvegarde la plus récente que vous avez effectuée avant de commencer le processus.

Conclusion

La mise à niveau d’un système d’exploitation vers une version plus récente et l’application des correctifs de sécurité de manière rapide sont des aspects importants de l’administration système en cours. La commande + freebsd-update + facilite ces deux tâches. Une fois familiarisé avec le processus, vous pourrez effectuer vous-même les futures mises à niveau.

Pour en savoir plus sur la mise à niveau de FreeBSD, vous pouvez lire An Introduction à la maintenance de base de FreeBSD, ou consulter la chapitre correspondant dans le FreeBSD Handbook.