Linuxman - janvier 2000


INDEX

Mois précédent

Mois suivant


22 1 2000
23 1 2000

 22 1 2000

Mots Clés : retour.

Voilà bien longtemps, presque 2 mois, que je n'ai gratté un peu, même quelques mots. Mais il y a toujours des moments où il faut savoir donner un peu plus d'un côté, le tout est de simplement arriver à rétablir l'équilibre à un moment ou à un autre.

J'ose espérer que l'an 2000 a été pour vous un tournant magistral, un renouveau tant dans votre vie que dans votre monde mais j'ai bien peur que, n'en déplaise, la seule chose qui aie changé dans notre routine ne soit que les quelques zéros supplémentaires qui peuplent encore un peu plus nos chèques... Mais il n'y a rien à attendre et beaucoup à faire. Aussi insignifiante notre implication et nos convictions, le monde du libre, bien plus qu'une distraction d'étudiant, peut apporter des valeurs qui manquent peut-être un peu trop à la course effreinée quotidienne. Je l'ai déjà dit mais je le répète, la connaissance vous rendra bien plus riche que l'argent, et la dépenser plus heureux que l'avarice.

Sur ces sans en douter fortement riches paroles, je ne vous présente pas mes résolutions, que je tiendrai pas, mais si vous aviez des requêtes, quant aux futurs sujets que je pourrai aborder, feel free.

haut de page

 23 1 2000

Mots Clés : CVS, ELF, c, aclocal, autoconf, automake, configure, rpm, Makefile, CVS.

ELF (Executable and Linkable Format) est le format des fichiers exécutables sous Linux depuis quelques temps, il définit une manière de créer un fichier exécutable, une librairie partagée, ou tout simplement un fichier objet, de manière à ce que le système d'exploitation soit en mesure de l'exécuter par la suite. Beaucoup penseront qu'un exécutable n'est rien d'autre qu'un amas d'instructions assembleur lancées sauvagement dans le microprocesseur, il n'en est pas exactement ainsi.

Je vais donc profiter de ce sujet pour détailler la création d'un petit programme qui se contente de relire les différentes informations exploitables à l'intérieur d'un fichier ELF et qui les affiche. Cela me permettra d'aborder quelques sujets connexes comme le système de gestion de version (CVS : Concurrent Version System), les programmes d'auto-configuration et de création de makefile autoconf, automake et aclocal. De plus j'aborderai rapidement la création d'un rpm et le format d'un fichier .spec

CVS est un système de gestion de version permettant de conserver l'hitorique d'un code source ou de tout fichier. Il permet de plus à plusieurs personnes de travailler ensemble sur un projet identique. Je ne vais pas entrer trop dans les détails parce que je ne suis pas ce que l'on pourrait appeler une brutasse du CVS, mais vais tenter de vous en montrer le fonctionnement pour vous permettre de l'utiliser et de bénéficier par ce moyen d'un accès à tous les projets libres qui offrent généralement un CVS en lecture libre pour avoir le snapshot courant des sources.

La première chose à réaliser pour mettre en place un système de CVS au niveau local est de créer le répertoire racine de CVS, appelé repositoire (repository). En effet l'ensemble des sources et informations associées sont stockés sous une arborescence spécifique. Cette arborescence est propriété de CVS et les utilisateurs n'ont pas à y accéder. Pour pouvoir travailler sur un code qui est dans le CVS, il faut appeller celui-ci, on possède alors une version en local sur laquelle on peu travailler avant de répercuter les modifications dans le CVS. La création du répertoire racine se fait par la commande cvs -d ~/local/cvsroot init. Une fois ce repertoire racine créé, il faut positionner la variable d'environnement CVSROOT de manière que les appels à la commande cvs ne nessécite pas de spécifier le chemin du CVSROOT perpétuellement. Il suffit d'ajouter export CVSROOT=~/local/cvsroot dans votre .bashrc par exemple.

L'étape suivante est alors de commencer son premier projet. Le plus simple est de commencer un projet dans un répertoire project par exemple et d'y mettre les premiers fichiers le composant, ensuite un cvs import project warly start permet de créer une nouvelle branche basée sur le répertoire project, dont le vendeur est warly (vendortag) et le nom de version start (releasetag) ; ces deux derniers champs sont nécessaires mais pas très importants dans un premier temps.

Maintenant votre projet initialisé, pour commencer une session de travail placez-vous où vous voulez et tapez cvs checkout project. Cela créera une copie locale de votre projet sur laquelle vous pouvez travailler. A ce niveau, vous avez un panel de commandes disponible :

cvs add : permet de rajouter de nouveaux fichiers comme faisant partie de votre projet.
cvs remove : permet de supprimer un fichier de votre projet.
cvs update : met à jour la copie locale de votre projet avec le repositoire pour répercuter les éventuelles modifications faites par d'autres personnes depuis votre checkout.
cvs commit : répercute vos modifications dans le repositoire, vous demande de rentrer une description de vos modifications et change les versions des fichiers modifiés.
cvs release : libère votre copie locale du projet une fois votre travail terminé.

CVS vous permet d'acceder à des repositoires distants, pour cela il faut spécifier le repositoire disant avec l'option -d ou modifier la variable CVSROOT de la façon suivante :

CVSROOT=:method:user@hostname:/path/to/repository

method :  
si elle n'est pas spécifiée, alors la méthode ext est assumée, c'est-à-dire une connection via rsh par défaut ou le programme précisé par la variable d'environnement CVS_RSH.
pserver: c'est, avec ext, une autre méthode courante, qui permet une connection avec mot de passe au serveur.

Quoi qu'il en soit, les serveurs donnant accès à leur CVS documentent généralement la méthode d'accès et les éventuels mots de passe nécessaires.

haut de page

Mois suivant

Valid HTML 4.0!

Warly Home Page   Generated 2000-07-02, 11h31   Mail
Copyright © 1999,2000 Florent Villard (warly@bigfoot.com)
This site was created with daily (tar.gz, rpm)