Forums d'entraide informatique - Astuces - Conseils

Des experts à votre écoute pour tous vos dysfonctionnements

Vous n'êtes pas identifié.


#1 26-09-2008 17:35:03

Admin
Administrateur
Date d'inscription: 30-07-2008
Messages: 683

Documentation : Débian 4.0 administration et configuration (4)

Debian, comme toute distribution, utilise un système de gestion de paquets. Afin de ne pas corrompre le travail de ce dernier, il est indispensable de ne par perturber son fonctionnement avec des installations manuelles parasites. Il existe plusieurs solutions permettant d'éviter les interférences, mais la meilleure reste la création de paquets.
Les explications qui vont vous être données ci-après ne sont qu'une base de travail vous permettant de créer un paquet à partir des sources officielles d'un projet. Cette base n'a pour but qu'une seule chose : installer- proprement une application ou des données qui ne sont pas encore empaquetées. Si vous souhaitez créer des paquets pour la distribution et/ou les diffuser via le Net, il vous faudra étudier davantage et sans doute faire appel à l'aide d'un développeur Debian (DD) pour vérification (et éventuellement vous parrainer lors de la soumission du paquet dans la distribution).
LA MÉTHODE SALE
Qui ne connaît pas la bonne vieille méthode pour avoir une application dernier cri sur son système ? Le très classique :
./configure make
make install
Dans le pire des cas,on utilisera même l'option --prefix=/usr pour bien intégrer l'application compilée dans le système. Par défaut, en effet, un script généré par autoconf produit un Ma kef i 1 e qui installe les éléments dans /usr/1 oca 1 lors d'un make i nsta 1 1. Remarquez que pour une installation « sauvage », le /usr/local est encore la meilleure solution, puisque ce répertoire est justement destiné à regrouper les éléments locaux du système, c'est-à-dire, les éléments qui ne sont pas, par défaut, gérés par l'UNIX installé.
Les problèmes soulevés par ce type de méthode sont multiples :
•    /usr/1 ocal n'est pas toujours dans le chemin de recherche pour les binaires, ni pour les bibliothèques partagées.
•    Ce type d'installation est indépendant du système de paquets. Vous ne savez donc pas ce qui est installé, quelle version est utilisée et de quelles bibliothèques ont besoin les programmes dans /usr/src/bin. Il est donc parfaitement possible que vous supprimiez une dépendance via le système de gestion des paquets sans aucun avertissement de sa part.
•    Vous pouvez gravement perturber le fonctionnement du système en installant des binaires ou des bibliothèques de cette manière si des versions concurrentes existent. Même la reconstruction de paquets peut être perturbée et les binaires liés aux bibliothèques placées dans /usr/local /1 ib. Je ne parle même pas des fichiers de données, des macros M4, des fichiers d'en-tête, etc.
Si vous tenez absolument à tester une application de cette manière, il existe des solutions comme l'utilisation d'un environnement « chrootè » ou des outils de traçage d'installation (préférez la première solution). Dans tous les cas, s'il s'agit d'aller au-delà des simples essais.Vous devrez intégrer le logiciel proprement dans le système et donc passer par la création d'un paquet Debian.
L' EXEMPLE
Pour baser les explications qui vont suivrent sur un exemple concret, nous allons créer une application très basique, utilisant néanmoins un système moderne de configuration et de compilation :le couple automake/autoconf. Bien entendu, si vous comptez empaqueter votre propre application qui utilise déjà ce type de support, sautez directement au chapitre suivant.
Notre projet d'application se présente sous la forme de l'arborescence suivante :
AUTHORS
ChangeLog
Makefile.am
-- NEWS
README
configure.ac src
Makefile.am afficher.c
I-- afficher.h
main.c
Commençons par les fichiers les plus simples : AUTHORS ChangeLog, NEWS et README contiennent des données au format texte dont la nature est en rapport direct avec leur nom (ces fichiers peuvent être vide).
Passons maintenant aux fichiers plus importants,à commencer par les sources dans le sous-répertoire src

