Dans cet article, nous allons mettre à niveau le système d'exploitation FreeBSD en utilisant freebsd-update
. L' freebsd-update
utilitaire peut être utilisé pour mettre à jour votre instance avec la dernière version du correctif ou vous pouvez également choisir de passer à une version mineure ou majeure.
Étape 1: Points à considérer avant de mettre à jour votre instance
- Sauvegardez votre instance. Le moyen le plus simple consiste à prendre un instantané. Vous pouvez également éventuellement choisir d'avoir une sauvegarde supplémentaire des fichiers de configuration à partir de
/etc/
.
- Réservez une période de maintenance afin que la mise à niveau puisse être planifiée et testée dans ce délai; plus de temps doit être réservé pour une mise à niveau de version majeure par rapport à une mise à niveau de version mineure ou corrective.
- Si vous effectuez une mise à niveau vers une version majeure, il est plus sûr de tester le
freebsd-update
sur une instance de test ou de développement avant de l'essayer sur un serveur de production. Vous pouvez utiliser un instantané pour lancer rapidement une instance de test, tester la mise à niveau sans avoir d'impact sur votre instance de production.
- Avant de commencer la mise à niveau, il est recommandé d'arrêter les services sur l'instance. Par exemple: serveur Web, base de données, etc. Ceux-ci pourraient être activés une fois la mise à niveau terminée. Cette étape est particulièrement importante pour les mises à niveau majeures des versions.
- Veuillez lire les notes de version de la version cible de FreeBSD avant de commencer la mise à niveau.
- Vous devez disposer d'au moins 500 Mo d'espace libre dans la
/var
partition, en particulier pour la mise à niveau vers une nouvelle version mineure ou majeure.
Étape 2: mise à jour vers la dernière version du correctif
Téléchargement de la mise à jour
Les versions de correctifs contiennent des correctifs pour les fichiers du système d'exploitation et les binaires et peuvent également contenir une modification dans le noyau. Récupérez la mise à jour à l'aide de freebsd-update
. La sortie des commandes ci-dessous a été modifiée par souci de concision.
# freebsd-version
11.0-RELEASE-p1
# freebsd-update fetch
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update4.freebsd.org... done.
Fetching metadata signature for 11.0-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 998 patches......... done.
Applying patches... done.
Fetching 6 files... done.
The following files will be removed as part of updating to 11.0-RELEASE-p11:
/boot/kernel/hv_ata_pci_disengage.ko
...
The following files will be added as part of updating to 11.0-RELEASE-p11:
/usr/share/zoneinfo/Asia/Barnaul
...
The following files will be updated as part of updating to 11.0-RELEASE-p11:
/bin/freebsd-version
...
WARNING: FreeBSD 11.0-RELEASE-p1 is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 2 months.
Installer la mise à jour
Les mises à jour ont été téléchargées sur votre serveur. Maintenant, installez-les.
# freebsd-update install
src component not installed, skipped
Installing updates... done.
Redémarrez dans le nouveau noyau si nécessaire
Depuis la mise à jour de 11.0-RELEASE-p1
à 11.0-RELEASE-p11
implique l'installation d'un nouveau noyau, redémarrez l'instance pour démarrer dans le noyau nouvellement installé.
# shutdown -r now
... system reboot ...
# freebsd-version
11.0-RELEASE-p11
Vous avez maintenant correctement mis à niveau votre instance de 11.0-RELEASE
à 11.0-RELEASE-p11
. Réactivez vos services et testez l'instance.
Étape 3: mise à jour vers une version mineure ou majeure
Téléchargement de la mise à niveau
Dans cette section, nous mettons à niveau notre instance FreeBSD de FreeBSD 11.0-RELEASE
vers FreeBSD 11.1-RELEASE
. La freebsd-update
commande diffère dans ce cas de la mise à niveau de la version antérieure du correctif. Notez que s'il y a des conflits dans les fichiers en raison de modifications locales, freebsd-update
vous en serez informé et vous permettra de résoudre le conflit.
# freebsd-version
11.0-RELEASE-p11
# freebsd-update upgrade -r 11.1-RELEASE
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 11.0-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg world/base world/lib32
The following components of FreeBSD do not seem to be installed:
world/base-dbg world/doc world/lib32-dbg
Does this look reasonable (y/n)? y
Fetching metadata signature for 11.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 11.0-RELEASE for merging... done.
Preparing to download files... done.
Fetching 11513 patches.....10....11510. done.
Applying patches... done.
Fetching 262 files... done.
Attempting to automatically merge changes in files... done.
The following files will be removed as part of updating to 11.1-RELEASE-p0:
/usr/include/netinet/ip_ipsec.h
...
The following files will be added as part of updating to 11.1-RELEASE-p0:
/boot/kernel/amd_ecc_inject.ko
...
The following files will be updated as part of updating to 11.1-RELEASE-p0:
/.cshrc
...
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
Installation de la mise à niveau
Maintenant que les fichiers ont été téléchargés et que tous les conflits ont été résolus, vous pouvez continuer et installer la mise à jour.
# freebsd-update install
src 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.
Redémarrez dans le nouveau noyau et poursuivez l'installation
Une fois que l'instance a redémarré, vous pouvez confirmer la version du noyau que vous exécutez et reprendre l'installation.
# uname -a
FreeBSD fbsd 11.1-RELEASE FreeBSD 11.1-RELEASE #0 r321309: Fri Jul 21 02:08:28 UTC 2017
[email protected]:/usr/obj/usr/src/sys/GENERIC amd64
# freebsd-version
11.0-RELEASE-p11
# freebsd-update install
src component not installed, skipped
Installing updates...
Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
again to finish installing updates.
Les versions principales utilisent différentes interfaces binaires d'application (ABI), ce qui cassera la plupart des applications tierces. Si vous utilisez des ports pour créer vos applications tierces, vous devez créer toutes ces applications. Si vous utilisez le système de gestion des packages, vous pouvez utiliser la commande suivante.
# pkg-static upgrade -f
Une fois que tous les packages ont été réinstallés, terminez l' freebsd-update
installation.
# freebsd-update install
src component not installed, skipped
Installing updates... done.
# freebsd-version
11.1-RELEASE
Félicitations, votre instance a été mise à niveau vers 11.1-RELEASE
! Vous pouvez maintenant activer tous les services nécessaires et confirmer que l'instance se comporte comme prévu.