CTM for OpenBSD

Qu'est ce que ctm ?

Ctm est un système conçu par Poul-Henning Kamp pour distribuer les changements effectués sur une arborescence de source tous les jours par courrier électronique. C'est un bon moyen de rester à jour avec les sources actuelles ou l'arbre cvs sur vous avez une mauvaise connexion Internet (par exemple un modem).

Ctm utilise très peu de bande passante pour distribuer les changements dans les sources et les compresse en utilisant gzip -9.

Comment est-ce que cela fonctionne ?

L'idée de ctm est que vous vous inscrivez à une liste de discussion spécifique à une arborescence. Chaque jour vous recevez un message électronique contenant les changements sur l'arbre pendant cette période. Une série de différences est appelé un "delta".

Vous commencer avec une série de base sur laquelle vous appliquerez les deltas ultérieurs. Pour commencer avec ctm vous devez récupérer la dernière série de base ainsi que tous les deltas suivants. Une fois que vous avez traité tout ça, vous pouvez appliquer les deltas ultérieurs au fur et à mesure de leur réception. La série de base est découpée en morceaux de 1400k chacun pour permettre un téléchargement aisé au travers des mauvaises connexions. Vous pouvez même les mettre sur disquettes.

Les séries de base sont générées environ tous les 100 deltas, ce qui fait que vous n'avez jamais plus de 100 deltas à récupérer.

Quel est la bande passante utilisée par ctm ?

Comme mentionné précédemment, la série de base contient toutes les sources de l'arborescence au format TAR, ce qui peut être volumineux. Vous devez obtenir cette série de base ainsi que tous les deltas par ftp depuis les sites donnés ci-dessous. Les tailles sont :

Des mises à jour plus grosse à travers ctm sont rares, et seulement après une modification majeure des sources telle que binutils, perl...

Comment utiliser ctm ?

Dois-je utiliser l'arborescence src ou cvs ?

Cela dépend de votre place disque entre autre. Étant donné que ctm n'agit pas sur des fichiers qui ont été modifié en dehors du processus ctm, le "meilleur" choix est sans doute l'arborescence cvs. De cette façon, vous pouvez récupérer une arborescence src depuis votre arborescence cvs et garder vos modifications locales dans votre arborescence des sources, laissant ainsi ctm ne toucher qu'à votre arborescence cvs.

Le désavantage par contre, est la quantité de place disque que cela prend. Une arborescence des sources est d'environ 300Mo, mais si vous avez une arborescence cvs, vous aurez besoin de 400Mo pour celle-ci, en plus des 300Mo pour les sources.

Ceci ne compte pas les 100Mo ou plus nécessaires à une compilation (cela dépend de l'architecture).

Si vous venez juste d'obtenir l'arborescence des source, vous aurez besoin de gérer les modifications locales. Une manière de faire ceci est d'utiliser le système de fichiers union, bien qu'il ait été rapporté que le système de fichiers union peut être instable si les couches inférieures et supérieures résident sur le même système de fichiers physique. Si vous placez vos couches supérieures et inférieures sur des systèmes de fichiers différents vous ne devriez avoir aucun problème. Un exemple :

Supposons que votre arborescence mise à jour de ctm se trouve dans /usr/src-ctm et que votre véritable arborescence des sources (à partir de laquelle vous faites vos modifications et compilations) se trouve dans /usr/src. /usr/src doit initialement être un répertoire vide. La commande suivante va configurer votre union mount :

mount -t union -o -b /usr/src-ctm /usr/src

Les modifications faites aux fichiers se trouvant dans /usr/src deviendront un fichier contenu dans /usr/src, masquant celui dans src-ctm. Si des changements sont faits via ctm dans l'arborescence src-ctm sous jacente, ces changements ne seront pas vus s'il y a un fichier dans la couche supérieure les masquant.

Vous devriez démonter périodiquement l'union et chercher les fichiers locaux au système de fichiers union.

umount /usr/src
find /usr/src -type f



Les commandes ls -W et rm -W seront utiles aussi, car les objets nommés "whiteouts" dans /usr/src cacheront aussi des fichiers dans src-ctm.

Si vous avez l'arborescence cvs, vous pouvez utiliser la commande "cvs checkout" pour en récupérer une arborescence des sources, et à chaque fois que vous mettez à jour avec ctm, vous pouvez utiliser "cvs update" pour mettre à jour votre arborescence des sources.

Pour obtenir votre arborescence src originelle :
cd /usr
cvs -qd VOTRE_ARBORESCENCE_CVS checkout src


après chaque mise à jour ctm :
cd /usr/src
cvs -q update -PAd

Est-ce que ctm est stable sous OpenBSD ?

Ctm est utilisé depuis plus d'un an par OpenBSD, et par FreeBSD depuis plusieurs années. Ctm est stable et solide.

Plus d'informations

Si vous avez des problèmes avec ctm, un bon endroit pour démarrer est le manuel FreeBSD : Il y a aussi des pages de manuel pour tous les utilitaires ctm inclus dans le package. Si vous avez OpenBSD, vous devriez avoir les pages du manuel, les sources et les binaires. Sinon vous pouvez les obtenir sur le même site ftp ci-dessous que les deltas.

Vous pouvez aussi contacter les listes de discussion OpenBSD ou moi-même si vous avez des difficultés avec ctm, bien que mon temps libre tend à être limité.

Résumé :

Je ferai les remarques et annonces importantes à propos de ctm dans :

REMARQUE : Si vous utilisez ctm pour OpenBSD, veuillez m'envoyer un courrier électronique de façon à ce que je sache combien de personnes l'utilise !

Remerciements

  • Poul-Henning Kamp (phk@FreeBSD.org) pour avoir rendu ctm possible et m'avoir aidé dans le processus de génération de deltas.
  • Theo de Raadt (deraadt@theos.com) pour avoir rendu OpenBSD possible et m'avoir donné les ressources nécessaires dont j'avais besoin pour créer les premiers deltas ctm sur cvs.OpenBSD.org (maintenant ils sont générés ailleurs) et pour la magie du serveur de noms.
  • Todd C. Miller (millert@OpenBSD.org) pour la mise en place et l'entretien des listes de discussion ctm.
  • Bob Beck (beck@OpenBSD.org), Artur Grabowski (art@OpenBSD.org), Magnus Holmberg (mho@OpenBSD.org) et Wolfram Schneider (wosch@FreeBSD.org) pour la mise en place de l'espace ftp pour les séries de base et les deltas sur ctm.*OpenBSD.org
  • ... et tous les autres qui ont contribués indirectement ..

    Bonne chance !

    t


    Thomas Graichen

    Le logo OpenBSD/CTM a été dessiné pour le projet OpenBSD par Phillip F Knaack.


    OpenBSD www@openbsd.org
    Originally [OpenBSD: ctm.html,v 1.12 2000/11/17 19:11:33 jufi Exp ]
    $Translation: ctm.html,v 1.6 2000/11/28 15:45:39 reinhard Exp $
    $OpenBSD: ctm.html,v 1.5 2000/12/05 21:24:33 jufi Exp $