“THE BEER-WARE LICENSE” (Revision 42): [twisla@gcu.info] wrote this file. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a beer in return. twisla.

En français dans le texte:

“La Licence Bièricielle (Révision 42): twisla@gcu.info a écrit ce fichier. Tant que vous y laissez cette notice, vous pouvez en faire ce que vous voulez. Si on se croise un jour, et que vous pensez que cela en vaut la peine, vous pouvez me payer un bière en retour. twisla.


$Id: upgrade.fbsd.5.6.txt,v 1.2 2005/10/17 23:00:32 twisla Exp $

ATTENTION: Lisez tout ce document jusqu'au bout avant de commencer votre mise à jour.

La procédure habituelle reste d'application, il a y a quelques détails à surveiller pour cette migration. Commencez par éditer le fichier /etc/make.conf (qui controle la globalité du système de build).

duvel# vi /etc/make.conf:

########################################################## 
# /etc/make.conf
SUP_UPDATE= yes				# activer la cible "make update" dans /usr/src
SUP= /usr/local/bin/cvsup		# le chemin vers cvsup
SUPFLAGS= -g -L 2			# les flags de cvsup
SUPFILE= /etc/cvsup/stable-supfile	# le chemin vers votre supfile basesys
#
# Pour mettre à jour les sources avec cvsup, il vous faut le port ou package
# net/cvsup-without-gui (réferrez vous au handbook quand à l'installation de packages ou ports)
#
KERNCONF=MONKERNEL 			# le nom de config KERNEL

CPUTYPE=pentium3			# adaptez à votre processeur. 
# Le compilateur produira alors des binaires taillés _sur_mesure_ pour votre processeur.
# Si vous voulez pouvoir installer et executer les binaire sur un autre type, mais quand même 
# les optimiser pour votre type de processeur, rajoutez un "?" avant le "="

#CPUTYPE?=pentium3			# Utilise -mcpu au lieu de -march

CFLAGS=-02 -pipe			# Flags de compilation userland et ports
COPTFLAGS=-02 -pipe			# Flags de compilation du kernel.

# -O2 optimise les binaires (ATTENTION, tous les ports ne supportent pas ces optimisations
# il vaut mieux revenir à "-O" une fois l'upgrade finie.)
# -pipe permet d'utiliser des pipe en mémoire plutot que des fichiers temporaires.

#############################################################

/etc/make.conf propose BEAUCOUP plus d'options que ça, jetez un oeil à ”/usr/share/examples/etc/make.conf“ pour avoir une idée de ce qu'il est possible de faire.

duvel# mkdir /etc/cvsup

