NetBSDIssue du Tracking NetBSD current, et légèrement adaptée, voici la méthode la plus propre pour mettre à jour l’ensemble du système NetBSD (vers NetBSD-current ou autre):

    1. Préparation de l’environnement:

      1. Exporter les variables Shell utilisées par CVS:

        export CVS_RSH=ssh

        export CVSROOT=« :pserver:[email protected]:/cvsroot« 

      2. Aménager le répertoire hôte des sources:

        1. Si des sources NetBSD ont déjà été compilées:

          Sauvegarder au besoin sa configuration noyau localisée dans ./sys//conf/ , où est l’architecture de la machine

          rm -Rf /usr/src/*

        2. Sinon

          mkdir /usr/src

    2. Récupération des sources:

      cd /usr

      1. Si on veut se synchroniser avec NetBSD-current, récupérer les sources de -current via CVS, télécharger les sources de -current:

        cvs checkout -PA src

      2. Si on veut synchroniser avec des sources autres que -current:

        1. Soit dé-archiver les snapshots ou les sources d’une version stable (à partir d’une ISO d’un CD Retail), selon le cas.

        2. Sinon:

            1. Soit invoquer cvs avec l’option -r en précisant un drapeau de version:

              cvs checkout -PA -r <netbsd_release> src

              où <NETBSD_RELEASE> est le nom de la branche des sources souhaitée (ex: netbsd-5-0-RC3, cvs)

            2. Soit utiliser l’option -D et spécifier une date de mise-à-jour:

              cvs checkout -PA -D « <COMMIT_DATE> » src

              où <COMMIT_DATE> est une date de disponibilité des sources au format ISO8601

             

    3. Construire les outils nécessaires à la compilation et à l’installation des nouvelles sources:

      cd /usr/src

      mkdir ./obj

      ./build.sh -O ./obj -j<num_proc> tools

où <num_proc> est le nombre de processeurs machines disponibles pour la compilation

  1. Construire et installer le noyau:

    Modifier ou importer le fichier de configuration du noyau souhaité, localisé dans ./sys//conf/

    ./build.sh -O ./obj -j<NUM_PROC> kernel=<KERNEL>

    où <KERNEL> est le nom du fichier de configuration

    mv /netbsd /onetbsd

    mv ./obj/sys/arch//compile//netbsd /

  2. Redémarrer la machine avec le nouveau noyau

  3. Préparer le nouveau userland

    cd /usr/src

    1. (Optionnel) Modifier au besoin les sources de certains programmes dont les variables de configuration sont codées « en dur », exemple:

      vi ./crypto/dist/ssh/pathnames.h

      -#define _PATH_PRIVSEP_CHROOT_DIR "/var/chroot/sshd"
      +#define _PATH_PRIVSEP_CHROOT_DIR "/chroot/sshd"

    2. Construire le nouveau userland (cette étape est très longue):

      1. Si les fichiers de configuration localisés dans /etc sont déjà paramétrés et ne doivent pas être mis à jour:

        ./build.sh -O ./obj -j<NUM_PROC> build

      2. Sinon:

        ./build.sh -O ./obj -j<NUM_PROC> distribution

  4. Installer le nouveau userland

    ./build.sh -O ./obj -j<NUM_PROC> install=/

  5. Corriger à la main les différences des fichiers de configuration entre la nouvelle distribution et l’ancienne, au besoin.
    Attention, cette étape peut être réalisée automatiquement, néanmoins il est très important d’auditer manuellement toute différence survenue dans les liens vers des bibliothèques devenues obsolètes (la catégorie « obsolete » de postinstall).
    Supprimer une bibliothèque obsolète mais néanmoins toujours utilisée par un paquetage pkgsrc peut dans le pire des cas nécessiter la réinstallation du système. Pour vérifier quelles bibliothèques sont utilisées par un exécutable, penser à la commande ldd.

    1. Répertorier les paquets qui n’ont pu être mis à jour par postinstall grâce à la ligne « postinstall checks failed: »

    2. Trouver les différences de contenu entre les anciens et les nouveaux fichiers d’un paquet donné:

      /usr/src/usr.sbin/postinstall/postinstall -s ‘/usr/src’ -d / diff -u <pack_name>

      où <PACK_NAME> est le nom d’un paquet qui doit être installé

    3. Mettre à jour:

      1. Soit corriger les anciens fichiers à la main.

      2. Ou si le contenu du nouveau paquet est correct et doit prendre l’ascendant sur l’ancienne version:

        /usr/src/usr.sbin/postinstall/postinstall -s ‘/usr/src’ -d / fix <pack_name>

  6. Redémarrer la machine afin de vérifier éventuellement si les services utilisent bien les nouveaux binaires

Sujet sur la gamme NetBsd :

Comment mettre à jour Netbsd

Sauvegarde hebdomadaire de données sous Netbsd

Redémarrez automatiquement des services devenu « Fous » sous Netbsd

Préparez une clef d’installation de Netbsd sous windows