Packaging Debian GNU/Linux avancé

Dimension: px
Commencer à balayer dès la page:

Download "Packaging Debian GNU/Linux avancé"

Transcription

1 Packaging Debian GNU/Linux avancé Ce document est sous Licence de Documentation Libre GNU.

2 Support de cours Packaging Debian GNU/Linux avancé Auteurs : Benjamin Drieu <benjamin.drieu@fr.alcove.com>. Alcôve Formations Organisme de formation enregistré sous le n en 2004, plus de 70 stages effectués, en Inter ou Intra-entreprises, avec plus de 250 stagiaires ; toutes nos formations sont agrées FAFIEC. Le catalogue Formations est disponible sur notre site Internet, à la rubrique Formations. Pour de plus amples renseignements : Téléphone : formation@alcove.fr Cet ouvrage a été mis en page avec L A T E X, à partir de fichiers au format XML convertis à l aide de xsltproc développé par Daniel Veillard ( Les feuilles de styles, la DTD et les outils associés ont été developpés par Logidée ( pour rédiger et maintenir ses supports de formations. Ces outils sont bien sûr sous licence libre et disponibles sur le site web mentionné ci-dessus. Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License disponible à version 1.1 ou toute version ultérieure publiée par la Free Software Foundation. Veuillez vous référer aux sources XML de ce document (que vous pouvez obtenir auprès de l auteur) pour connaitre le détail de la licence avec la liste des Sections Invariables, des Textes de Première de Couverture, et des Textes de Quatrième de Couverture.

3 Sommaire Thème 1 : Démarrage Plan du cours Plan du cours Présentation de Debian Présentation de Debian Qu est-ce que Debian? Qui produit Debian? Organisation de Debian Infrastructure du projet Tâches des développeurs Software in the Public Interest (SPI) Le «contrat social» Debian demeurera un ensemble logiciel totalement libre Nous donnerons en retour à la communauté des logiciels libres Nous ne cacherons pas les problèmes Nos priorités sont nos utilisateurs et les logiciels libres Programmes non conformes à nos standards sur les logiciels libres Critères de liberté des logiciels (DFSG) Redistribution libre et gratuite Code source Applications dérivées Intégrité du code source de l auteur Aucune discrimination de personne ou de groupe Aucune discrimination de champ d application Distribution de licence La licence ne doit pas être spécifique à Debian La licence ne doit pas contaminer d autres logiciels Les composants d un dépôt Debian standard main contrib non-free non-us/* Debian et le monde du logiciel libre Collaboration verticale avec les développeurs upstream Apports indirects aux développeurs amont Collaboration horizontale Évolution des versions de la distribution Cycle de vie actuel Les noms de code des versions Trouver les anciennes versions Thème 2 : Les paquets Debian GNU/Linux Les fichiers.deb Le nom du fichier.deb Format de nom du fichier.deb Structure du fichier.deb Nature du.deb (format 2.0)

4 Les fichiers de contrôle du paquet L archive data Fichiers.deb signés Versionnement des paquets Version upstream et révision Debian Époques Comparaisons, ordonnancement des versions Cycle de vie d un paquet dans Debian Relations entre paquets Types de relations entre paquets Paquets virtuels Classifications des paquets Section Paquets essentiels Priorité Tâches Paquets spéciaux Méta-paquets Bibliothèques Manipulations des paquets.deb Utilisation basique Etats possibles d un package Informations sur les paquets Modification du système Utilisation avancée Options classiques Exemple : changer de MTA Gestion des sélections Vérifications d intégrité Utilisation des dépôts APT Survol de APT Rôle de apt Outils principaux Outils complémentaires Le dépôt APT Gestion des sources de paquets Sources habituelles Définition d une source APT Sources APT utiles Suivi des versions installées et disponibles Recouvrements de sources Pinning de version Configuration de apt Spécification de paramètres Syntaxe Paramètres principaux Administration de tous les jours Front-ends de sélection des paquages Rechercher les paquets inutilisées Surveiller les mises à jour Trouver le miroir le plus adapté Vérifier la présence de logiciels non-libres

5 Thème 3 : Bases de la construction de paquets Debian GNU/Linux Construction de paquet Debian : bases Pourquoi faire? Désinstallation Meilleure intégration dans le système Déploiement facile sur d autres machines Bénéfice de toute la chaîne Debian Structure d un paquet source Debian Description générale Éléments principaux du packaging Autres fichiers Documentation Copyright Outils d aide debhelper Lintian devscripts dpkg-dev-el Construction d un paquet Vérifier les dépendances de construction Cas général Pour une autre version de Debian Backporter un paquet : le cas simple Objectif Vérifier les dépendances de construction Entrée dans debian/changelog Le cas général Sites proposant des backports Faire un dépôt local Dépôt simple Dépôt avec sous-composants Construction de paquet Debian : outils d aide Packaging générique avec dh_make Principe Utilisation Exemple Utilisation de Alien Principe Thème 4 : Le packaging Debian GNU/Linux avancé Configuation des paquets avec Debconf La configuration des packages Principe Les fichiers de configuration Un exemple d utilisation Debconf Principe Reconfiguration des paquets Interfaces Les priorités La base de données

6 4.1.3 Développer pour Debconf Introduction Les fichiers de template Le maintainer script L installation des fichiers nécessaires Exercice L intégration au système La gestion des types MIME Via mailcap Via freedesktop Les menus Principe Implémentation Exemple Les paramètres Les bibliothèques Les bibliothèques partagées Principe Le nommage des paquets Les fichiers.so ldconfig Les bibliothèques statiques Les bibliothèques de développement Principe Nommage Organisation Les shlibs Principe Fonctionnement de shlibs Dans le paquet de bibliothèque Les paquets Perl/Python La policy Perl Noms de paquet Procédure d installation Les dépendances La policy Python Introduction Les noms des paquets Les versions supportées Dépendances Les fichiers bytecompilés SVN buildpackage Introduction Pourquoi utiliser un système de contrôle de version? Principe Les avantages Un exemple d organisation En pratique Mise en pratique Création du référentiel

7 Ajout d une version Debian Mise à jour upstream Exercice Thème 5 : Debian comme organisation de développement L organisation Debian La constitution et le contrat social Les développeurs individuels Les développeurs par résolution générale ou élection Le responsable du projet (Project Leader) Le commité technique Le secrétaire Les délégués du responsable du projet Capitaux administrés pour Debian Les trousseaux de clés L authentification des développeurs La signature des paquets La signature des archives Le paquet debian-keyring Les groupes de travail Le groupe site web Les ftp-masters Le DDP / DDTP Le grouepe Q&A Le groupe Debian Installer Les ressources Debian Les listes de discussion Les channels IRC Les machines Debian La base de données Debian Intégrer un paquet dans Debian Les pré-requis Existence Licence Pour un premier paquet Fonctionnement L ITP Le parrainage Principe En pratique Comment trouver un sponsor? Les différents repositories stable et testing Les proposed-updates Les mises à jour de sécurité experimental Debian Q&A Le PTS Le DDPO Les WNPP

8 5.3 Devenir développeur Debian Pourquoi faire? Participer à un projet communautaire Maintenir plus facilement ses paquets S informer S exprimer Les droits et les devoirs Les droits Les devoirs Les pré-requis et la procédure Pré-requis La procédure de recrutement Solutions Glossaire

9 1. Démarrage

10 1.1. Plan du cours

11 1.1.1 : Plan du cours Présentation, installation Les paquets Debian Bases de la construction de paquets Packaging avancé Debian comme organisme de développement Plan du cours Plan du cours 11

12 1.2. Présentation de Debian

13 1.2.1 : Présentation de Debian Qu est-ce que Debian? Qui produit Debian? Organisation de Debian Infrastructure du projet Tâches des développeurs Quotidiennement À l occasion Software in the Public Interest (SPI) Qu est-ce que Debian? Une distribution une collection de logiciels libres (répertoire de logiciels) des normes d intégration de logiciels (debian policy) une interface vis-à-vis des utilisateurs (BTS, etc...) Une distribution universelle Plusieurs noyaux supportés ou en voie de l être (Linux, Hurd, BSD) 11 architectures matérielles supportées (i386, powerpc, alpha, sparc, etc.) Plus de paquets logiciels touchant à tous les domaines d utilisation de l informatique Debian n est pas une distribution commerciale, mais... Qui produit Debian? Présentation de Debian Présentation de Debian 13

14 Plus de 1000 développeurs Personnes isolées Utilisation de la cryptographie (GPG, keyring) Institutions publiques (universités,...) Entreprises (Alcôve, Progeny, Logidée,...) Organisation de Debian Constitution Direction du projet : leader, comité technique, secrétaire Gestion de la distribution : responsables de paquets release-manager qualité portages documentation traduction... Infrastructure : sécurité, normes, X, etc. Programme de parrainage et d évaluation des candidats Infrastructure du projet Machines *.debian.org ; Présentation de Debian Présentation de Debian 14

15 Le système de publication de paquets ; Les build-daemons ; Listes de diffusion ; Le BTS ; Pages web de suivi (PTS, DDTP etc.) ; Alioth, notre Gforge à nous ; Le réseau de miroirs. Tâches des développeurs Quotidiennement Le BTS ; Les listes de diffusion et beaucoup d . ; Les canaux IRC ; Les auteurs amont ; À l occasion Bug squashing parties ; Votes ; Conférences Debian. Software in the Public Interest (SPI) "Vitrine légale" du projet Debian Sert de "vitrine légale" à d autres projets (Berlin, LSB,...) Présentation de Debian Présentation de Debian 15

16 1.2.2 : Le «contrat social» Debian demeurera un ensemble logiciel totalement libre Nous donnerons en retour à la communauté des logiciels libres Nous ne cacherons pas les problèmes Nos priorités sont nos utilisateurs et les logiciels libres Programmes non conformes à nos standards sur les logiciels libres «Contrat social» avec la communauté des logiciels libres. Intégralité du texte : Debian demeurera un ensemble logiciel totalement libre Nous promettons de maintenir la distribution GNU/Linux Debian en tant qu ensemble logiciel entièrement libre. Comme il existe de nombreuses définitions du logiciel libre, nous incluons cidessous les principes que nous utilisons pour déterminer si un logiciel est libre. Nous offrirons de l assistance à nos utilisateurs qui développent et font fonctionner des logiciels non-libres sur Debian, mais jamais nous ne ferons dépendre le système d un élément de logiciel non-libre. Nous donnerons en retour à la communauté des logiciels libres Lorsque nous écrirons de nouveaux composants du système Debian, nous les licencierons sous forme de logiciels libres. Nous ferons le meilleur système possible, afin que les logiciels libres soient largement distribués et utilisés. Nous signalerons les corrections de bogues, les améliorations, les requêtes des utilisateurs, etc. aux auteurs des logiciels inclus dans notre système. Nous ne cacherons pas les problèmes Nous conserverons l ensemble de notre base de données de rapports de bogues constamment ouverte aux regards du public. Les rapports que les utilisateurs remplissent en ligne seront immédiatement visibles par les autres. Nos priorités sont nos utilisateurs et les logiciels libres Les besoins de nos utilisateurs et de la communauté des logiciels libres nous guideront. Nous placerons leurs intérêts en tête de nos priorités. Nous assumerons les besoins opérationnels de nos utilisateurs dans de nombreux types d environnements informatiques différents. Nous ne nous opposerons pas aux logiciels commerciaux prévus pour fonctionner sur les systèmes Debian, et nous permettrons que d autres créent des distributions à valeur ajoutée contenant conjointement des logiciels Debian et des logiciels commerciaux, et ceci sans réclamer aucune rétribution. Pour assumer ces objectifs, nous fournirons un système intégré de haute qualité, composé en totalité de logiciels libres, sans restrictions légales qui empêcheraient ce type d usage. Présentation de Debian Le «contrat social» 16

17 Programmes non conformes à nos standards sur les logiciels libres Nous reconnaissons que certains de nos utilisateurs demandent à pouvoir utiliser des programmes qui ne sont pas conformes aux principes du logiciel libre selon Debian (Debian Free Software Guidelines, ou DFSG). Pour ces logiciels, nous avons créé des zones contrib et non-free («non-libre») dans notre archive FTP. Les logiciels dans ces répertoires ne font pas partie du système Debian, bien qu ils aient été configurés afin d être utilisés avec Debian. Nous encourageons les fabricants de CD à lire les licences des paquets en question afin de déterminer s ils peuvent les distribuer dans leurs CD. Ainsi, bien que les logiciels non-libres ne fassent pas partie de Debian, nous assumons leur utilisation et fournissons une infrastructure (à l image de notre système de chasse aux bogues et de nos listes de diffusion) pour des paquets non-libres. Présentation de Debian Le «contrat social» 17

18 1.2.3 : Critères de liberté des logiciels (DFSG) Redistribution libre et gratuite Code source Applications dérivées Intégrité du code source de l auteur Aucune discrimination de personne ou de groupe Aucune discrimination de champ d application Distribution de licence La licence ne doit pas être spécifique à Debian La licence ne doit pas contaminer d autres logiciels Note Ces critères ont donné naissance à l Open-Source Definition Voir Redistribution libre et gratuite La licence d un composant de Debian ne doit pas empêcher un contractant de vendre ou donner le logiciel sous forme de composant d un ensemble (distribution) constitué de programmes provenant de différentes sources. La licence ne doit requérir ni redevance ni rétribution sur une telle vente. Code source Le programme doit inclure le code source, et la diffusion sous forme de code source comme sous forme de programme compilé doit être autorisée. Applications dérivées La licence doit permettre les modifications et les applications dérivées, et elle doit permettre à celles-ci d être distribuées sous les mêmes termes que la licence du logiciel original. Intégrité du code source de l auteur La licence peut défendre de distribuer le code source modifié seulement si elle autorise la distribution avec le code source de fichiers correctifs (patch files) destinés à modifier le programme au moment de la génération. La licence doit autoriser explicitement la distribution de logiciels générés à partir de code source modifié. Elle peut requérir que les applications dérivées portent un nom ou un numéro de version différent de ceux du logiciel original (ceci est un compromis ; le groupe Debian encourage tous les auteurs à ne restreindre en aucune manière les modifications d un quelconque fichier, source ou binaire). Aucune discrimination de personne ou de groupe La licence ne doit discriminer aucune personne ou groupe de personnes. Présentation de Debian Critères de liberté des logiciels (DFSG) 18

19 Aucune discrimination de champ d application La licence ne doit pas défendre d utiliser le logiciel dans un champ d application particulier. Par exemple, elle ne doit pas défendre l utilisation du logiciel dans une entreprise ou pour la recherche génétique. Distribution de licence Les droits attachés au programme doivent s appliquer à tous ceux à qui il est distribué sans obligation pour aucune de ces parties de se conformer à une autre licence. La licence ne doit pas être spécifique à Debian Les droits attachés au programme ne doivent pas dépendre du fait qu il fasse partie du système Debian. Si le programme est extrait de Debian et est utilisé et distribué sans Debian mais au contraire sous les termes de sa propre licence, toutes les parties auxquelles il est redistribué doivent jouir des même droits que ceux accordés avec le système Debian. La licence ne doit pas contaminer d autres logiciels La licence ne doit pas placer de restrictions sur d autres logiciels distribués avec le logiciel licencié. Par exemple, la licence ne doit pas exiger que tous les autres programmes distribués sur le même médium doivent être des logiciels libres. Présentation de Debian Critères de liberté des logiciels (DFSG) 19

20 1.2.4 : Les composants d un dépôt Debian standard main contrib non-free non-us/* main paquets conformes au DFSG contrib paquets conformes au DFSG, mais avec des dépendances en dehors de main+contrib non-free paquets non conformes au DFSG, mais redistribuables par Debian non-us/* paquets non exportables des USA (ex: anciennement les paquets contenant de la cryptographie forte), éventuellement même non utilisables aux USA (ex: logiciels tombant sous le coup d un brevet logiciel). non-us est lui-même découpé en main, contrib, et non-free. Présentation de Debian Les composants d un dépôt Debian standard 20

21 1.2.5 : Debian et le monde du logiciel libre Collaboration verticale avec les développeurs upstream Apports indirects aux développeurs amont Collaboration horizontale Collaboration verticale avec les développeurs upstream Décharge d une partie du travail (packaging) ; Envoi de patches de portabilité ; Corrections de bugs divers ; Intégration de l équipe upstream. Apports indirects aux développeurs amont Filtrage des rapports de bugs ; Apport en visibilité ; Apport en expérience ; Adhésion aux standards. Collaboration horizontale Avec les autres distributions ; Avec des projets upstream ; Avec les organismes de sécurité (i.e. Common Vulnerabilities and Exposures). Un système Debian est conforme autant que possible aux standards existants (FHS, PO- SIX, LSB, RFC etc.) Debian participe à l élaboration de standards (OASIS, LSB etc.) Présentation de Debian Debian et le monde du logiciel libre 21

22 1.2.6 : Évolution des versions de la distribution Cycle de vie actuel Les noms de code des versions Utilité Correspondance versions / noms de codes Trouver les anciennes versions Cycle de vie actuel Les paquets apparaissent dans l archive de développement, dite unstable. Chaque jour des paquets sont promus dans l archive testing, après une période de test dans unstable, aux conditions que : ils n introduisent pas de bug release-critical ils ne cassent pas la cohérence de testing (toutes leurs dépendances sont disponibles) ils aient pu être recompilés sur toutes les architectures où ils ont pu un jour être compilés (non-régression) A un moment donné, le release-manager décide de geler testing, en vue de publication d une nouvelle version stable. Pendant cette période, seules les correctifs sont normallement acceptés dans testing. Une fois tous les bugs release-critical corrigés, la nouvelle version stable est publiée (par exemple, la version 3.0 Woody sortie le 19 juillet 2002). Les mises à jour de sécurité sont effectuées, dans un dépôt spécifique (security), et une DSA est publiée. Périodiquement de nouvelles révisions de la distribution stable sont publiées (par exemple, la version 3.0r4 de Woody sortie le 1er janvier 2005). Note Le paramètre Urgency permet de spécifier le nombre minimum de jours depuis l envoi dans unstable: low (10 jours), medium (5 jours), high (2 jours) et critical (0). Note La situation d un paquet vis-à-vis de ce cycle peut être consultée grâce à grep-excuses. Plus d informations sont disponibles à Certains paquets passent par un dépôt experimental avant d être inclus dans unstable. Présentation de Debian Évolution des versions de la distribution 22

23 Les noms de code des versions Utilité moyen de parler d une release avant qu on lui ait attribué un numéro de version Correspondance versions / noms de codes Les noms de codes sont tirés des personnages du dessin animé Toy Story : buzz : 1.1 ( 1996), 474 paquets rex : 1.2 (1996), 848 paquets, 120 développeurs bo : 1.3 (1997), 947 paquets, 200 développeurs hamm : 2.0 (1998), 1524 paquets, 400 développeurs, 2 architectures (i386 et m68k) slink : 2.1 (1999), 2269 paquets, 450 développeurs, 4 architectures (alpha, i386, m68k et sparc) potato : 2.2 (2000), 3901 paquets, 500 développeurs, 6 architectures (alpha, arm, i386, m68k, powerpc et sparc) woody : 3.0 (2002), 8374 paquets, 1000 développeurs, 11 architectures (alpha, arm, ia64, i386, m68k, mips, mipsel, powerpc, s390 et sparc) sarge : 3.1 (2005), paquets, 1300 développeurs, 11 architectures (alpha, arm, ia64, i386, m68k, mips, mipsel, powerpc, s390 et sparc) etch : 4.0 (8 avril 2007) lenny : 5.0 (14 février 2009) squeeze : version actuelle de développement Trouver les anciennes versions ftp://ftp.debian.org/debian-archive/ deb Debian main contrib non-free Présentation de Debian Évolution des versions de la distribution 23

24 2. Les paquets Debian GNU/Linux

25 2.1. Les fichiers.deb

26 Format de nom du fichier.deb : Le nom du fichier.deb Format de nom du fichier.deb <nom>_<version>_<architecture>.deb Exemple : gcc_ _i386.deb Les fichiers.deb Le nom du fichier.deb 26

27 Nature du.deb (format 2.0) Outils de manipulation Les fichiers de contrôle du paquet Structure du fichier control Extraction L archive data Contenu Extraction Fichiers.deb signés Principe de signature GPG La méthode Debian : Structure du fichier.deb Nature du.deb (format 2.0) C est une archive ar, manipulable sur tout système UNIX par la commande ar: $ ar tv gcc_ _i386.deb rw-r--r-- 0/0 4 Jan 14 20: debian-binary rw-r--r-- 0/ Jan 14 20: control.tar.gz rw-r--r-- 0/ Jan 14 20: data.tar.gz Note La commande ar est disponible dans le paquet binutils. Le fichier debian-binary contient la version du format auquel le paquet se conforme (actuellement 2.0). Outils de manipulation Outil principal : dpkg-deb. Comparable à tar ou zip. Les fichiers de contrôle du paquet Ce sont les fichiers contenus dans control.tar.gz : $ ar p gcc_ _i386.deb control.tar.gz tar ztvf - drwxr-xr-x root/root :30:50./ -rwxr-xr-x root/root :30:38./postinst -rwxr-xr-x root/root :30:38./prerm -rw-r--r-- root/root :30:50./md5sums -rw-r--r-- root/root :30:41./control De manière plus pratique : Les fichiers.deb Structure du fichier.deb 27

28 $ dpkg-deb -I gcc_ _i386.deb nouveau paquet Debian, version 2.0. taille octets : archive de contrôle= 2575 octets. 629 octets, 18 lignes control 4291 octets, 55 lignes md5sums 888 octets, 27 lignes * postinst #!/bin/sh 440 octets, 17 lignes * prerm #!/bin/sh Package: gcc Version: 1: Section: devel Priority: standard Architecture: i386 Depends: libc6 (>= 2.1.2), cpp (>= 1: ), cpp (<< 1:2.95.3), b Recommends: libc-dev Suggests: gcc-doc (>= 1: ) Conflicts: libc5-dev, egcc (<< ) Replaces: egcc Provides: egcc, c-compiler Installed-Size: 2408 Maintainer: Debian GCC maintainers <gcc@packages.debian.org> Description: The GNU C compiler. This is the GNU C compiler, a fairly portable optimizing compiler wh supports multiple languages. This package includes support for C, C and Objective C. Source: gcc ( ) Structure du fichier control Liste d enregistrements <clé>: <valeur> séparés par CR Champs multilignes : les lignes suivantes commencent pas un espace Convention : dans un champ à plusieurs valeurs, le séparateur est ", *" Extraction dpkg-deb -e gcc_ _i386.deb gcc/debian L archive data Contenu Système de fichiers Fichiers de configuration par défaut Extraction dpkg-deb -x gcc_ _i386.deb gcc Exercice 1 Dépaqueter une archive.deb, ajouter un fichier, et la repaqueter. Réponse page 131 Les fichiers.deb Structure du fichier.deb 28

29 Fichiers.deb signés Principe de signature GPG Les sites proposant des logiciels libres subissent de plus en plus d agressions et de piratages. Certains pirates insèrent du code malicieux dans les archives sources de logiciels libres afin de les faire s exécuter sur les ordinateurs des utilisateurs, à la manière d un virus ou d un cheval de troie. La manière la plus efficace de contrer cette menace consiste à signer les archives de sources grâce à GPG. Les développeurs se signent mutuellement leurs empreintes GPG pour constituer un réseau de confiance. Dans un système Debian, voir le paquet debian-keyring. Pour vérifier l intégrité d une archive à partir de la signature GPG (fichier.sig): tapez la commande suivante dans un terminal gpg --verify grisbi-n.n.n.tar.gz.sig grisbi-n.n.n.tar.gz GPG doit indiquer dans son résultat le message Bonne signature. En revanche, ignorer les éventuels avertissements sur la certification par une signature de confiance de la clef. La méthode Debian Pour un paquet source Debian, la signature est contenue dans le fichier dsc ou changes: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.0 Source: grisbi Version: Binary: grisbi Maintainer: Benjamin Drieu <benj@debian.org> Architecture: any Standards-Version: Build-Depends: debhelper (>> 3.0.0), libgtk2.0-dev, libxml2-dev, libof Files: fc32d cbaf04051b33bc62ff grisbi_0.5.2.orig.tar.gz 94eae7b34b7621abf24901d8b3a grisbi_ diff.gz -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) id8dbqfbeqwcndlqtzbl50eran3makcif0okujbeq8agwjte8iw9aoez4acguri0 ioven7unxgdmnm2cmiy9vti= =Mc8D -----END PGP SIGNATURE----- On utilise la commande dscverify (fournie par le paquet devscripts) pour vérifier la signature d un paquet source (fichier DSC): : $ dscverify grisbi_ dsc grisbi_ dsc: Les fichiers.deb Structure du fichier.deb 29

30 Good signature found validating grisbi_0.5.2.orig.tar.gz validating grisbi_ diff.gz All files validated successfully. Pour vérifier la signature d un paquet binaire on utilise les commandes debsigs et debsig-verify pour les signatures embarquées (embeded). Note La signature des paquets binaires n est pas répandue car les développeurs Debian signent déjà leurs paquets sources. Les paquets binaires sont construits sur les machines Debian puis intégrés dans la liste signée (avec GPG) des paquets binaires: la taille et la somme de contrôle MD5 des paquets peuvent donc être vérifiées. Les fichiers.deb Structure du fichier.deb 30

31 2.1.3 : Versionnement des paquets Version upstream et révision Debian Paquets natifs Époques Comparaisons, ordonnancement des versions Algorithme de comparaison Versions exotiques Opérateurs de comparaison Cycle de vie d un paquet dans Debian Version upstream et révision Debian Le système Debian distingue la numérotation d un numéro de version en deux parties distinctes et indépendantes: la version upstream correspond au numéro de version tel que fourni par l auteur du logiciel. la Debian revision correspond à la version du paquet Debian: pour une même version upstream, Debian peut fournir plusieurs versions du paquet au fur et à mesure des mises à jour (suite à des bugs ou des alertes de sécurité par exemple). Révision non entière (ex. 1.2) : NMU Mises à jour de la distribution stable : Stable ancien : Unstable/testing : Stable nouveau : 3.2-2woody1 Ceci pour vérifier << 3.2-2woody1 << Paquets natifs Paquets sans révision Debian. Il s agit en général de paquets spécifiques à Debian ou d un paquet mal généré. Époques But : corriger une erreur, ou prendre en compte un changement dans le versionnement upstream, qui ne pourrait pas être traité par le versionnement classique. L époque a un poids plus fort que la version upstream. On ne compare les versions upstream qu à époque égale. Syntaxe : 1:1.0, 2:1.2 Équivalence : 0:x.y.z = x.y.z Les fichiers.deb Versionnement des paquets 31

32 Comparaisons, ordonnancement des versions Point capital pour distinguer quelle version est la plus récente. La référence : dpkg $ dpkg --compare-versions 1.0 <= 2.0; echo $? 0 $ dpkg --compare-versions 1.0 >= 2.0; echo $? 1 Algorithme de comparaison Il est défini en détail dans la charte Debian. Les chaînes "version" à comparer sont découpées en époque, version upstream, et révision Debian Si les époques sont identiques, on découpe la version upstream (puis la révision) en groupes de caractèes numériques (0 à 9) et non-numériques, qui sont comparés 2 à 2 tour à tour, numériquement pour les nombres, lexicographiquement (ASCII) pour les autres. Depuis dpkg 1.10 (sarge), est considéré lexicographiquement inférieur à tout autre caractère, pour permettre la gestion de pré-versions. Exemple : >> 1.0 ("." >> "") >> ("." (46) >> "+" (43)) 1.0beta >> ("b" (98) >> "." (46)) 1.0 beta << (" " (-1) << "." (46)) Versions exotiques Pour compenser ces limitations, des pré-versions de certains logiciels se font attribuer des numéros de versions «exotiques» : beta, beta, etc. Opérateurs de comparaison Compatibles avec les fichiers de contrôle : <=, =, => : les classiques <<, >> : comparaisons strictes <, > : historiques et obsolètes - équivalents à <= et => Spécifiques à --compare-versions lt le eq ne ge gt : less-than, less-or-equal, etc. Cycle de vie d un paquet dans Debian Un paquet est créé, puis uploadé sur un serveur Debian Si le paquet source crée un nouveau.deb, il doit être approuvé par l équipe de maintenance de l archive Debian (ftpmasters) Il est placé dans un dépôt incoming/, disponible à Les fichiers.deb Versionnement des paquets 32

33 Les robots de compilation automatique essayent de compiler le paquet sur les autres architectures. Une fois par jour, le contenu de incoming/ est installé dans l archive de développement, dite unstable. Au bout d un délai variable (10 jours par défaut), un paquet est promu dans l archive testing, aux conditions que : le paquet n introduise pas de bug release-critical le paquet ait pu être recompilé sur toutes les architectures où il a un jour pu être compilé (non-régression) Note La situation d un paquet vis-à-vis de ce cycle peut être consultée grâce à grep-excuses. Plus d informations sont disponibles à Les fichiers.deb Versionnement des paquets 33

34 Types de relations entre paquets Paquets virtuels : Relations entre paquets Types de relations entre paquets Elles sont définies dans le fichier de contrôle du paquet : Dépendance (Depends) Pré-dépendance (Predepends) Conflit (Conflicts) Recommandation (Recommends) Suggestion (Suggests) Ajout de fonctionnalités (Enhances) Remplacement de fichiers (Replaces) Remplacement d un paquet (Replaces et Conflicts) Provides Paquets virtuels Nom générique pour un ensemble de paquets Note Cette notion peut être utilisée pour gérer une fonctionnalité fournie par plusieurs paquets. Comme par exemple mail-transport-agent fournie par exim et postfix. On peut aussi utiliser cette fonctionnalité pour gérer la relation de dépendance entre des utilitaires systèmes et un module noyau qui pourrait être fourni par plusieurs paquets de versions différentes: un paquet alsa-utils pourrait dépendre du paquet virtuel alsa-modules-2.4 fourni par plusieurs paquets dont alsa-modules et alsa-modules par exemple. Cela permettrait d installer les utilitaires quelque soit la ou les versions du noyau que l on utilise. Note Dans le cas d un paquet semi-virtuel, une relation versionnée ne se rapportera qu au paquet réel, pas à ceux qui déclarent le fournir. Les fichiers.deb Relations entre paquets 34

35 2.1.5 : Classifications des paquets Section Paquets essentiels Priorité Tâches Section admin, net, web, devel, editors, doc, libs... Paquets essentiels Essentiels pour le système Difficiles à désinstaller Les bibliothèques et le noyau ne sont pas essentiels. Priorité required : nécéssaire au fonctionnement du système important : attendu sur tout système UNIX standard : installation de taille raisonable en mode console optional : «grosse» installation pour besoins génériques extra : logiciels très spécialisés, ou en conflit avec des paquets de priorité supérieure Tâches Regroupements de paquets Utilisables par tasksel Les fichiers.deb Classifications des paquets 35

36 2.1.6 : Paquets spéciaux Méta-paquets Bibliothèques Décomposition Méta-paquets Seule utilité : champs de dépendances. Cas d utilisation : Groupements logiques de paquets Paquets de transition Paquets d équivalence Bibliothèques Décomposition runtime nom = soname (ex: libgtk1.2) -dev fichiers d en-tête symlink pour le linker (ex: libgtk.so) version statique (ex: libgtk.a) -dbg bibliothèques ayant les symboles de débugage elles sont placées dans /usr/lib/debug utilisation de LD_LIBRARY_PATH Les fichiers.deb Paquets spéciaux 36

37 2.2.Manipulations des paquets.deb

38 2.2.1 : Utilisation basique Etats possibles d un package Informations sur les paquets Modification du système Tâches concernées Les opérations Etats possibles d un package non installé installé non configuré (unpacked) fichiers de configuration partiellement installé partiellement configuré Manipulations des paquets.deb Utilisation basique 38

39 Opérations et changements d états Informations sur les paquets dpkg -l, dlocate -l : liste des paquets installés dpkg -L, dlocate -L : fichiers installés par le paquet dpkg -S, dlocate -S : à quel paquet appartient un fichier Modification du système Tâches concernées Installation d un paquet isolé Installation d un paquet sans modifier sources.list Dépannage ponctuel Les opérations dpkg -i : installation de paquets dpkg --unpack : dépaquetage seul dpkg --configure : configuration après unpack dpkg -r : désinstallation en gardant la configuration dpkg -P : désinstallation en purgeant la configuration (dpkg --purge) Manipulations des paquets.deb Utilisation basique 39

40 Exercice 2 Désinstaller un paquet puis réinstaller le.deb correspondant trouvé sur le disque dur (avec locate ou find). Manipulations des paquets.deb Utilisation basique 40

41 2.2.2 : Utilisation avancée Options classiques Exemple : changer de MTA Gestion des sélections Présentation Rôle Mise en oeuvre Vérifications d intégrité Options classiques --no-act -EG (--skip-same-version --refuse-downgrade) -B (--auto-deconfigure) --ignore-depends=<paquet> --force-*, --force-help --force-overwrite, --force-depends, --force-confmiss, etc. Note L utilisation des options --force est à réserver en cas de dépannage afin de débloquer une situation précise. Si ces options sont utilisées afin de placer volontairement le système dans une situation incohérente (au niveau des dépendances), celui-ci ne pourra plus être géré par les frontends de gestion de paquets de hautniveau (comme apt). Note Dans les versions officielles de Debian le défaut est --force-overwrite, mais il est de --refuse-overwrite en cours de développement, pour aider à la détection des conflits non déclarés. Exemple : changer de MTA Problème : beaucoup de paquets dépendent de mail-transport-agent, et on ne veut pas les désinstaller. # dpkg -r exim dpkg : un problème de dépendance empêche la suppression de exim : mutt dépend de exim mail-transport-agent ; cependant : Paquet exim doit être supprimé. Paquet mail-transport-agent n est pas installé. Paquet exim qui fournit mail-transport-agent doit être supprimé. [...] Manipulations des paquets.deb Utilisation avancée 41

42 Des erreurs ont été rencontrées pendant l exécution : exim # dpkg -r --force-depends exim dpkg : exim : problème de dépendance, mais suppression comme demandé : [...] # apt-get install postfix ou # apt-get -f install Gestion des sélections Présentation dpkg garde en plus de l état actuel du paquet un état souhaité. Avantage centralisation de l état souhaité, pour tous les frontends basés sur dpkg comme backend Inconvénient Rôle difficile d ajouter un nouvel état souhaité (ex. reinstall) sans casser tous les frontends Note De nouveaux frontends (ex. aptitude) font leur propre gestion d état souhaité - aptitude gère ainsi un état reinstall. maîtrise des mises à jour archivage et duplication d état Mise en oeuvre dpkg: get-selections, set-selections dselect apt-get dselect-upgrade Note Sur Woody, toutes les dépendances doivent être résolues lors de l invocation d apt. Dans le cas contraire, celui-ci n installera pas tous les paquets souhaités. Vérifications d intégrité Ces outils permettent de vérifier l intégrité des paquets et des fichiers installés. dpkg --audit: cherche les paquets installés partiellement. apt-get check: vérifie les dépendances cassées. debsums (fourni par le paquet debsums): compare les sommes md5 des fichiers installés avec celle des fichiers des paquets (lorsque cette information est disponible). Manipulations des paquets.deb Utilisation avancée 42

43 2.3. Utilisation des dépôts APT

44 2.3.1 : Survol de APT Rôle de apt Outils principaux apt-get apt-cache Outils complémentaires Le dépôt APT Le fichier Release Le fichier Packages Le pool Rôle de apt Eviter à l administrateur les tâches fastidieuses de la gestion de paquets : localisation et téléchargement du paquet gestion des interactions avec d autres paquets (dépendances, conflits, etc.) moyens de contrôle des sources se recouvrant (sources externes à Debian comme des éditeurs ou des sites de backports par exemple Outils principaux apt-get L outil de base de manipulation de paquets. Il permet d effectuer un certain nombre d opérations et accepte toujours la même syntaxe: apt-get [options] <action> mise à jour de la liste des paquets disponibles (update) installation et désinstallation de paquets donnés (install, remove) mise à jour complète du système (upgrade, dist-upgrade, dselect-upgrade) nettoyage des fichiers.deb mis en cache (clean) tentative de résolution des problèmes de dépendances sur un système incohérent (-f install) Arguments courants: -u: force apt à afficher la liste des paquets mis à jour (avec upgrade) -q: mode calme (pas d indicateur de progrès) -qq: mode très calme -s: simulation -y: répond à oui à toutes les questions -d: télécharger uniquement (pas d installation) des paquets requis Utilisation des dépôts APT Survol de APT 44

45 --purge: purge les fichiers de configuration lors de l installation de paquets apt-cache recherche de packages parmi ceux disponibles (search) examen des méta-informations de paquets disponibles (show, showpkg) maintenance du cache (add, gencaches) etc. Note Cet outil est surtout utile pour les recherches de paquets. Exercice 3 Rechercher et installer le module Python contenant une implémentation DOM (XML). Réponse page 131 Outils complémentaires apt-file : recherche dans le contenu des paquets disponibles. Sous-commandes : update, search, list. apt-build : équivalent de apt-get, avec recompilation locale pour optimisation. Note Le gain de performances reste cependant très faible par rapport à l investissement. Le dépôt APT Contient : Les méta-informations du dépôts (fichier Release, optionnel) La liste des paquets, avec méta-informations (fichier Packages) Les paquets Le fichier Release Contient une description d un composant du dépot. Le composant stable de Debian 3.0 pour x86: Archive: stable Version: 3.0 Component: main Origin: Debian Label: Debian Architecture: i386 Le fichier Packages Contient les fichiers control des paquets concernés, séparés par une ligne vide. Le pool Depuis woody, les dépots de paquets Debian sont organisés en pool. Toutes les versions de paquets disponibles sont placées dans un répertoire du nom du paquet source, lui même classé par lettre ou groupe de lettres de l alphabet. Utilisation des dépôts APT Survol de APT 45

46 Le fichier Packages contient un pointeur vers la localisation du fichier.deb dans le pool. Utilisation des dépôts APT Survol de APT 46

47 Sources habituelles Définition d une source APT Manuellement Outils Sources APT utiles : Gestion des sources de paquets Suivi des versions installées et disponibles Recouvrements de sources Pinning de version Principes Contrôle de l administrateur But : dire où on veut aller chercher des paquets Sources habituelles Distribution Debian : Miroir Debian (distant ou local): (classés par pays) CD-roms ou DVD-rom Mises à jour de sécurité Site local ( backport, etc.) Proxy APT Note De plus en plus de projets fournissent une source pour APT, quand ils fournissent des paquets.deb (par exemple: Définition d une source APT Localisation : /etc/apt/sources.list Manuellement Syntaxe d une source : <type> <uri> <répertoire>/ ou : <type> <uri> <distribution> <composant> [<composant>...] Types disponibles: deb, deb-src. Utilisation des dépôts APT Gestion des sources de paquets 47

48 Note Ne jamais spécifier stable comme source, sous peine de très gros ennuis potentiels lors de la publication de la version stable suivante! Utiliser le nom de code à la place. Une source sans composant entraine le téléchargement de <uri>/packages{.bz2,.gz,}. Une source avec composants entraine le téléchargement de <uri>/dists/<distribution>/<composant>/binary-<arch>/packages{.bz2,.gz,}, et les fichiers Release associés. Exercice 4 Comment faire pour insérer les paquets contenus à l URL suivante dans vos sources Debian? ftp://debian-multimedia.org/ Réponse page 131 Outils Il existe aussi des interfaces permettant de gérer ce fichier : aptconf : utilise debconf gtk-sources : frontend GTK apt-cdrom : outil restreint en ligne de commande Sources APT utiles deb woody main contrib non-free deb-src woody main contrib non-free deb woody/updates main contrib non-free deb main contr deb Debian-2.1 main contrib no deb Debian-2.0 main contrib no deb Debian main contrib Suivi des versions installées et disponibles D où viennent les paquets installés : apt-show-versions Quels paquets viennent de unstable : apt-show-versions grep /unstable Quelles versions de foo sont disponibles : apt-show-versions -a -p foo Quels paquets sont disponibles en mise à jour : apt-show-versions -u Note apt-show-versions ne fonctionne pas correctement si les noms flottants de la distribution (stable, testing,...) sont utilisés en lieu et place du nom de code (woody, sarge,...). apt-show-versions utilise le fichier Release des différents dépôts APT. Exercice 5 Concevoir et mettre en place une procédure automatique pour avertir l adminstrateur système d une machine debian stable de la présence de mises à jour de sécurité. Réponse page 131 Utilisation des dépôts APT Gestion des sources de paquets 48

49 Recouvrements de sources Exemple : pointer simultanément sur stable, testing, et unstable Note Dans ce cas il est nécessaire (avec woody) de modifier la taille du cache APT en spécifiant dans le fichier /etc/apt/apt.conf la ligne: APT::Cache-Limit ;. Aller chercher un paquet dans une source donnée : apt-get install gcc/stable apt-get install gcc/3.0 apt-get install gcc=2: Source par défaut : APT::Default-Release "3.0*"; Note Le paramètre APT::Default-Release ne supporte pas les noms de code des release(woody, sarge, etc.). On doit utiliser l un des noms "flottants" (stable, testing, unstable). Note Il est possible que testing et unstable portent le même numéro de version! Pinning de version Principes La gestion des sources est basée sur un mécanisme d attribution de score à chaque version d un paquet. Les scores sont consultables par apt-cache policy <package> : # apt-cache policy dhcp dhcp: Installed: (none) Candidate: 2.0pl5-11 Version Table: 3.0.1betaRC Package 2.0pl testing/main Packages sid/main Packages 2.0pl woody/main Packages Debian-2.1/main Packages Le candidat à l installation est la version la plus récente, dans celles ayant le meilleur score. Utilisation des dépôts APT Gestion des sources de paquets 49

50 Attribution des scores : Par défault : 500 APT::Default-Release : 990 Version installée : 100 Champ NotAutomatic: yes dans fichier Release (ex: experimental) : 1 Note Seul un score supérieur à 1000 peut donner lieu à une descente de version. Une version avec un score inférieur à 100 ne sera installée que si celle-ci est explicitement demandée (ie. si on lui attribue un score supérieur, ex. avec --default-release). Contrôle de l administrateur Dans le fichier /etc/apt/preferences. Forcer mysql à rester en , même si la source par défaut fournit une version par défaut : Package: mysql-server Pin: version * Pin-Priority: 995 Quasi-équivalent de APT::Default-Release : Package: * Pin: release v=2.2* Note Par défaut, un score de 989, donc juste inférieur à celui de APT::Default-Release, est attribué. Exercice 6 Dans le cas où une machine est en unstable, proposer un plan de passage progressif en testing, sans utiliser de downgrade. Utilisation des dépôts APT Gestion des sources de paquets 50

51 2.3.3 : Configuration de apt Spécification de paramètres Syntaxe Paramètres principaux Spécification de paramètres La configuration de APT répartie dans : /etc/apt/apt.conf : options locales /etc/apt/apt.conf.d/ : utilisé par les paquets pour interagir avec APT On peut la modifier sur une ligne de commande (--option ou -o). Syntaxe Les paramètres sont classés dans une hiérarchie, avec 2 moyens pour les exprimer : Acquire:: " Acquire::ftp::Proxy " est équivalent à : Acquire { http { Proxy " }; ftp { Proxy " }; }; ou, de manière hybride, à : Acquire Utilisation des dépôts APT Configuration de apt 51

52 { " ftp::proxy " }; Les paramètres sont documentés dans la manpage apt.conf(5). Les valeurs par défaut sont dans /usr/share/doc/apt/examples/configure-index.gz. Paramètres principaux Grandes catégories : APT APT::Get : apt-get APT::Cache : apt-cache APT::CDROM : apt-cdrom APT::* : options génériques Aquire : récupération des paquets APT::Cache-Limit : si beaucoup de sources de paquets Acquire:: Acquire:: Proxy spécifique à un serveur distant Acquire::ftp::Proxy APT::Get::Show-Upgraded APT::Get::Purge APT::Get::List-Cleanup Note Il est possible de renseigner un proxy spécifique à un nom de machine distante grâce à la syntaxe suivante: Acquire:: Utilisation des dépôts APT Configuration de apt 52

53 2.3.4 : Administration de tous les jours Front-ends de sélection des paquages Rechercher les paquets inutilisées Surveiller les mises à jour Trouver le miroir le plus adapté Vérifier la présence de logiciels non-libres Front-ends de sélection des paquages dselect (déconseillé), aptitude (proche de apt-get), synaptic (interface graphique) Capture d écran de synaptic Utilisation des dépôts APT Administration de tous les jours 53

54 Rechercher les paquets inutilisées deborphan (fourni par le paquet deborphan) trouve les paquets dont aucun autre paquet ne dépend (et sont donc succeptibles d être inutiles donc désinstallables). Surveiller les mises à jour apt-listchanges: affiche notamment les contenus des changelog et des fichiers NEWS apt-show-versions: affiche les paquets à mettre à jour Trouver le miroir le plus adapté apt-spy: effectue des tests de bande passante sur différents miroirs et synthétise des statistiques Note Attention à ne pas détruire /etc/apt/sources.list, ce qui est possible si apt-spy est lancé sans paramètres. Vérifier la présence de logiciels non-libres vrms: cette commande est un clin d oeil à Richard Stallman, dont le surnom est rms. Exercice 7 Installer et tester les outils mentionnés dans cette section. Utilisation des dépôts APT Administration de tous les jours 54

55 3. Bases de la construction de paquets Debian GNU/Linux Objectifs Connaître la structure d un paquet Debian GNU/Linux. Pouvoir construire un paquet Debian GNU/Linux basique.

56 3.1. Construction de paquet Debian : bases

57 3.1.1 : Pourquoi faire? Désinstallation Meilleure intégration dans le système Déploiement facile sur d autres machines Bénéfice de toute la chaîne Debian Désinstallation Il est possible de désinstaller le paquet proprement sans oublier des fichiers. Meilleure intégration dans le système Les outils installés «à la main» sont placés dans /usr/local, alors qu avec un paquet, on peut se permettre de placer dans /usr. Déploiement facile sur d autres machines Il suffit de copier le paquet ailleurs ou de l intégrer dans un dépôt de paquets. Bénéfice de toute la chaîne Debian Mécanisme de configuration (conffiles et debconf), outils Debian (update-menus, update-rc.d, etc.)... Construction de paquet Debian : bases Pourquoi faire? 57

58 3.1.2 : Structure d un paquet source Debian Description générale Contenu d un paquet source non natif Manipulation d un paquet Éléments principaux du packaging Le sous répertoire debian control changelog rules Fichiers par paquet binaire : debian/package.* Description générale Contenu d un paquet source non natif Un paquet source Debian est toujours constitué des mêmes fichiers: l archive source upstream (fichier orig.tar.gz) les patches Debian (fichier.diff.gz) l index (fichier.dsc, signé) Note Dans le cas d un paquet natif, il n y a pas de fichier orig.tar.gz ni de diff, car les paquets natifs Debian contiennent tout dans une archive de la forme programme-n.n.tar.gz. L absence de fichier orig.tar.gz indique à dpkg-buildpackage qu il s agit d un paquet natif, souvenez-vous en lors de la construction d un paquet. Manipulation d un paquet Bien que tout puisse se faire «à la main,» il existe des commandes pour simplifier la vie du mainteneur: apt-get source (-d) paquet dpkg-source -x paquet.dsc Note La commande apt-get source implique que des lignes de source sont ajoutées au fichier /etc/apt/source.list. Exercice 8 Récupérer les sources d un paquet quelconque par l une ou l autre des méthodes et familiarisez vous avec son contenu. Comment pouvez-vous inspecter le contenu des patches Debian? Réponse page 132 Construction de paquet Debian : bases Structure d un paquet source Debian 58

59 Éléments principaux du packaging Le sous répertoire debian Les patch Debian contiennent principalement les fichiers administratifs du paquet, qui sont tous situés dans le répertoire debian. control Note On trouvera cependant des modifications au logiciel dans le cas où cela est nécessaire: conformance au FHS, mise à jour des man pages, modification des scripts d installation des Makefile,... Ce fichier contient plusieurs valeurs que dpkg, dselect et d autres outils de gestions de paquets vont utiliser pour gérer le paquet. Source: grisbi Section: x11 Priority: optional Maintainer: Benjamin Drieu <benj@debian.org> Build-Depends: debhelper (>> 3.0.0), libgtk2.0-dev, libxml2-dev, libgd, libofx-dev, libpopt-dev Standards-Version: Package: grisbi Architecture: any Depends: ${shlibs:depends} Recommends: latex-ucs, tetex-extra Description: Personal financial management program Grisbi is a very functional personal financial management program wit a lot of features. changelog Ce fichier contient une trace des modifications apportées au paquet. Il contient des informations utilisées par les outils Debian. grisbi ( ) unstable; urgency=low * New upstream version -- Benjamin Drieu <benj@debian.org> Thu, 29 Jul :44: grisbi ( ) unstable; urgency=low * Fix missing changelog.debian.gz * Fix a crash (closes: #202361) -- Benjamin Drieu <benj@debian.org> Tue, 6 Jan :13: L outil debchange (ou dch) permet de mettre à jour le fichier changelog. Construction de paquet Debian : bases Structure d un paquet source Debian 59

60 rules C est un des fichiers les plus importants et les plus complets. Il contient les instructions nécessaires à la compilation du paquet. règles normalisées : build, binary, binary-indep, binary-arch, clean utilisation de fichiers *-stamp règles normalisées pour sarge : build-indep, build-arch règles habituelles : configure-stamp (ou config.status), install Fichiers par paquet binaire : debian/package.* En général, ils sont utilisés par les outils d aide (debhelper, debmake/debstd) {pre,post}{inst,rm} templates, config : voir debconf files, dirs : voir dh_make mime, desktop : utilisés pour l intégration dans le bureau examples, docs: documentation Construction de paquet Debian : bases Structure d un paquet source Debian 60

61 3.1.3 : Autres fichiers Documentation Copyright Documentation Le fichier README.Debian contient des informations utiles pour les utilisateurs du paquet Debian. Copyright Le fichier copyright est obligatoire (cf la Debian Policy) et doit comporter le nom du packageur ainsi que des informations de copyright sur l archive originale. Construction de paquet Debian : bases Autres fichiers 61

62 3.1.4 : Outils d aide debhelper Introduction Utilisation Outils principaux Lintian devscripts dpkg-dev-el debhelper Introduction Debhelper est un ensemble de scripts utilisés pour aider à la construction d un paquet Debian. La philosophie de debhelper est de fournir des outils petits, simples et facilement compréhensibles pour automatiser les tâches courantes. Utilisation Il suffit d appeler les outils de debhelper dans debian/rules. Ce sont des scripts shell acceptant plusieurs arguments (pratiquement tous possèdent des arguments communs): -a: exécution sur tous les paquets dépendants de l architecture -i: exécution sur tous les paquets indépendants de l architecture -ppackage: exécution sur le paquet package -Npackage: pas d exécution sur le paquet package -Xobjet: pas d exécution pour l objet objet (par exemple un fichier) Outils principaux Voici quelques uns des outils de debhelper. La liste exhaustive est dans la page man de debhelper(1). dh_testroot: vérifie que l utilisateur est root dh_installxxx: installation des composants xxx (info, pam, init, mime, menu, man,...) dh_builddeb: construit les paquets Debian dh_makeshlibs: crée les fichiers shlib dh_movefiles: déplace les fichiers dans les sous répertoires debian/*. dh_undocumented: crée une page de manuel undocumented pour les binaires passés en argument Construction de paquet Debian : bases Outils d aide 62

63 Note fakeroot permet de contourner dh_testroot et ainsi de compiler un paquet en tant qu utilisateur. Lintian lintian dissèque les paquets pour y repérer des bogues et des manquements aux règles de développement. Il contient des tests automatisés pour vérifier de nombreuses règles et quelques erreurs courantes. Lintian décompacte une archive Debian dans un répertoire dit laboratoire et effectue des tests unitaires puis affiche un rapport. Lintian produit parfois des faux positifs, utilisation des fichiers override dans /usr/share/lintian/overrides pour supprimer les faux positifs ou les erreurs qui ne peuvent être corrigées. Exercice 9 Installez lintian et exécutez le sur un de vos paquets avec l option -i si vous en avez un, puis essayez de corriger les erreurs évidentes. Essayez d utiliser l override pour supprimer les erreurs de lintian pour les problèmes que vous ne savez pas résoudre. Si vous n avez de paquet, gardez cet exercice pour plus tard ou utilisez un paquet officiel. Réponse page 132 Note Il existe un concurrent à lintian: linda. Pour le moment celui-ci n est pas très utilisé. devscripts Il s agit d un paquet contenant des scripts utiles pour la création de paquets: bts debsign debchange debuild... dpkg-dev-el Il s agit de modes Emacs utiles pour le développement d un paquet. Construction de paquet Debian : bases Outils d aide 63

64 3.1.5 : Construction d un paquet Vérifier les dépendances de construction Cas général Pour une autre version de Debian Vérifier les dépendances de construction apt-get install build-essential Champs Build-Depends et Build-Depends-Indep dpkg-checkbuilddeps apt-get build-dep Cas général Il s agit d exécuter les ordres qui se trouvent dans debian/rules et de produire l archive debian binaire. Il existe plusieurs méthodes: debian/rules binary: le plus bas niveau dpkg-source -b: construit un paquet source à partir d une archive décompactée dpkg-buildpackage: construit un paquet binaire et éventuellement source debuild: appelle dpkg-buildpackage puis lintian Note Il est en général utile d utiliser la commande fakeroot afin de faire croire aux outils de compilation que l utilisateur en cours est root. Exercice 10 Prenez les sources d un paquet Debian pas trop lourd à compiler (par exemple gzip) et recompilez votre propre paquet. N oubliez pas de mettre à jour le changelog en conséquence. Réponse page 132 Pour une autre version de Debian Il s agit de compiler un paquet Debian dans un environnement et des dépendances qui ne sont pas celles du système hôte. Plusieurs outils sont possibles: Construction de paquet Debian : bases Construction d un paquet 64

65 chroot et debootstrap pbuilder sbuild Construction de paquet Debian : bases Construction d un paquet 65

66 3.1.6 : Backporter un paquet : le cas simple Objectif Vérifier les dépendances de construction Entrée dans debian/changelog Choix du numéro de version Le cas général Sites proposant des backports Objectif But : rendre disponible un nouveau paquet, ou une version plus récente d un paquet, dans une distribution plus ancienne. On ne traitera ici que le cas simple où une simple reconstruction suffit, le cas général se rapproche du packaging générique Vérifier les dépendances de construction apt-get install build-essential Champs Build-Depends et Build-Depends-Indep dpkg-checkbuilddeps apt-get build-dep Note En général certaines dépendances sont bloquantes et imposent de backporter en premier lieu les outils de compilation de paquets comme debhelper ou debconf. Entrée dans debian/changelog Définit la version du paquet. Choix du numéro de version Comme pour une mise à jour de distribution stable, il faut que les versions vérifient l inéquation : stable << backport << nouvelle But : faire en sorte que le paquet (en général officiel) que l on backporte soit considéré comme plus récent que le paquet officiel. Note En général, on spécifie laprovenance dans la g version, par exemple: grisbi alcove1_i386.deb Construction de paquet Debian : bases Backporter un paquet : le cas simple 66

67 Le cas général... se rapproche du packaging générique. Sites proposant des backports (backports.org) propose un ensemble de backports sous forme de paquets sources et binaires. (apt-get.org) est un moteur de recherche de backports. (mentors.debian.net) est un site de mise en relation de développeurs Debian et de développeurs de paquets non agréés par Debian. Construction de paquet Debian : bases Backporter un paquet : le cas simple 67

68 3.1.7 : Faire un dépôt local Dépôt simple Dépôt avec sous-composants Dépôt simple Dépôt sans sous-composants, correspondant à une définition de source du type <type> <uri>./ Placer les paquets sous <uri> apt-ftparchive packages path/to/debs gzip -9 > Packages.gz dpkg-scanpackages path/to/debs /dev/null./ gzip -9 > Packages.gz Dépôt avec sous-composants Organisation de la forme : dists/woody/main/binary-i386. Dans sources.list: deb woody main contrib non-free Construction de paquet Debian : bases Faire un dépôt local 68

69 3.2. Construction de paquet Debian : outils d aide

70 3.2.1 : Packaging générique avec dh_make Principe Utilisation Mode binaire seul Mode binaire multiple Mode bibliothèque Exemple Principe dh_make est un outil permettant de débianiser un logiciel de manière automatique, à condition qu il supporte des options courantes de configuration (autoconf). dh_make se base notamment sur debhelper et crée tous les fichiers nécessaires dans le répertoire debian. Ces fichiers nécessitent cependant souvent des adaptations. Utilisation dh_make doit être invoqué dans le répertoire de sources, qui doit lui même avoir un nom de la forme paquet-version. dh_make a trois modes d invocation. Mode binaire seul Génération d un seul paquet binaire. C est le cas standard. Mode binaire multiple Génération de plusieurs paquets binaires. Utile pour les gros paquets. Mode bibliothèque Génération de deux paquets binaires: un paquet pour une bibliothèque runtime (libbibliothèque) et un paquet pour la version de développement (libbibliothèque-dev) Exemple Dans cette exemple nous allons tenter de créer un paquet Debian de l utilitaire afio. Télécharger le fichier source upstream et décompresser-le: $ wget k.holtman/afio-2.5.tgz $ tar xfz afio-2.5.tgz $ cd afio-2.5 Construction de paquet Debian : outils d aide Packaging générique avec dh_make 70

71 $ dh_make Type of package: single binary, multiple binary, library, or kernel module? [s/m/l/k] s Done. Please edit the files in the debian/ subdirectory now. You should also check that the afio Makefiles install into $DESTDIR and not in /. dh_make a créé le répertoire debian dans l arbre de sources. Il ne reste plus qu à vérifier la cohérence des informations dans les fichiers control, changelog et rules. Le paquet peut ensuite être compilé avec debuild. Exercice 11 Utiliser l exemple ci-dessus pour créer un paquet Debian. Bien vérifier avec lintian que le paquet est correct. Réponse page 132 Construction de paquet Debian : outils d aide Packaging générique avec dh_make 71

72 3.2.2 : Utilisation de Alien Principe Principe L utilitaire alien permet de convertir automatiquement les paquets rpm en paquets deb (et inversement). Pour effectuer une conversion simple d un paquet rpm vers un paquet debian: $ fakeroot alien --to-deb rdesktop i386.rpm rdesktop_ _i386.deb generated Note alien ne se restreint pas à la conversion d archives.rpm en.deb; il gère en outre les formats spécifiques de Slackware, Stampede et Solaris. Construction de paquet Debian : outils d aide Utilisation de Alien 72

73 4. Le packaging Debian GNU/Linux avancé

74 4.1.Configuation des paquets avec Debconf Objectifs Connaître le mécanisme de post configuration des paquets Debian GNU/Linux. Comprendre les spécificités de Debconf.

75 4.1.1 : La configuration des packages Principe Les fichiers de configuration postinst preinst prerm postrm Un exemple d utilisation Principe Il convient de différencier les tâches exécutées à la compilation du paquet (génération de fichiers de données statiques, paramétrage des défauts,...) des tâches exécutées à l installation du paquet (configuration par l utilisateur, renseignement d un mot de passe,...). Dans le premier cas, le traitement s effectue dans le fichier debian/rules, dans le deuxième cas, ce traitement s effectue dans les fichiers de post-configuration des paquets Debian GNU/Linux, appelés Maintainer scripts. Les fichiers de configuration Il existe quatre types de configuration des paquets. postinst Le fichier debian/postinst est un script qui sera exécuté dès la fin de l installation du paquet. Il est en charge de toute configuration ultérieure nécessaire ou de démarrer un service après l installation réussie du paquet. Dans la plupart des cas qui nous intéressent, debian/postinst est appellé avec l argument configure puis le numéro de version du dernier paquet configuré. preinst Le fichier debian/preinst est un script qui sera exécuté avant l installation du paquet (avant même qu il soit décompressé). Il sert par exemple à arrêter des services lors de la mise à jour d un paquet (services qui seront redémarrés par le postinst si l upgrade réussit). Le script debian/preinst est appelé avec deux arguments: prerm l action en cours: install ou upgrade le numéro de version du paquet installé Le fichier debian/prerm est un script qui sera exécuté avant la déinstallation du paquet. Il arrête Configuation des paquets avec Debconf La configuration des packages 75

76 typiquement les services d un paquet en cours de déinstallation. Le script debian/prerm est appelé avec deux arguments: postrm l action en cours: remove (pour une déinstallation) ou upgrade (l ancien paquet, pour une mise à jour) le numéro de version du paquet installé dans le cas d upgrade Le fichier debian/postrm est un script qui sera exécuté après la déinstallation du paquet. Il peut servir à supprimer tout lien restant avec le paquet déinstallé. Le script debian/postrm est appelé avec deux arguments: l action en cours: remove (pour une déinstallation), purge pour une déinstallation avec purge ou upgrade (l ancien paquet, pour une mise à jour) le numéro de version du paquet installé dans le cas d upgrade Un exemple d utilisation Il est possible de créer un fichier de post-installation pour effectuer un traitement particulier en fonction du choix d un utilisateur. Par exemple, générer un set de données. Nous placerons le script suivant dans debian/postinst: #!/bin/sh read -p Voulez vous générer les données (o/n)? \ result if test "$result" = "o" ; then echo "Génération des données..." /usr/bin/comp-data fi Exercice 12 Mettre un script de post configuration similaire dans un paquet debian de test, recompiler le paquet et le tester. Exercice 13 Dans le même paquet de test, que nous allons imaginer être un paquet contenant un service pour l exercice, créer des scripts permettant (ou tout du moins d afficher une trace simulant ces actions): de démarrer le service à l installation d arrêter le service à la préinstallation d arrêter le service à la déinstallation Réponse page 133 Configuation des paquets avec Debconf La configuration des packages 76

77 4.1.2 : Debconf Principe Reconfiguration des paquets Interfaces Les priorités La base de données Debconf est un système de configuration pour les paquets Debian. Principe Debconf permet de gérer les options interactives dans le processus de configuration d un paquet. Debconf fournit une interface cohérente pour la configuration des paquets et donne à l utilisateur le choix entre plusieurs interfaces. Il peut configurer des paquets avant qu ils ne soient installés, ce qui permet à des installations et des mises à niveau importantes de demander toutes les informations nécessaires au préalable et d effectuer l installation sans intervention de l utilisateur. Debconf permet de sauter les questions les moins importantes au moment de l installation d un paquet (on peut y revenir plus tard). Reconfiguration des paquets Debconf se souvient des options de configuration d un paquet. Il permet également lors d une phase de configuration de paquet de modifier les choix effectués, de manière simple et par une commande unique. Pour reconfigurer un paquet, il suffit de taper # dpkg-reconfigure foo Configuation des paquets avec Debconf Debconf 77

78 Exemple de configuration de paquet par Debconf Interfaces Une fonctionnalité remarquable de debconf est qu il possède plusieurs interfaces et l on peut les échanger à loisir. Voici les interfaces disponibles: dialog: l interface par défaut. Elle utilise les programmes whiptail ou dialog pour afficher les questions. Elle fonctionne en mode texte ; readline: c est l interface la plus traditionnelle. Elle ressemble à la configuration Debian classique : une série de questions, imprimées sur la console en mode texte et des invites affichées avec la bibliothèque readline ; non-interactive: elle n interagit jamais avec l utilisateur et utilise les réponses par défaut pour toutes les questions. Elle enverra parfois un courriel à root avec les messages que le paquet voulait afficher. Elle est utile pour les installations automatiques ; gnome: cette interface utilise les bibliothèques GTK+ et Gnome pour afficher une boîte de dialogue graphique. Bien sûr, elle nécessite un display X valide pour fonctionner ; si elle ne peut pas fonctionner, debconf se rabattra sur d autres interfaces. Le paquet libgnome-perl doit être installé ; editor: pour cette interface, Debconf exécute un éditeur de textes qui affiche les options à configurer et qu il faut éditer ; web: une interface qui exécute un serveur web sur lequel il faut se connecter. Elle est expérimentale. Les priorités Chaque question possède une priorité, ce qui permet d ignorer les moins importantes si on est Configuation des paquets avec Debconf Debconf 78

79 pressé. Les priorités sont: low: questions peu importantes dont les valeurs par défaut suffisent dans la majorité des cas ; medium: questions normales avec des valeurs par défaut raisonnables ; high: questions qui n ont pas de valeur par défaut convenable ; critical: questions que l utilisateur a vraiment besoin de voir (ou autre). Seules les questions avec une priorité égale ou supérieure à la priorité configurées seront affichées. L utilisateur peut fixer la valeur de la priorité en reconfigurant debconf ou temporairement en passant l option --priority= suivie de la valeur aux commandes dpkg-reconfigure et dpkg-preconfigure ou en positionnant la variable d environnement DEBIAN_PRIORITY. La base de données Debconf utilise une base de données principalepour garder les réponses déjà données aux questions. Le fichier /etc/debconf.conf est utilisé pour configurer cette base de données. La base de données principale se trouve généralement dans le répertoire /var/cache/debconf. La page de manuel debconf.conf indique plusieurs manières pour pour manipuler cette base de données. Exercice 14 Pour des besoins de test, reconfigurer le paquet contenant le serveur X (sous Debian, le serveur utilisé est Xorg). Réponse page 133 Configuation des paquets avec Debconf Debconf 79

80 4.1.3 : Développer pour Debconf Introduction Les fichiers de template Le maintainer script Les alternatives La version shell Exemple L installation des fichiers nécessaires Exercice Introduction Les détails de Debconf sont documentés dans la page de manuel debconf-devel(7). Debconf communique avec des scripts de maintenances ou d autres programmes via les entrée et sortie standards, en utilisant un langage orienté ligne de commandes semblable à ce qui est utilisé par les protocoles interne communs comme SMTP. Les programmes utilisent ce protocole pour demander à debconf d afficher les questions et de récupérer les réponses de l utilisateur. Les questions elles-mêmes sont définies dans des fichiers éparés, appelés «questionnaires», dont le format n est pas très différent de celui d un fichier de contrôle de Debian. Les paquets Debian qui utilisent debconf fournissent généralement un questionnaire et un script de «configuration» (exécuté pour préconfigurer le paquet) dans la partie metadonnées du paquet. Les fichiers de template Les templates sont contenues dans le fichier debian/template. Chaque question doit correspondre à une entrée dans ce fichier. Le format est toujours identique: Template: paquet/question Type: [select,multiselect,string,boolean,note,text,password] Default: [une valeur par défaut] Description: Are you sure you want to use this package? Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi.. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Template:... Configuation des paquets avec Debconf Développer pour Debconf 80

81 ... Si select ou multiselect sont choisis, une ligne Choices: doit contenir la liste des possibles, séparés par une virgule et un espace Le maintainer script Debconf est ensuite utilisé via les maintainer scripts du paquet, en général dans debian/postinst. Les alternatives Il existe plusieurs méthodes pour communiquer avec Debconf: le script shell: en incluant le fichier /usr/share/debconf/confmodule dans le script shell, plusieurs commandes shell commençant par db_ permettent de manipuler Debconf ; le script perl: le module perl Debconf::Client::ConfModule permet de manipuler Debconf ; la communication directe avec Debconf, en utilisant directement le protocole et les entrées/sorties Unix standard. La version shell Quatre commandes sont principalement utilisées: Exemple db_input: demande au frontend de poser la question à l utilisateur si nécessaire ; db_go: demande au frontend d afficher toutes les questions à poser à l utilisateur ; db_get: récupère la réponse à une question ; db_purge: efface les réponses aux questions d un paquet. Voici un exemple de script: #!/bin/sh # Source debconf library.. /usr/share/debconf/confmodule # Aimez vous Debian? db_input medium foo/aime_debian true db_go # Récupérer la réponse db_get foo/aime_debian if [ "$RET" = "false" ]; then db_input high foo/pourquoi_debian_est_genial true db_go fi Et les templates correspondantes: Template: foo/aime_debian Type: boolean Configuation des paquets avec Debconf Développer pour Debconf 81

82 Description: Aimez vous Debian? Nous aimerions savoir si vous aimez le système Debian GNU/Linux. Template: foo/pourquoi_debian_est_genial Type: note Description: Mais pourquoi installez vous ce paquet? Debian est génial. Si vous continuez à utiliser Debian, nous espérons que vous découvrirez votre erreur. L installation des fichiers nécessaires L utilisation de la commande dh_installdebconf dans la cible install du fichier debian/rules permet d installer tous les fichiers nécessaires au bon endroit. Exercice Exercice 15 Implémenter une question Debconf dans un paquet de test. Et procéder aux manipulations suivantes: compiler le paquet l installer, répondre aux questions déinstaller le paquet, le réinstaller. Que se passe t il? faire varier la configuration de Debconf avec dpkg-reconfigure debconf et observer les différences. notez vous une différence la suppression et la purge d un paquet lorsque vous le réinstallez par la suite? Configuation des paquets avec Debconf Développer pour Debconf 82

83 4.2. L intégration au système

84 4.2.1 : La gestion des types MIME Via mailcap Principe Implémentation Via freedesktop Principe Implémentation Via mailcap Principe Dans un système Debian GNU/Linux, les associations de types MIME sont gérées par le biais du fichier /etc/mailcap. Ce fichier associe des types MIME à des programmes permettant de les ouvrir. Implémentation Chaque paquet est responsable de l installation d un fichier dans /usr/lib/mime/packages/foo. Le format d un fichier d association MIME est par exemple: application/x-grisbi; grisbi;description=grisbi file; \ test=test "$DISPLAY"!= ""; priority=7 L installation se fait dans les scripts de post installation. Il est conseillé de reproduire les lignes suivantes ou d utiliser dh_installmime (qui copiera le fichier debian/foo.mime dans /usr/lib/mime/packages/foo) : if [ -x /usr/sbin/update-mime ]; then update-mime fi Via freedesktop Principe Freedesktop est une ensemble de normes et de communications informelles entre développeurs d environnements graphiques (Desktops). Ces types MIME sont utilisés pour gérer les associations dans les environnements de travail type Gnome ou KDE. L intégration au système La gestion des types MIME 84

85 Implémentation Il est recommandé d utiliser dh_installmime, qui va copier le fichier debian/foo.sharedmimeinfo dans le répertoire /usr/share/mime/packages/foo.xml Exemple de fichier MIME freedesktop: <?xml version="1.0" encoding="utf-8"?> <mime-info xmlns=" shared-mime-info"> <mime-type type="application/x-grisbi"> <comment>grisbi file</comment> <glob priority="80" pattern="*.gsb"/> <magic priority="80"> <match type="string" value="<grisbi>" offset="0:256"/> </magic> </mime-type> </mime-info> L intégration au système La gestion des types MIME 85

86 4.2.2 : Les menus Principe Implémentation Exemple Les paramètres title needs section command icon hints Principe Debian possède une méthode simple pour gérer les entrées dans les menus des window managers. Lorsqu une application est installée, un ensemble de scripts permet d insérer une entrée idoine dans les menus des environnements qui le permettent (gnome, kde, xfce, fvwm2,...). Ce travail est effectué par update-menus, qui concatène les fichiers de configuration de menu fournis par chaque paquet en quelque chose d utilisable par les environnements. Implémentation Chaque paquet fournit un fichier debian/foo.menu qui sera copé dans /usr/share/menu par exemple par debhelper (via dh_installmenu). Ce fichier possède une syntaxe simple qui définit un ensemble de paramètres de menu. La syntaxe est la suivante:?package(package[,package2,...]): \ field1="value1"\ field2="value2"\ Exemple Voici un exemple complet de fichier.menu:?package(gnumeric):\ needs="x11"\ section="applications/office"\ title="gnumeric"\ command="gnumeric" \ hints="gnome,spreadsheets" \ icon="/usr/share/pixmaps/gnumeric.xpm" Les champs title, needs, section et command sont obligatoires. Les autres sont optionnels. L intégration au système Les menus 86

87 Les paramètres title Il s agit du «titre» du paquet. Il doit être court (le paramètre longtitle peut être utilisé pour une version plus longue), commencer par une majuscule et être unique. C est typiquement le nom du paquet. needs Les pré-requis à l utilisation du programme. Les valeurs possibles sont: section X11: le programme est graphique ; text: le programme a besoin d un terminal, le gestionnaire de fenêtre exécutera un terminal ; vc: le programme sera exécuté dans une console, mais pas un terminal graphique ; wm: le programme est un gestionnaire de fenêtres. Le gestionnaire de fenêtres actuel sera donc arrêté avant de l exécuter. La section du menu où placer l entrée. La liste complète des sections possibles est maintenue dans le paquet debian-menu et sur (le site web de Debian.) command La commande qui sera exécutée lorsque l utilisateur clique sur l entrée du menu. icon Un nom de fichier au format XPM, située dans /usr/share/pixmaps. hints Un ensemble de mots-clés séparés par des virgules, permettant de classer les menus en sousmenus. Par exemple, cela pourrait être Gnome,Print,Mail,Expert,... L intégration au système Les menus 87

88 4.3. Les bibliothèques

89 4.3.1 : Les bibliothèques partagées Principe Le nommage des paquets Les fichiers.so ldconfig Les bibliothèques statiques Principe Les bibliothèques partagées sous Unix sont un contenues dans des fichiers d extension.so, qui contiennent du code partagé et sont placées généralement dans le répertoire /usr/lib ou /lib en fonction de leur criticité. Il est important de faire en sorte que les bibliothèques soient toujours présentes, surtout s il s agit de bibliothèques centrales comme la libc6. Sous Debian, les bibliothèques sont séparées en plusieurs paquets, dont nous allons détailler l organisation. Le nommage des paquets Le nom du paquet devrait changer à chaque fois que le soname de la bibliothèque change. Par exemple, si la bibliothèque est libfoo,so.2, le paquet devrait s appeler libfoo2. Note Si le nom de la bibliothèque termine par un nombre, on peut préfixer la version par un tiret. Par exemple: libbind9-41. Les fichiers.so Les fichiers.so doivent être copiés tels quels dans /usr/lib sans altérer leur nom. En revanche, il est nécessaire de créer un lien symbolique correspondant au soname. Par exemple, le paquet libgdbm3 devrait copier le fichier libgdbm.so dans /usr/lib/libgdbm.so et créer un lien symbolique vers ce dernier dans /usr/lib/libgdbm.so.3, ceci pour que ldconfig fonctionne correctement. ldconfig Les paquets installant des bibliothèques dans un chemin standard devraient ensuite exécuter ldconfig pour mettre à jour le système des bibliothèques partagées. ldconfig doit être exécuté uniquement dans deux circonstances: Les bibliothèques Les bibliothèques partagées 89

90 dans un script postinst, si l argument est configure dans un script postrm, si l argument est remove Les bibliothèques statiques Les bibliothèques statiques doivent être contenues dans les paquets de développement des bibliothèques, sauf cas particulier (voir la policy). Les bibliothèques Les bibliothèques partagées 90

91 4.3.2 : Les bibliothèques de développement Principe Nommage Organisation Principe Les paquets de développement contiennent les fichiers nécessaires au développement comme les fichiers d en-tête. Nommage Les bibliothèques de développement devraient être placées dans un paquet libfoo2-dev (2 étant le numéro de version du soname). Le paquet de développement doit avoir exactement le même numéro de version que le paquet de bibliothèque partagée. Si plusieurs versions existent, l utilisation du champ Conflict dans le fichier debian/control peut être nécessaire. Alternativement, libfoo-dev est envisageable si le packager ne désire pas maintenir plusieurs versions de ce paquet en parallèle. Organisation Ces paquets doivent contenir un lien symbolique pour la ou les bibliothèques partagées associées sans le numéro de version. Par exemple, libfoo2-dev devrait contenir un lien libfoo.so vers libfoo.so Les bibliothèques Les bibliothèques de développement 91

92 4.3.3 : Les shlibs Principe Fonctionnement de shlibs Dans le paquet de bibliothèque Principe Quand un programme dépend d une bibliothèque partagée. il convient d être certain que toutes ces bibliothèqes sont installées pour que ce programme fonctionne correctement. La méthode Debian classique consiste donc à placer une dépendance sur les différents paquets fournissant des bibliothèques partagées dans la description d un paquet. Cette liste peut être longue et fastidieuse à calculer, c est pour cela que Debian fournit un mécanisme simplificateur appelé shlib. Chaque paquet doit fournir un fichier décrivant les dépendances qu il apporte. À la compilation, chaque paquet Debian contenant un exécutable dépendant de bibliothèques partagées exécute un programme appelé dpkg-shlibdeps, qui utilise ces informations pour obtenir la liste des dépendances. Fonctionnement de shlibs Le programme dpkg-shlibdeps va en premier lieu parcourir un ensemble de répertoires contenant des fichiers d extension.shlibs. Ces répertoires sont (dans l ordre): debian/shlibs.local /etc/dpkg/shlibs.override DEBIAN/shlibs (dans le répertoire de compilation) /var/lib/dpkg/info/*.shlibs /etc/dpkg/shlibs.default Il convient d appeler dpkg-shlibdeps dans le fichier debian/rules, par exemple: dpkg-shlibdeps debian/tmp/usr/bin/* Noter que dh_shlibdeps effectue ce travail également. Ensuite, un simple appel à ${shlibs:depends} dans le champ Depends du fichier debian/control est suffisant. Les bibliothèques Les shlibs 92

93 Dans le paquet de bibliothèque Le format des fichiers.shlibs est : library-name soname-version dependencies Par exemple: libz 1 zlib1g (>= 1:1.1.3) Le programme dh_makeshlibs effectue tous les traitements nécessaires à l installation des fichiers shlibs à l endroit idoine sur le système de fichiers. Les bibliothèques Les shlibs 93

94 4.4. Les paquets Perl/Python

95 4.4.1 : La policy Perl Noms de paquet Procédure d installation Les dépendances Noms de paquet Les paquets Perl doivent être nommés par exemple lib-foo-barperl pour le module Foo::Bar. Procédure d installation Un module Perl devrait contenir les deux lignes suivantes dans la cible build de son fichier debian/rules: perl Makefile.PL INSTALLDIRS=vendor $(MAKE) OPTIMIZE="-O2 -g -Wall" Et pour l installation : $(MAKE) install PREFIX=$(CURDIR)/debian/<tmp>/usr Il est nécessaire de spécifier un Build-Depends sur perl (>= ). Les dépendances Les modules Perl qui dépendent d un module particulier devraient ajouter une dépendance vers le paquet correspondant. Les modules qui contiennent une dépendance du type require version doivent positionner une dépendance versionnée sur perl ou perl-base. Les paquets Perl/Python La policy Perl 95

96 4.4.2 : La policy Python Introduction Les noms des paquets Les versions supportées Dépendances Les fichiers bytecompilés Introduction Il existe deux types de modules python: les modules «pur python,» qui ne contiennent que du code python ; les extensions, qui sont compilés avec la libpython. Il existe également deux types de modules: les modules publics, qui sont utilisables par n importe quel programme ou module python et sont placés dans /usr/lib/pythonx.y ou /usr/lib/pythonx.y/site-packages. les modules privés qui sont utilisables uniquement par un programme ou module et qui sont fournis avec ce dernier dans son paquet. Ils sont placés dans /usr/share/foo ou /usr/lib/foo. Les noms des paquets Les paquets de modules publics doivent être nommés python-foo pour le module foo. Les versions supportées Chaque module python doit supporter au moins la version de python courante, plus si possible. Dans le fichier debian/control, le champ permet de spécifier quelles versions sont supportées. Ce champ permet d aider les maintainers du paquet python dans les migrations. Ce champ peut par exemple prendre les valeurs suivantes: XS-Python-Version: all XS-Python-Version: current XS-Python-Version: current, >= X.Y XS-Python-Version: >= X.Y XS-Python-Version: >= A.B, << X.Y XS-Python-Version: A.B, X.Y Les paquets Perl/Python La policy Python 96

97 Dépendances Les paquets python disponibles pour la version par défaut de python doivent dépendre de python et de python (>= X.Y) s ils ont besoin d une version de python particulière. S ils dépendent de modules python particuliers, ils doivent dépendre de python-foo (et pas pythonx.y-foo). Les paquets préparés pour une version particulière de Python doivent s appeler pythonx.y-foo et dépendre de pythonx.y à la place. S ils dépendent de modules python particuliers, ils doivent dépendre de pythonx.y-foo (et pas python-foo). Un champ Provides doit être spécifié pour les paquets qui fonctionnent pour plusieurs versions de python. Les fichiers bytecompilés Les fichiers.pyc et.pyo doivent être générés dans les scripts postinst et supprimés dans les paquets prerm. La bytecompilation doit respecter la configuration du fichier /etc/python/debian_config. Les paquets Perl/Python La policy Python 97

98 4.5. SVN buildpackage

99 4.5.1 : Introduction Pourquoi utiliser un système de contrôle de version? Principe Les avantages Un exemple d organisation En pratique Pourquoi utiliser un système de contrôle de version? Traditionnellement, les paquets Debian sont gérés de la manière suivante. Un développeur upstream maintient des sources en utilisant son propre système de contrôle de versions et publie de manière régulière des images de ses sources (releases ou snapshots). Le développeur Debian ajoute ses modifications à ces images et ces modifications finissent dans le.diff.gz et devront êtres appliquées aux futures versions. Le développeur Debian utilise donc fréquemment des copies locales et des collections de patches gérés manuellement. Avec un gros paquet, cela peut devenir pénible très vite. Principe Le développeur intègre l archive upstream directement dans un outil de contrôle de version comme SVN. Il maintient ensuite par exemple une branche principale comportant l upstream et crée une branche (ou tag) à chaque upstream pour tracer l évolution de ses patches Debian. À chaque release Debian, le packager positionne simplement un tag ou une branche dans son repository. SVN buildpackage Introduction 99

100 Exemple d organisation de repository SVN. Les avantages Ils sont multiples: possibilité d annuler une modification gestion de l historique création automatique des.diff.gz compilation dans un environnement propre, modifications non commitées visibles travail collaboratif Un exemple d organisation SVN buildpackage supporte plusieurs schémas d organisation, mais recommande le suivant. SVN buildpackage Introduction 100

Référence du développeur Debian

Référence du développeur Debian Référence du développeur Debian Adam Di Carlo, responsable actuel Christian Schwarz Ian Jackson version française par Antoine Hulin

Plus en détail

Debian en milieu professionnel. This document is under the GNU Free Documentation License.

Debian en milieu professionnel. This document is under the GNU Free Documentation License. Debian en milieu professionnel This document is under the GNU Free Documentation License. 1 : Plan Présentation du projet Debian Le but de l association Les principes Les moyens et les règles Debian en

Plus en détail

Créer son premier package.deb. 19 août 2011 1

Créer son premier package.deb. 19 août 2011 1 Créer son premier package.deb 19 août 2011 1 Créer son premier package.deb Atelier animé par Mohammed Adnène Trojette organisé par la Team Ubuntu Tunisie Prérequis une distribution dérivée de Debian les

Plus en détail

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005 Journées du Logiciel Libre 15 octobre 2005 Plan Les paquets Du code source aux binaires Qu est ce que créer un paquet? Les paquets sources Composés de trois fichiers :.orig.tar.gz Le code source original,

Plus en détail

Pourquoi et comment faire sa première contribution à Debian?

Pourquoi et comment faire sa première contribution à Debian? Pourquoi et comment faire sa première contribution à Debian? Lucas Nussbaum lucas@debian.org Lucas Nussbaum Faire sa première contribution à Debian 1 / 18 Moi Ingénieur ENSIMAG 2005 Doctorant en fin de

Plus en détail

Eole - gestion des dictionnaires personnalisés

Eole - gestion des dictionnaires personnalisés Eole - gestion des dictionnaires personnalisés Réalisation : CETIAD (Centre d Etude et de Traitement Informatique de l Académie de Dijon) 33 rue Berbisey BP 1557 21000 DIJON Cedex site portail: (http://eole.orion.education.fr)

Plus en détail

Chapitre 10 : Logiciels

Chapitre 10 : Logiciels Chapitre 10 : Logiciels Installation de logiciels dans Linux IUT Lannion - Systèmes - 1e année - Nerzic - 2014-15 1 10.1 Installation manuelle Cette partie explique comment on compile et installe un logiciel

Plus en détail

Logiciel Libre Cours 10 Debian

Logiciel Libre Cours 10 Debian Logiciel Libre Cours 10 Debian Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/ Copyright 2014

Plus en détail

Qu est ce qu un Développeur Debian? Comment le devient on?

Qu est ce qu un Développeur Debian? Comment le devient on? Qu est ce qu un Développeur Debian? Comment le devient on? Présentation du speaker : Utilisateur de Debian depuis 2001 Impliqué depuis 2006 Aussi Ubuntu Developer Développeur de Scilab depuis 2006 Co-fondateur

Plus en détail

Manuel d installation pour la distribution Debian GNU/Linux

Manuel d installation pour la distribution Debian GNU/Linux Manuel d installation pour la distribution Debian GNU/Linux Manuel d installation pour la distribution Debian GNU/Linux Copyright 2004 2013 L équipe de l installateur Debian Ce document contient les instructions

Plus en détail

Installation de DocBook sur un système Linux

Installation de DocBook sur un système Linux Installation de DocBook sur un système Linux Emmanuel Fleury fleury@cs.auc.dk Le but de ce document est d expliquer comment installer aussi simplement que possible DocBook sur votre système (Mandrake,

Plus en détail

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Tutoriel Création d une source Cydia et compilation des packages sous Linux Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème

Plus en détail

TD séance n 2c Mise à jour des Systèmes

TD séance n 2c Mise à jour des Systèmes 1 Gestion des Logiciels 1.1 Introduction sur les logiciels Un logiciel est un programme nécessaire au fonctionnement d'un ordinateur (logiciel système) ou au traitement de données (logiciel applicatif).

Plus en détail

Méthodes et outils employés pour développer des logiciels libres

Méthodes et outils employés pour développer des logiciels libres Méthodes et outils employés pour développer des logiciels libres Étude basée sur le cas du projet Debian Par Raphaël Hertzog Gérant de Freexian SARL Développeur Debian Présentation du projet Debian Objectif

Plus en détail

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux Matthieu Vogelweith 13 janvier 2009 Résumé L objectif de ce document est de détailler l installation d un serveur d infrastructure (DNS et DHCP) complet

Plus en détail

Personnes ressources Tice. Académie de Rouen

Personnes ressources Tice. Académie de Rouen Personnes ressources Tice Académie de Rouen Objectifs Acquérir les connaissances de base concernant Linux Découvrir la solution technique SambaEdu3 : serveur de fichiers sous Linux Mettre en oeuvre cette

Plus en détail

Cahiers de. l Admin. Collection dirigée par Nat Makarévitch. GNU/Linux. Raphaël Hertzog. Avec la contribution de Christophe Le Bars et Roland Mas

Cahiers de. l Admin. Collection dirigée par Nat Makarévitch. GNU/Linux. Raphaël Hertzog. Avec la contribution de Christophe Le Bars et Roland Mas Cahiers de Collection dirigée par Nat Makarévitch l Admin GNU/Linux Raphaël Hertzog Avec la contribution de Christophe Le Bars et Roland Mas Cahiers de l Admin Debian GNU/Linux 2 e édition Debian GNU/Linux,

Plus en détail

Serveur Subversion Debian GNU/Linux

Serveur Subversion Debian GNU/Linux Serveur Subversion Debian GNU/Linux Matthieu Vogelweith 13 janvier 2009 Résumé L objectif de cette page est de détailler l installation d un serveur Subversion [1]. Ce document a été rédigé en LaTeX en

Plus en détail

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Titre: Version: Dernière modification: Auteur: Statut: Licence: Titre: Mise en œuvre de mod_webobjects Version: 2.0 Dernière modification: 2010/09/06 20:00 Auteur: Aurélien Minet Statut: version finale Licence: Creative Commons

Plus en détail

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation Serveur Acronis Backup & Recovery 10 pour Linux Update 5 Guide d'installation Table des matières 1 Avant l'installation...3 1.1 Composants d'acronis Backup & Recovery 10... 3 1.1.1 Agent pour Linux...

Plus en détail

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base... Système d'exploitation Sommaire Introduction...3 Objectif...3 Manipulations...3 Gestion des utilisateurs et des groupes...4 Introduction...4 Les fichiers de base...4 Quelques commandes d'administration...5

Plus en détail

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux

Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux Debian Lenny - Virtualisation avec Libvirt/KVM Debian GNU/Linux Matthieu Vogelweith 13 janvier 2009 Résumé L objectif de ce document est de détailler l installation d un serveur KVM [1] (Kernel based Virtual

Plus en détail

Systèmes de gestion de code source

Systèmes de gestion de code source Systèmes de gestion de code source Matthieu Herrb CNRS-LAAS Envol, 22 octobre 2008 http://www.laas.fr/~matthieu/talks/envol08-sgv.pdf Agenda 1 Introduction 2 Concepts d un système de gestion de version

Plus en détail

Guide du nouveau responsable Debian. Guide du nouveau responsable Debian

Guide du nouveau responsable Debian. Guide du nouveau responsable Debian Guide du nouveau responsable Debian i Guide du nouveau responsable Debian Guide du nouveau responsable Debian ii Copyright 1998-2002 Josip Rodin Copyright 2005-2015 Osamu Aoki Copyright 2010 Craig Small

Plus en détail

Alexandre Buge Epitech 5 Promo 2004. Soutenance de stage du 01/03/2004 au 31/08/2004

Alexandre Buge Epitech 5 Promo 2004. Soutenance de stage du 01/03/2004 au 31/08/2004 Alexandre Buge Epitech 5 Promo 2004 Soutenance de stage du 01/03/2004 au 31/08/2004 15 Septembre 2004 Sommaire 1 Introduction : présentation de l entreprise 2 Développement au sein de Skyrecon Les API

Plus en détail

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions Module Magento SOON Soon_AdvancedCache Rédacteur Hervé G. Lead développeur Magento herve@agence-soon.fr AGENCE SOON 81 avenue du Bac 94210 LA VARENNE ST HILAIRE Tel : +33 (0)1 48 83 95 96 Fax : +33 (0)1

Plus en détail

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte

Magento. Pratique du e-commerce avec Magento. Christophe Le Bot avec la contribution technique de Bruno Sebarte Magento Pratique du e-commerce avec Magento Christophe Le Bot avec la contribution technique de Bruno Sebarte Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de

Plus en détail

Formation Debian GNU/Linux. Alexis de Lattre, Rémy Garrigue, Tanguy Ortolo, Adrien Grand, Loïc Alsfasser, Patrick Burri, et

Formation Debian GNU/Linux. Alexis de Lattre, Rémy Garrigue, Tanguy Ortolo, Adrien Grand, Loïc Alsfasser, Patrick Burri, et Formation Debian GNU/Linux Alexis de Lattre, Rémy Garrigue, Tanguy Ortolo, Adrien Grand, Loïc Alsfasser, Patrick Burri, et 27 janvier 2013 Table des matières I Installation de Debian GNU/Linux 4 1 UNIX,

Plus en détail

Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn

Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn maxime.boissonneault@calculquebec.ca U. Laval - Mars 2013 1 2 Plan de la présentation 1.Accéder à une grappe 2.Fichiers

Plus en détail

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel Fiche d utilisation du logiciel 1 - Installation J. Thioulouse & D. Chessel Résumé Cette fiche est une introduction à l'utilisation du logiciel R pour les trois environnements Unix, Windows et MacOS. Plan

Plus en détail

Administration Linux - FTP

Administration Linux - FTP Administration Linux - FTP 2014 tv - v.1.0 - produit le 25 mars 2014 Sommaire Mise en situation 2 FTP (File Transfer Protocol) 2 vsftpd 2 Introduction..............................................

Plus en détail

Dr.Web Les Fonctionnalités

Dr.Web Les Fonctionnalités Dr.Web Les Fonctionnalités Sommaire Poste de Travail... 2 Windows... 2 Antivirus pour Windows... 2 Security Space... 2 Linux... 3 Mac OS X... 3 Entreprise... 3 Entreprise Suite - Complète... 3 Entreprise

Plus en détail

Tutoriel QSOS. Version 2.0-13/02/2013

Tutoriel QSOS. Version 2.0-13/02/2013 Version 2.0-13/02/2013 1 Table des matières 1 Note de licence 4 2 Historique des modifications 4 3 Introduction 4 4 Gérer les templates 4 4.1 Généralités sur les templates.................... 4 4.2 Créer

Plus en détail

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification Plan Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification Les Scénarios d autorisation Le format TT2 Les familles de

Plus en détail

Convention de Licence Érudit (Open Source)

Convention de Licence Érudit (Open Source) Convention de Licence Érudit (Open Source) Cette convention est une licence de logiciel libre régissant les modalités et conditions relatives à l utilisation, la reproduction, la modification et la distribution

Plus en détail

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse Questions - Révision- - 1 er Semestre Informatique Durée de l examen : 1h pour 40 questions. Aucun document n est autorisé. L usage d appareils électroniques est interdit. Les questions faisant apparaître

Plus en détail

Gestion de parc Windows depuis Unix. Pascal Cabaud & Laurent Joly

Gestion de parc Windows depuis Unix. Pascal Cabaud & Laurent Joly Gestion de parc Windows depuis Unix Pascal Cabaud & Laurent Joly Problématiques du gestionnaire de parc matériel hétérogène logiciels incompatibles déploiement de nouveaux systèmes lutte anti-virale logiciels

Plus en détail

IPS : Corrélation de vulnérabilités et Prévention des menaces

IPS : Corrélation de vulnérabilités et Prévention des menaces IPS : Corrélation de vulnérabilités et Prévention des menaces SIM+IPS opensource David Bizeul & Alexis Caurette C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y Définitions SIM : Security Information

Plus en détail

User Documentation. Documentation utilisateur. version 0.2b 04-2009

User Documentation. Documentation utilisateur. version 0.2b 04-2009 User Documentation Documentation utilisateur version 0.2b 04-2009 Table des matières 3 French Version....4 English Version.22 Table des matières 4 Table des matières TABLE DES MATIERES 3 A PROPOS DE CE

Plus en détail

Figure 1a. Réseau intranet avec pare feu et NAT.

Figure 1a. Réseau intranet avec pare feu et NAT. TD : Sécurité réseau avec Pare Feu, NAT et DMZ 1. Principes de fonctionnement de la sécurité réseau Historiquement, ni le réseau Internet, ni aucun des protocoles de la suite TCP/IP n était sécurisé. L

Plus en détail

Découverte des Logiciels Libres. Gilles Dequen 2009-2010 gilles.dequen@u-picardie.fr

Découverte des Logiciels Libres. Gilles Dequen 2009-2010 gilles.dequen@u-picardie.fr Découverte des Logiciels Libres Gilles Dequen 2009-2010 gilles.dequen@u-picardie.fr Découverte des Logiciels Libres 10 Séances de 3h00 [14h00-17h15] 4, 11, 25 février 4, 18, 25 mars 1, 22, 29 avril 6 mai

Plus en détail

Virtualisation Vserver et OpenVz en entreprise

Virtualisation Vserver et OpenVz en entreprise Virtualisation Vserver et OpenVz en entreprise Présentation L'environnement Pourquoi virtualiser Les différents types de virtualisation L'isolation de processus Vserver OpenVz Retour d'expérience Conclusion

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

WebSpy Analyzer Giga 2.1 Guide de démarrage

WebSpy Analyzer Giga 2.1 Guide de démarrage WebSpy Analyzer Giga 2.1 Guide de démarrage Ce document aide à vous familiariser avec l utilisation de WebSpy Analyzer Giga. Pour des informations plus détaillées, consultez le guide utilisateur Analyzer

Plus en détail

MANUEL UTILISATEUR KIWI BACKUP V 3

MANUEL UTILISATEUR KIWI BACKUP V 3 Révision Mai 2012 MANUEL UTILISATEUR KIWI BACKUP V 3 Sommaire PREMIERE PARTIE : INSTALLATION DE KIWI BACKUP... 3 INSTALLATION SOUS WINDOWS... 3 INSTALLATION SOUS LINUX DEBIAN / UBUNTU... 6 Installation

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Installation d ORACLE 10g sous Debian Etch

Installation d ORACLE 10g sous Debian Etch Installation d ORACLE 10g sous Debian Etch Rédacteur : TEHERY Julien Page n 2/6 1.1 Pré-requis Comme pour chaque installation de logiciel, il y a lieu d installer certains paquets nécessaires. Et Oracle

Plus en détail

Outils de développement collaboratif

Outils de développement collaboratif Outils de développement collaboratif Envol 2012 Olivier Thauvin 24 janvier 2013 Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 1 / 80 1 Avant Propos 2 Versionner 3 Communiquer 4 Documenter

Plus en détail

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet Beat Wolf 1, Pierre Kuonen 1, Thomas Dandekar 2 1 icosys, Haute École Spécialisée de Suisse occidentale,

Plus en détail

SSL ET IPSEC. Licence Pro ATC Amel Guetat

SSL ET IPSEC. Licence Pro ATC Amel Guetat SSL ET IPSEC Licence Pro ATC Amel Guetat LES APPLICATIONS DU CHIFFREMENT Le protocole SSL (Secure Socket Layer) La sécurité réseau avec IPSec (IP Security Protocol) SSL - SECURE SOCKET LAYER Historique

Plus en détail

UBUNTU Administration d'un système Linux (4ième édition)

UBUNTU Administration d'un système Linux (4ième édition) Ubuntu et Linux 1. Affirmation du modèle open source 21 1.1 Principe et avenir du modèle 21 1.1.1 Open source et capitalisme financier 22 1.1.2 Open source et logiciel libre 23 1.2 Place de Linux dans

Plus en détail

Environnements et Outils de Développement Cours 1 Introduction

Environnements et Outils de Développement Cours 1 Introduction Environnements et Outils de Développement Cours 1 Introduction Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/~zack/teaching/1112/ed6/

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Serveur de sauvegarde à moindre coût

Serveur de sauvegarde à moindre coût 1/28 Serveur de sauvegarde à moindre coût Yann MORÈRE LASC http://www.lasc.univ-metz.fr/ I. Cahier des charges II. Solution III. Présentation des outils utilisés IV. Mise en œuvre 2/28 Cahier des charges

Plus en détail

Table des matières. Date : Version : 29/06/2013 1.1. Objet : OpenVas 6.0

Table des matières. Date : Version : 29/06/2013 1.1. Objet : OpenVas 6.0 Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Pas d'utilisation Commerciale 3.0 non transposé. Le document est librement diffusable dans le contexte de

Plus en détail

Maintenir Debian GNU/Linux à jour

Maintenir Debian GNU/Linux à jour Maintenir Debian GNU/Linux à jour Ce troisième document présente dans un premier temps comment maintenir son système à jour de façon automatisée. Il est en effet indispensable d'installer de manière parfaitement

Plus en détail

Les Licences Libres Ouverture et Protection des Logiciels. Plan

Les Licences Libres Ouverture et Protection des Logiciels. Plan Les Licences Libres Ouverture et Protection des Logiciels Daniel Quintart Avocat au barreau de Bruxelles juris@belgacom.net CETIC 1 Plan Préliminaires Première partie Aperçu de la protection des logiciels

Plus en détail

MANUEL D INSTALLATION D UN PROXY

MANUEL D INSTALLATION D UN PROXY MANUEL D INSTALLATION D UN PROXY Squid, SquidGuard, Dansguardian Dans ce guide on va détailler l installation et la configuration d une solution proxy antivirale en utilisant les outils ; squid, dansguardian,

Plus en détail

Introduction aux antivirus et présentation de ClamAV

Introduction aux antivirus et présentation de ClamAV Introduction aux antivirus et présentation de ClamAV Un antivirus libre pour un système libre Antoine Cervoise ClamAV : http://www.clamav.net/ Plan Le monde des malwares Historique Les logiciels malveillants

Plus en détail

Mon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2

Mon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2 Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................

Plus en détail

Diffusion AFRISTAT. Quels droits accorder aux utilisateurs? - sur les données - sur les documents numériques

Diffusion AFRISTAT. Quels droits accorder aux utilisateurs? - sur les données - sur les documents numériques Diffusion AFRISTAT Quels droits accorder aux utilisateurs? - sur les données - sur les documents numériques Lisez le QRCode pour télécharger ce document Retrouvez ce document à cette adresse http://www.afristat.org/contenu/doc_travail_experts/140508_propriete-intellectuelle_licence-diffusion.pdf

Plus en détail

LISTE D OPTIONS DE LICENCE

LISTE D OPTIONS DE LICENCE LISTE D OPTIONS DE LICENCE POUR LE CONTRAT DE LICENCE D UTILISATEUR FINAL («le CLUF») 1) Introduction Date d Entrée en Vigueur : 17 Novembre, 2011 a) La présente Liste d Options de Licence est une annexe

Plus en détail

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME faime@janua.fr 0 950 260 370

Construction et sécurisation d'un système Linux embarqué. Frédéric AIME faime@janua.fr 0 950 260 370 Construction et sécurisation d'un système Linux embarqué Frédéric AIME faime@janua.fr 0 950 260 370 Différentes approches Création d'une distribution From Scratch Nécessite un investissement intellectuel

Plus en détail

FORMATION 2012-2013. Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions

FORMATION 2012-2013. Offre de Formation - Packaging. Les bonnes pratiques du packaging avec Installshield et AdminStudio. Contact et inscriptions www.experteam.fr Offre de Formation - Packaging 2012-2013 FORMATION Les bonnes pratiques du packaging avec Installshield et AdminStudio Numéro d agrément 11921398892 Contact et inscriptions Tél. +33 1

Plus en détail

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans

Plus en détail

Manuel du Desktop Sharing

Manuel du Desktop Sharing Brad Hards Traduction française : Ludovic Grossard Traduction française : Damien Raude-Morvan Traduction française : Joseph Richard 2 Table des matières 1 Introduction 5 2 Le protocole de mémoire de trame

Plus en détail

L art d ordonnancer. avec JobScheduler. François BAYART

L art d ordonnancer. avec JobScheduler. François BAYART L art d ordonnancer avec JobScheduler François BAYART 30 Octobre 2010 [1] 234567 introduction Introduction Qui suis-je? François Bayart consultant système en solution libre et propriétaire Redhat (1996),

Plus en détail

Vérifier la qualité de vos applications logicielle de manière continue

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min) TP n 2 : Installation et administration du serveur ProFTP Objectifs du TP Comprendre le fonctionnement du protocole FTP Installation et compilation d un paquet source Configuration, lancement et administration

Plus en détail

Guide d installation de SugarCRM Open Source version 4.5.1

Guide d installation de SugarCRM Open Source version 4.5.1 Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité

Plus en détail

CHARTE INFORMATIQUE LGL

CHARTE INFORMATIQUE LGL CHARTE INFORMATIQUE LGL Selon la réglementation indiquée dans la charte informatique du CNRS, tout accès aux ressources informatiques du LGLTPE nécessite une authentification des personnels. Cette authentification

Plus en détail

Formation Debian GNU/Linux

Formation Debian GNU/Linux Formation Debian GNU/Linux Alexis de Lattre alexis@via.ecp.fr Formation Debian GNU/Linux par Alexis de Lattre Copyright 2002-2005 Alexis de Lattre Ce document a reçu des contributions importantes de Brian

Plus en détail

Gestion d identités PSL Exploitation IdP Authentic

Gestion d identités PSL Exploitation IdP Authentic Gestion d identités PSL Exploitation IdP Authentic Entr ouvert SCOP http ://www.entrouvert.com Table des matières 1 Arrêt et démarrage 2 2 Configuration 2 2.1 Intégration à la fédération............................

Plus en détail

CMS et logiciels libres : initiation 01 CONTENT MANAGEMENT SYSTEM / SYSTÈME DE GESTION DE CONTENU

CMS et logiciels libres : initiation 01 CONTENT MANAGEMENT SYSTEM / SYSTÈME DE GESTION DE CONTENU CMS et logiciels libres : initiation 01 CONTENT MANAGEMENT SYSTEM / SYSTÈME DE GESTION DE CONTENU 1TERMINOLOGIE 101 TERMINOLOGIE OPEN SOURCE ET LOGICIELS LIBRES > Le code source - Lisible et écrit par

Plus en détail

Logiciel Libre Cours 9 Modèles Économiques

Logiciel Libre Cours 9 Modèles Économiques Logiciel Libre Cours 9 Modèles Économiques Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/ Copyright

Plus en détail

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012

LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012 LiveUSB clefisn Meilland jean claude et Kbida Abdellatif 16 septembre 2012 Table des matières 1 Présentation de la clefisn 2 1.1 liveusb......................................... 2 1.2 Le boot.........................................

Plus en détail

Retour d expérience sur Prelude

Retour d expérience sur Prelude Retour d expérience sur Prelude OSSIR Paris / Mathieu Mauger Consultant Sécurité (Mathieu.Mauger@intrinsec.com) Guillaume Lopes Consultant Sécurité (Guillaume.Lopes@Intrinsec.com) @Intrinsec_Secu 1 Plan

Plus en détail

Manuel des logiciels de transferts de fichiers File Delivery Services

Manuel des logiciels de transferts de fichiers File Delivery Services Manuel des logiciels de transferts de fichiers File Delivery Services Editeur La Poste CH SA Technologies de l information Webergutstrasse 12 CH-3030 Berne (Zollikofen) Contact La Poste CH SA Technologies

Plus en détail

Acquisition des données

Acquisition des données Chef De Projet Informatique en Environnement Territorial diffusion restreinte à l'enseignement CDP-UPMC Frédéric Bongat Formation CDP 1 Un système compromis implique: Une méthodologie afin de faire face

Plus en détail

FileMaker Server 12. publication Web personnalisée avec XML

FileMaker Server 12. publication Web personnalisée avec XML FileMaker Server 12 publication Web personnalisée avec XML 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont

Plus en détail

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation Objectif : Tout administrateur système et réseau souhaitant avoir une vision d'ensemble des problèmes de sécurité informatique et des solutions existantes dans l'environnement Linux. Prérequis : Connaissance

Plus en détail

II- Préparation du serveur et installation d OpenVpn :

II- Préparation du serveur et installation d OpenVpn : I- Etude du VPN a. Qu est-ce qu un VPN? Un VPN(Virtual Private Network = Réseau Privé Virtuel) permet de créer une connexion sécurisée entre un ordinateur et un serveur VPN. Ce dernier servira de relai

Plus en détail

Les logiciels libres. Université Antilles Guyane 14 novembre 2008 Olivier Watté

Les logiciels libres. Université Antilles Guyane 14 novembre 2008 Olivier Watté Les logiciels libres Université Antilles Guyane 14 novembre 2008 Olivier Watté Qui suis-je Olivier Watté 0690 49 73 01 olivier.watte@gmail.com Utilisateur GNU/linux depuis 1998 Directeur technique SS2L

Plus en détail

Organiser les informations ( approche technique )

Organiser les informations ( approche technique ) Organiser les informations ( approche technique ) Introduction : Le stockage des informations est une fonctionnalité essentielle de l outil informatique, qui permet de garantir la pérennité des informations,

Plus en détail

Serveur Appliance IPAM et Services Réseaux

Serveur Appliance IPAM et Services Réseaux Page 1 Datasheet Serveur Appliance IPAM et Services Réseaux SIMPLIFER LE DEPLOIEMENT DE VOS ARCHITECTURES & DHCP Les services d adressage et de nommage sont au cœur de votre système d information, car

Plus en détail

Installer et configurer un serveur Zimbra

Installer et configurer un serveur Zimbra Installer et configurer un serveur Zimbra Par LoiselJP Le 29/05/2013 (rev. du 14/05/2014) 1 Objectifs La messagerie et l accès à l Internet sont aujourd hui des outils indispensables. Toute entreprise

Plus en détail

FusionInventory. Guillaume Rousse <guillomovitch@gmail.com> Journées francophones de Perl 2011

FusionInventory. Guillaume Rousse <guillomovitch@gmail.com> Journées francophones de Perl 2011 Journées francophones de Perl 2011 Sommaire 1 Solutions de gestion de parc informatique 2 Caractéristiques Capacités 3 Avancement 1 Solutions de gestion de parc informatique 2

Plus en détail

Fiche Technique. Cisco Security Agent

Fiche Technique. Cisco Security Agent Fiche Technique Cisco Security Agent Avec le logiciel de sécurité de point d extrémité Cisco Security Agent (CSA), Cisco offre à ses clients la gamme de solutions de protection la plus complète qui soit

Plus en détail

MailStore Server 7 Caractéristiques techniques

MailStore Server 7 Caractéristiques techniques MailStore Server 7 Caractéristiques techniques MailStore Server La référence en matière d archivage d e-mails La solution MailStore Server permet aux entreprises de toutes tailles de bénéficier des avantages

Plus en détail

Petit guide des sous-réseaux IP

Petit guide des sous-réseaux IP Petit guide des sous-réseaux IP Robert Hart, hartr@interweft.com.au version française par Laurent Caillat-Vallet, caillat@univ-lyon1.fr v1.0, 31 Mars 1997 Ce document décrit pourquoi et comment découper

Plus en détail

Méthode d Évaluation des Coûts liés à l Open Source (ECOS)

Méthode d Évaluation des Coûts liés à l Open Source (ECOS) Méthode d Évaluation des Coûts liés à l Open Source (ECOS) Version 1.0-31/03/2013 1 Table des matières 1 Note de licence 3 2 Historique des modifications 3 3 Introduction 3 3.1 Objet du document..........................

Plus en détail

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante : http://www.hegerys.com/documentation/magicsafe-windows-doc.pdf

Plus en détail

Auditer une infrastructure Microsoft

Auditer une infrastructure Microsoft Auditer une infrastructure Microsoft I. INTRODUCTION :... 3 A. OU TROUVER CE DOCUMENT :... 3 B. OBJECTIFS DU DOCUMENT :... 3 II. AUDIT DE L INFRASTRUCTURE INFORMATIQUE :... 4 A. AUDIT DU RESEAU:... 4 B.

Plus en détail

sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM

sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM sshgate Patrick Guiran Chef de projet support pguiran@linagora.com WWW.LINAGORA.COM Sommaire 1. Problématique des accès aux serveurs Besoins Linagora Recherche d'une solution 2. Présentation de sshgate

Plus en détail

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO

Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO Guide pratique de CSPM, l'outil de suivi des performances du système Version française du Complete System Performance Monitor HOWTO Chris Lorenz Adaptation française:

Plus en détail

Situation professionnelle n X

Situation professionnelle n X BENARD Jérémy BTS SIO 2 Situation professionnelle n X ========================================= Thème : Gestion et amélioration d'une infrastructure ========================================= Option SISR

Plus en détail

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS Contenu détaillé de la spécialité : MESSI : MEtiers de l'administration et de la Sécurité des Systèmes d'information Contenu détaillé de la Licence

Plus en détail

Avant-propos Certificats et provisioning profiles

Avant-propos Certificats et provisioning profiles Avant-propos Certificats et provisioning profiles Devenir «développeur Apple» ne signifie pas uniquement que vous allez pouvoir développer des apps, vous allez également avoir certaines responsabilités

Plus en détail

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs HASH LOGIC s e c u r i t y s o l u t i o n s Version 1.0 de Janvier 2007 PKI Server Une solution simple, performante et économique Les projets ayant besoin d'une infrastructure PKI sont souvent freinés

Plus en détail