CRÉEZ VOTRE PAQUET DEBIAN
PAQUETS
projet et la version spécifiés dans le confi gure. a c.A des fins de tests, vous pouvez désarchiver le tarball source dans un autre répertoire (ou sur une autre machine) pour en vérifier le bon fonctionnement. Il ne devrait cependant pas y avoir de problème, ma ke di stcheck étant précisément dédié à cela.
Si vous vous intéressez à l'utilisation d'automake et d'autoconf pour vos projets, je vous conseille la lecture des différents articles d'Y. Mettier publiés sur le sujet dans GLMF, articles d'où est humblement tiré notre sujet d'expérimentation.
(D ALLONS-Y !
Nous avons maintenant un exemple de sources amont et le tarball correspondant. La première chose à faire pour débuter la création d'un paquet est de vérifier que nous disposons de tous les outils nécessaires. Il s'agit bien entendu des différents éléments de compilation fournis par bui 1 d - essenti al qui installera un compilateur C et C++, la commande ma ke et le paquet dpkg -dev. Ce dernier est celui contenant les outils de fabrication de paquets Debian. Il installera également bi nuti 1 s ou encore patch.
Il est également conseillé d'installer les paquets dh-make permettant de créer une base pour la construction de paquets, autoconf et automa ke, debhel per qui regroupe un lot de scripts très utiles, fakeroot que vous connaissez déjà ou encore 1 i nti an, le testeur de paquets. Une installation complète et fonctionnelle de GnuPG est également souhaitée afin de signer le paquet source finale.
Créez ensuite votre environnement de travail sous la forme d'un simple répertoire vide. Là, copiez le tarball source et désarchivez-le. Nous sommes prêts à « débianiser » les sources. Lancez :
dh_make -e lefinnoisOlefinnois.net \
-f ../bonjour-0.1.tar.gz
Type of package: single binary, multiple binary, library, kernel module or cribs?
[s/m/l/k/b] s
Maintainer name : Denis Bodor
Email-Address    : lefinnois@lefinnois.net
Date    : Mon, 18 Dec 2006 15:30:38 +0100
Package Name    : bonjour
Version    : 0.1
License    : blank
Type of Package : Single Hit [enter] to confirm:
Done. Please edit the files in the debian/ subdirectory now. bonjour uses a configure script, so you probably don't have to edit the Makefiles.
dh_make est très pratique, car il permet de presque automatiquement « débianiser » des archives sources. Il fait la plupart du travail à notre place. dh_make est extrêmement
bien conçu et un peu intrusif.Vous remarquerez, qu'ici, seule l'adresse mail a été précisée, pourtant mon nom apparaît comme par enchantement. En fait, dh_make a récupéré mon login et parcouru les ressources à sa disposition (/etc/passwc, LDAP, NIS,YP, etc.) pour retrouver les informations manquantes. Il n'y a pas de magie dans Debian, juste la compétence des développeurs.
dh_make a également procédé à un certain nombre de manipulations. Premièrement, il a copié notre tarball source en bonjour_0.1.orig.tar.gz respectant ainsi les conventions et règles en usage pour les paquets source. dh_make a également créé un répertoire debi an dans l'arborescence des sources et l'a peuplé de nombreux fichiers. La description et l'étude de ces fichiers est l'objet du présent article.
NOTE
Il n'est possible de « débianiser » des sources amont qu'une seule fois. Si vous faîtes une erreur de manipulation ou détruisez un fichier, vous ne pouvez pas invoquer la commande une seconde fois. Le résultat ne serait pas garanti. Il faut donc faire très attention et faire des sauvegardes avant les manipulations critiques. Dans le cas contraire, vous n'aurez pas d'autres choix que de tout recommencer ou tenter de corriger le problème manuellement.
Remarquez que la partie sur l'utilisation d'automake/autoconf en début d'article n'était ni innocente, ni inutile. dh_make est en mesure de détecter ce type de configuration et s'en accommode très bien. Cela vous évite également de devoir adapter les Ma kef i 1 e aux besoins propres à une distribution Debian comme le respect de la hiérarchie du système de fichiers (Debian FHS), etc.
Nous sommes maintenant prêts pour la suite qui, comme nous l'indique dh_make, semble simple : éditez les fichiers dans debi an/.
CONTROL
Le fichier debi an/control contient les informations « administratives » sur le paquet. Ces informations sont utilisées par le systèmeAPT et l'utilitaire dpkg.dh_make a créé un fichier pour nous. Nous n'avons plus qu'à le compléter :
Source: bonjour
Section: unknown
Priority: optionai
Maintainer: Denis Bodor <lefinnois@lefinnois.net> Build-Depends: debhelper (>. 5), autotools-dev Standards-Version: 3.7.2
Package: bonjour
Architecture: any
Depends: ffshlibs:Dependsl, S{misc:Depends} Description: <insert up to 60 chars description> <insert long description, indented with spaces>


Cordialement

L'équipe Parisdepannage.fr

Hors ligne

 

Pied de page des forums


Copyright Parisdepannage.fr


Fermer la fenètre