Première rédaction de cet article le 13 avril 2008
Dernière mise à jour le 1 octobre 2009
Après des années passées à administrer des machines Debian où la mise à jour vers une nouvelle version du système est simple et marche à (presque) tous les coups, passer un ordinateur NetBSD de la version 3 à la version 4 est un amusant retour en arrière, comme de faire un stage dans une île déserte avec juste un briquet et un couteau.
La machine est une Sun UltraSparc 10. Elle était en NetBSD 3.1 et vient de passer en NetBSD 4 puis, avec la même méthode, en NetBSD 5. Ce que j'ai fait, sur les excellents conseils de Mark Weinem :
http://ftp.netbsd.org/pub/NetBSD/NetBSD-5.0.1/sparc64/binary/sets/
. J'ai utilisé pour cela la commande
wget --mirror --no-parent --execute robots=off
http://ftp.netbsd.org/pub/NetBSD/NetBSD-5.0.1/$(uname -m)/binary/sets/
. Pour le reste de la manipulation, on va supposer
qu'on a tout copié dans /var/tmp/netbsd5
. On se
rend dans ce répertoire.
pax -zrf
kern-GENERIC.tgz
. pax est simplement
un frontal aux différents formats d'archivage comme tar.mv /netbsd /netbsd.old
et mettre le nouveau
noyau, récupéré à l'étape précédente avec mv netbsd /netbsd
. On pourra redémarrer sur
l'ancien noyau, si nécessaire, avec la commande boot
netbsd.old
de l'invite de démarrage de la Sparc./ofwboot
, puis copier le
nouveau (qu'on trouve dans l'ensemble base.tgz
,
en ./usr/mdec/ofwboot
).etc.tzg
et
xetc.tgz
contiennent, comme leur nom l'indique,
des fichiers de configuration. On ne les installera pas directement,
la machine étant déjà configurée.cd
/
) et on installe : for set in $(ls
/var/tmp/netbsd5/*.tgz | grep -v etc | grep -v kern); do; pax -zrf
$set; done
.postinstall check
. Ce programme va vérifier
que tout est bien en place. Exécuter ensuite la commande qu'indiquera postinstall
.etcupdate
ainsi :
etcupdate -s /var/tmp/netbsd5/etc.tgz -s
/var/tmp/netbsd5/xetc.tgz
. etcupdate
est interactif et, pour chaque fichier de configuration pour lequel il
y a une nouveauté, il demandra s'il doit garder l'ancien, installer le
nouveau ou bien fusionner interactivement les deux (le système est
nettement moins intelligent que son équivalent Debian, qui regarde si
l'ancien fichier a été modifié localement, avant de poser la question).
À noter que cette opération n'a mis à jour que le système de base. Autre différence avec Debian, le système est coupé en deux, le système de base et les applications, qui se gèrent à la main, ou bien via un système comme pkgsrc.
Il existe d'autres méthodes pour mettre à jour un système NetBSD. Citons notamment la possibilité de démarrer la machine sur un CD-ROM NetBSD et de choisir l'option de mise à jour (merci à Marc Baudoin pour ses explications). Cela simplifie le processus mais ne peut pas s'effectuer à distance.
Une autre solution, pour ceux qui aiment le compilateur, est de compiler soi-même le système de base (attention, je ne l'ai pas fait moi-même, l'opération est trop lente et consomme trop de place disque, je recopie juste une documentation) :
cd /usr/src
cvs update
MAMACHINE
) et ./build.sh -U -u
kernel=MAMACHINE
.cp /netbsd /netbsd.old
puis cp
/usr/src/sys/arch/$(uname -m)/compile/obj/MAMACHINE/netbsd
/netbsd
cd /usr/src
./build.sh -U tools
./build.sh -U -u distribution
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)