“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