Mise à jour complète de son FreeBSD

Date: 15/12/2009 | Catégories: Open-source,Planet-libre,Systeme | Tags: ,,

100px-logo_freebsd

Pour une mise à jour majeure 7.x -> 8.x. Je vous conseille de suivre les procédures se trouvant sur le site suivant: http://people.freebsd.org/~rse/upgrade/

FreeBSD 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.

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 (ou csup qui est plus rapide) 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 télécharge les mises à jours:

cvsup /usr/local/etc/csup/stable-supfile

cvsup /usr/local/etc/csup/ports-supfile

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

cd /usr/src

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 RELEASE (>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.

Attention cette procédure ne peut pas s'appliquer sur les versions STABLE.

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.1-RELEASE):

portupgrade -af

freebsd-update -r 8.1-RELEASE upgrade

freebsd-update install

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

freebsd-update install

Partager ce billet