éditez les supfile (vous pouvez vous baser sur /usr/src/share/exemples/cvsup/stable-supfile et ports-supfile en y remplaçant

duvel# vi /etc/cvsup/stable-supfile

*default host=cvsup2.nl.FreeBSD.org	# ou autre mirroir CVSup.
*default base=/var/db			#
*default prefix=/usr			# 
*default release=cvs tag=RELENG_6	# Important, indique la branche 6-STABLE
*default compress			# Optionnel si vous avez assez de bande passante
src-all					# Récupérer tout /usr/src

duvel# cd /usr/src

duvel# make update

Vous avez maintenant votre arbre des sources à jour, vous pouvez lancer le buildworld. (toujours dans /usr/src)

duvel# make buildworld

Ce qui va prendre un bon petit moment en fonction de votre hardware, il est temps de s'occuper du kernel. Pour la configuration kernel, le mieux que vous ayez à faire est de copier votre fichier config pour le sauvegarder, et vous baser sur GENERIC.

duvel# cp /sys/i386/conf/MONKERNEL /sys/i386/conf/MONVIEUXKERNEL duvel# cp /sys/i386/conf/GENERIC /sys/i386/conf/MONKERNEL.

y rajouter vos options, ainsi que retirer tout les drivers inutiles. Deux/trois choses ont changé:

Par exemple, le driver pour les cartes wifi basées sur les chipsets atheros requiert quelques modifications; en 5.4 il suffisait de:

device ath
device ath_hal # Atheros HAL (includes binary component)

Il faut maintenant ajouter:

device ath_rate_onoe # Onoe rate control for ath driver

Le scheduler ULE a été stabilisé et vous pouvez donc commenter la ligne

#options SCHED_4BSD

et décommenter

options SCHED_ULE

Le framework cpufreq(4) a été introduit, vous pouvez soit le compiler en dur:

device cpufreq # CPU Frequency control framework

soit l'utiliser en module:

duvel# echo “cpufreq_load=YES” » /boot/loader.conf

Cette méthode peut-être appliquée à tous les modules que vous ne voulez pas avoir en “dur” dans le kernel:

duvel# echo “nom_du_module_load=YES” » /boot/loader.conf

Vous pouvez maintenant lancer la compilation du kernel. (toujours dans /usr/src)

duvel# make buildkernel

(L'utilité du KERNCONF=MONKERNEL dans le /etc/make.conf est de vous éviter de le préciser sur la ligne de commande.)

Vous voilà avec de beaux binaires tout soyeux et doux tels le poil d'un bébé chat homosexuel.
Il vous reste maintenant à les installer, ainsi qu'à mettre à jour votre répertoire /etc (le badsamère).
Avant toute chose, il faut préparer l'environnement avec mergemaster(8) (toujours dans ce cher et tendre /usr/src, source de toute vie des lutins démoniaques)

duvel# mergemaster -p

(prébuild, compare uniquement les fichiers essentiels au déroulement de l'upgrade.)

On se rend compte à se moment là que les fichiers /etc/passwd et /etc/group ont changé. L'équipe de FreeBSD a décidé d'importer la suite d'outils DHCP d'OpenBSD, en lieu et place du client historique de l'ISC. Ce qui ajoute un utilisateur système _dhcp. Pour simplifier les choses, avant de commencer, rajoutez l'utilisateur à la main:

duvel# vipw (pour éditer la base des utilisateurs)

rajoutez la ligne:

_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin

duvel# vi /etc/group (pour rajouter le groupe)

rajoutez la ligne:

_dhcp:*:65:

Il se peut que vous ayez à faire pareil pour l'utilisateur _pflogd. mergemaster(8) vous indique ces changements par des lignes commencant par ”+“.
Pour ce qui est de /etc/passwd et /etc/group, ajoutez les à la main, il risque sinon de vous retirer vos utilisateurs existants.

Vous pouvez donc commencer à installer tous ces beaux binaires qui vont vous rendre le poil si doux et l'érection plus consistante.

duvel# cd /usr/src duvel# make installkernel duvel# make installworld duvel# mergemaster

Maintenant commence la partie la plus délicate. Qui consiste à passer en revue tous les changements intervenus dans /etc.
J'espère pour vous que vous vous souvenez de ce que vous avez modifié. Les fichiers par défaut peouvant être mis à jour sans crainte.

mergemaster pour vous propose plusieurs choix:

Use 'd' to delete the temporary ./etc/master.passwd
Use 'i' to install the temporary ./etc/master.passwd
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
How should I deal with this? [Leave it for later]           

Par défaut il ne touchera à rien. - utilisez 'v' pour revoir les différences (un - signifie qu'il enlèvera vos changements

 dans les fichiers, un + qu'il y a de nouvelles options)

- utilisez 'd' pour deleter la version temporaire si rien n'a changé excepté l'Id CVS et

 qu'il veut vous enlever les changements.

- utilisez 'i' pour installer la nouvelle version si vous n'avez jamais touché à ce fichier. - utilisez 'm' pour merger les différence (personellement, je skip et j'édite à la main dans

 ce cas là.)

Le repertoire /etc/rc.d qui contient les scripts de démarrage des services a subi de gros changements, vous aurez donc beaucoup de fichiers à y installer. mergemaster vous fera la remarque qu'il reste des fichiers inutilisés dans ce répertoire, vous pouvez les effacer. Il y a aussi quelques nouveaux fichiers à installer.

Les fichiers temporaires à installer sont situés dans /var/tmp/temproot. Mergemaster vous proposera de deleter les fichier temporaires, si vous n'avez pas à en rééditer à la main, vous pouvez y aller.

La tonte touche à sa fin, nous allonrs en pouvoir nous asseoir et regarder la pelouse verdoyante de notre nouveau jardin.

Il reste une dernière chose, mais plutot importante pour les posseseurs de cartes graphiques NVidia utilisant les drivers propriétaires:

- réinstallez les drivers ( cd /usr/ports/x11/nvidia-driver && make deinstall && make install )

 afin qu'ils soient linkés à votre nouveau système. 
 C'est le kernel panic assuré dans le cas contraire.
 (Si par malheur vous aviez oublié de le faire, au boot, choisissez 
 "escape to loader prompt", vous aurez un simple prompt, tappez:
unload # pour unloader tous les modules au démarage
boot /boot/kernel # pour booter votre kernel

- Réinstallez les drivers une fois le système booté.

 Quelques considérations:
 -----------------------

– ALWAYS KEEP BACKUPS: sauvegardez toujours vos données,

  une mise à jour n'est jamais sans risques.

– Arretez tous les services qui tournent avant le make installworld.

  Vous allez remplacer toutes les librairies et binaires dans les minutes qui viennent, 
  cela peut leur causer pas mal de confusion.
  ( /etc/rc.d/nom_du_service "status" pour voir s'il tourne, "stop" pour l'arreter)
Un grand merci au Squad pour l'ambiance qui y règne, et à tous ceux qui font qu'utiliser 
un vrai UNIX Libre soit possible.

Écrit lundi 17 octobre de l'an de grace 2005, relu le mardi 18 octobre. Clément Martin twisla@gcu.info

P.S.: pinpin: _rise_

-----------UPDATE-----08/08/2006------------------
l'update vers une version de FreeBSD 6 doit se faire au minimum avec un freeBSD 5.4
         ERROR: Source upgrades from versions prior to 5.3 not supported.

Kzper
freebsd/upgrade_5_-_6.txt · Last modified: 2010/01/12 13:29 (external edit)