Mise à jour complète de son FreeBSD

100px-logo_freebsdFreeBSD est surement un des systèmes d'exploitations les plus stable et modulaire que je connaisse. Son administration est une réelle partie de plaisir sauf pour un point: la mise à jour... Nous allons dans un premier temps expliquer pourquoi cette mise à jour n'est pas triviale et ensuite détailler une mise à jour complète. Ce billet se base sur la dernière version disponible (la version 8.0).

Pourquoi ?

Un système FreebSD est composé de trois groupe de logiciels: le noyau, le monde et les ports.

Le noyau (ou kernel) est le coeur de système, il permet la communication avec le matériel (CPU, mémoire, entrée/sortie, processus...). Il est géré par l'équipe de développement de FreeBSD. Il est possible de customiser finement ce noyau à vos besoins.

Le monde (ou world) représente des applications ou services proche du système, fournies avec le système FreeBSD.

Les ports sont des applications/services/librairies portés par leurs auteurs ou par des personnes tierces sur le système FreeBSD.

Ainsi quand on doit faire une mise à jour de notre système FreeBSD, il faut commencer par se poser la question suivante: que veut on mettre à jour ? Nous allons dans la suite du billet détailler une mise à jour complète de son système FreeBSD

Comment ?

Avant de commencer la phase de mise à jour proprement dite, il faut récupérer les sources du noyau et du monde (le tout étant recompilé avant d'être installé sur votre machine).

Récupération des sources

Plusieurs méthodes existent. Personnellement, j'utilise la méthode cvsup. On commence par installer le logiciel cvsup avec la commande suivante:

pkg_add -r cvsup
mkdir /usr/local/etc/cvsup/
cp /usr/share/examples/cvsup/stable-supfile /usr/local/etc/cvsup
cp /usr/share/examples/cvsup/ports-supfile /usr/local/etc/cvsup

Ensuite on édite les fichiers de configuration /usr/local/etc/cvsup/stable-supfile et /usr/local/etc/cvsup/ports-supfile pour modifier l'URL du serveur de mise à jour:

*default host=cvsup1.fr.FreeBSD.org

Mise à jour du monde

On commence par mettre à jour le monde:

cd /usr/src/
make buildworld

On redémarre en mode de maintenance:

mergemaster -p
make installworld
mergemaster -i

On redémarre en mode normal.

PS: l'étape de reboot en mode maintenance n'est pas obligatoire mais fortement conseillée...

Mise à jour du noyau

Puis et seulement puis, on met à jour le noyau de notre système avec les commandes suivantes:

cd /usr/src/sys/i386/conf
ls GENERIC
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC

PS: si vous avez customiser votre noyau, il faut donner le nom du fichier de configuration en lieu et place de GENERIC.

Mise à jour des ports

Comme pour le mode et le noyau, il est nécessaire de récupérer la liste des derniers ports (arbre des ports dans le jargon FreeBSD), pour cela j'utilise les commandes:

portsnap fetch
portsnap extract
portsnap update

Ensuite j'utilise le logiciel portupgrade pour effectuer les mise à jour. Il faut dans un première temps installer ce logiciel sur votre système:

pkg_add -r portupgrade

Ensuite on lance la mise à jour de nos ports installés:

portupgrade -ar

FreeBSD-Update Une solution tout en un

Sur les dernière versions de FreeBSD (>6.3 et >8.0), un logiciel automatisant ces taches a été développé par l'équipe de FreeBSD. Le logiciel en question s'appelle freebsd-update.

Il permet de mettre à jour votre système a deux niveaux:

Mise à jour au niveau sécurité

Il suffit de saisir les deux commandes suivantes:

freebsd-update fetch
freebsd-update install

Mise à jour majeure et mineure

Les trois commandes suivantes vont mettre à jours les ports et migrer FreeBSD dans la dernière version disponible (8.0-RELEASE):

portupgrade -af
freebsd-update -r 8.0-RELEASE upgrade
freebsd-update install

On doit ensuite rebooter la machine, puis re-saisir la commande suivante:

freebsd-update install
Vus : 281
Publié par Nicolargo : 402