=== MosquitoOo is now known as MaWaLe | ||
=== MosquitoOo is now known as MaWaLe | ||
ekko | bonsoir à tous | 20:14 |
---|---|---|
sarhan | bonsoir ekko | 20:17 |
sarhan | pout les classroom il faudra utiliser le canal #ubuntu-tn-classroom-chat pour discuter | 20:17 |
Miro19 | yeddkom | 20:36 |
Malek | bsr | 20:56 |
k3nz0 | Malek cc | 20:58 |
Malek | bsr | 20:59 |
Malek | merci Neo31 pour votre aide | 21:00 |
=== ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** Prochain cours "Initiation au Packaging le 19/08/2011 à 23h00 (GMT+1) ***|| SEULEMENT L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classrrom-chat et de télécharger la présen | ||
=== ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** "Initiation au paquetage à 23h00 (GMT+1) ***|| SEUL L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classrrom-chat et de télécharger la présentation http://bit.ly/o8OX9Q | ||
=== ChanServ changed the topic of #ubuntu-tn-classroom to: Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** "Initiation au paquetage à 23h00 (GMT+1) ***|| SEUL L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classroom-chat et de télécharger la présentation http://bit.ly/o8OX9Q | ||
=== ChanServ changed the topic of #ubuntu-tn-classroom to: SEUL L'ANIMATEUR DU CLASSROOM A DROIT DE PARLER SUR CE CHANNEL, merci de rejoindre #ubuntu-tn-classroom-chat et de télécharger la présentation http://bit.ly/o8OX9Q || Salon classroom IRC de la LoCo Team approuvée ubuntu-tn : https://wiki.ubuntu.com/TunisianTeam | | Historique du Canal : http://logs.ubuntu-eu.org/freenode/ | |*** "Initiation au paquetage à 23h00 (GMT+1) ***|| | ||
Neo31 | test | 21:36 |
adn | test | 21:37 |
adn | bonsoir à toutes | 22:02 |
adn | bonsoir à tous | 22:02 |
adn | merci d'avoir répondu présents à l'invitation de la Team Ubuntu Tunisie | 22:02 |
adn | Ubuntu Team qui a eu la gentillesse de me proposer d'animer un classroom sur le packaging | 22:03 |
adn | alors que je suis développeur Debian et que je n'utilise pas Ubuntu | 22:03 |
adn | mais après tout, Debian et Ubuntu sont de la même famille ;-) | 22:03 |
adn | et le système de packaging pour les deux fonctionne exactement de la même manière | 22:03 |
adn | c'est d'ailleurs ce qui fait la force de ces deux distributions ! | 22:04 |
nizarus | on te remercie aussi d'avoir accepter d'animer ce classroom malgré que tu es en vacances | 22:04 |
adn | le plaisir est pour moi | 22:04 |
adn | et j'espère que la présentation sera utile et intéressera les participants, qu'ils soient Tunisiens ou non | 22:04 |
adn | et que cela leur donnera l'envie de contribuer à Debian et Ubuntu | 22:04 |
=== asma is now known as Guest70845 | ||
adn | en corrigeant des bugs, en ajoutant des nouveaux packages ! | 22:05 |
adn | en somme, en participant à ces formidables projets de logiciels libres | 22:05 |
adn | les infos utiles relatives à cette présentation sont dans le topic | 22:05 |
adn | vous pouvez poser toutes les questions que vous voulez sur #ubuntu-tn-classroom-chat | 22:05 |
adn | arrêtez-moi si je vais trop vite | 22:05 |
adn | ou si quelque chose n'est pas clair | 22:06 |
adn | pour vous aider à suivre, la présentation que préparée se trouve sur http://bit.ly/o8OX9Q | 22:06 |
adn | pour faire disparaître les messages de join/part/quit, http://i.clintecker.com/disable-irc-msgs.html | 22:07 |
adn | ou encore http://wiki.xkcd.com/irc/Hide_join_part_messages (pour les utilisateurs de pidgin) | 22:08 |
nizarus | adn, concentre toi sur le classroom on s'occupe du reste :) | 22:08 |
adn | ok | 22:09 |
adn | faites-moi signe sur l'autre chan que vous avez la présentation | 22:09 |
adn | et on passe à la : | 22:09 |
adn | #### DIAPO n° 2 #### | 22:09 |
adn | pour pouvoir tirer le meilleur de cette présentation, il vaut mieux avoir une distribution Debian, Ubuntu ou dérivée | 22:11 |
adn | qui fonctionne avec des packages .deb :-) | 22:11 |
adn | sinon, c'est pas grave, mais vous devrez vous contenter de la théorie | 22:11 |
adn | pour ceux qui ont une distribution Debian, je vous recommande de suivre pas à pas les commandes que je vous proposerai | 22:11 |
adn | ce sont des instructions de ligne de commande ("shell") basique | 22:12 |
adn | s | 22:12 |
adn | a priori, on ne va pas utiliser beaucoup plus que les commandes : | 22:12 |
adn | ls (lister le contenu d'un dossier, comme "dir" dans MS-DOS) | 22:13 |
adn | cd (aller dans un dossier) | 22:13 |
adn | et quelques programmes spécifiques faits pour créer un package | 22:13 |
adn | très rapidement, une distribution Debian, c'est une série de logiciels libres qui ont été packagés d'une manière standardisée pour que l'utilisateur l'utilise le plus facilement possible | 22:14 |
adn | sous windows, quand on veut un programme, il faut aller sur google, chercher le programme, aller sur le site de son créateur, télécharger, installer | 22:14 |
adn | parfois il faut installer un autre programme avant pour que ça fonctionne (par exemple Java, .net, etc.) | 22:15 |
adn | une distribution offre une commande qui installe le programme qu'on veut en s'occupant du reste | 22:15 |
adn | par exemple, je veux installer xchat | 22:15 |
adn | sous Debian, on utilise la commande apt-get (APT = Advanced Packaging Tool) et on dit : | 22:16 |
adn | apt-get install xchat | 22:16 |
adn | il se débrouille pour trouver la dernière version xchat disponible, la télécharger, l'installer, la configurer | 22:16 |
nizarus | sous ubuntu il faut la précéder avec sudo | 22:16 |
=== Guest55777 is now known as killman88 | ||
adn | et comme par miracle, l'icône apparaît | 22:16 |
adn | sous Ubuntu, en effet, soit on utilise directement "sudo apt-get install xchat", soit on utilise un programme comme Synaptic qui fait tout en arrière-plan de manière transparente | 22:17 |
adn | #### DES QUESTIONS ? | 22:17 |
nizarus | [QUESTION]Lequel des deux est meilleur apt ou aptitude et pourquoi? | 22:18 |
adn | en fait, les deux systèmes ont le même rôle, la même utilité : gérer l'installation, la configuration, la désinstallation des packages | 22:18 |
adn | selon les époques, l'un ou l'autre était à la mode, en fonction de plusieurs critères | 22:18 |
adn | - la facilité d'utilisation (aptitude proposait une forme d'interface graphique) | 22:19 |
adn | propose, je veux dire, pas proposait (aptitude existe toujours) | 22:19 |
adn | - la gestion des dépendances des programmes (aptitude permet d'installer des programmes complémentaires même si pas indispensables ; il permet égalemnt de supprimer facilement les packages inutiles) | 22:20 |
adn | - la rapidité d'exécution (apt-get était plus rapide) | 22:20 |
adn | - la robustesse des mises à jour et la résolution des conflits entre packages installés | 22:21 |
adn | pour lenny, aptitude était recommandé | 22:21 |
adn | (Debian Lenny, je veux dire) | 22:21 |
adn | depuis Debian Squeeze (la version sortie en février 2011), on recommence à recommander apt-get | 22:21 |
adn | en fait, c'est un débat vieux comme le monde, un peu comme ViM vs Emacs | 22:22 |
adn | une question de mode | 22:22 |
adn | une question d'habitude | 22:22 |
adn | une question de communauté qui développe de nouvelles fonctionnalités | 22:22 |
adn | mais les deux sont utilisables et utilisés | 22:23 |
adn | faites votre choix en fonction de ce que vous préférez | 22:23 |
adn | une autre question ? | 22:23 |
nizarus | no | 22:23 |
adn | ok | 22:24 |
adn | #### DIAPO n° 3 #### | 22:24 |
adn | je vais aller vite sur celle-là :-) | 22:24 |
adn | en gros, quand j'étais petit (16 ou 17 ans), l'été, y avait pas le climatiseur à la maison à La Mornaguia | 22:24 |
adn | je m'ennuyais en juillet et août, et j'ai voulu tester d'installer Linux | 22:25 |
adn | puis j'ai eu peur de perdre des données, donc j'ai laissé tomber | 22:25 |
adn | (c'était en 1999, je pense) | 22:25 |
adn | mais quand je suis entré en école d'ingénieur, en 2002, je me suis impliqué dans l'association qui gérait le réseau de la résidence des élèves | 22:25 |
adn | dans cette association, tous les serveurs étaient sous Linux et plus précisément sous Debian | 22:26 |
adn | ça a été pour moi l'occasion de découvrir Linux, de l'installer, de l'utiliser | 22:26 |
adn | pendant l'été 2004, en stage, je m'ennuyais un peu (normal, en stage...) | 22:26 |
adn | alors j'ai commencé à me renseigner sur la manière dont fonctionne un package Debian | 22:27 |
adn | je me suis arrêté très vite - ça m'avait l'air compliqué ! | 22:27 |
adn | et je me suis mis à la traduction ;-) | 22:27 |
* Neo31 rappel au participants qu'ils peuvent rejoindre le channel #ubuntu-tn-classroom-chat pour poser leurs questions | 22:27 | |
adn | de fil en aiguille, pour traduire, on a besoin de comprendre de plus en plus de trucs techniqués | 22:28 |
adn | donc quelques mois plus tard, j'ai packagé p7zip pour Debian | 22:28 |
adn | pour le reste, c'est sur la diapo, on en discutera après, si certains veulent :-) | 22:28 |
adn | à part "c'est bon, il a fini de raconter sa vie ?", est-ce qu'il y a des questions ? ;-) | 22:29 |
nizarus | no | 22:29 |
adn | #### DIAPO n° 4 #### | 22:30 |
adn | supposons qu'on ait trouvé un programme sympa | 22:30 |
adn | avant de le packager, y a plusieurs choses à se demander | 22:30 |
adn | 1) est-ce qu'il est libre ? s'il ne l'est pas, y a probablement un logiciel libre qui fait la même voire mieux | 22:31 |
adn | => trouver ce logiciel libre et l'utiliser à la place ! | 22:31 |
adn | 2) est-ce qu'il y a une communauté d'utilisateurs et de développeurs derrière ce programme ? si ce n'est pas le cas, essayez de comprendre pourquoi (peut-être que le logiciel est mort) et éventuellement s'impliquer pour réveiller le projet | 22:32 |
adn | 3) est-ce qu'un package existe déjà ? s'il y a déjà un package, ça ne sert à rien de refaire le travail une deuxième fois ! | 22:33 |
adn | 4) est-ce que quelqu'un a déjà prévu de créer le package ? (cf. http://bugs.debian.org/wnpp) si c'est le cas, on peut proposer de donner un coup de main | 22:33 |
adn | ce soir (et après on va accélérer un peu), je vous propose de travailler sur un programme innovant : un genre d'Hello World à la Tunisienne | 22:34 |
adn | Questions ? | 22:34 |
nizarus | [Question]Si le package existe déjà mais il n'est pas à jour, est ce que c'est possible de le mettre à jour ou il faut recommencer le travail à 0?! | 22:34 |
adn | de deux choses l'une : | 22:35 |
adn | 1) il n'est pas à jour mais il n'a pas de maintainer officiel : dans ce cas-là, n'hésitez pas, lancez-vous ! Essayez de le mettre à jour. S'il est trop vieux, il est parfois nécessaire de reprendre depuis 0 | 22:36 |
adn | 2) s'il n'est pas à jour, contactez le maintainer officiel et proposez-lui de l'aider | 22:36 |
adn | par exemple avec des patches de mise à jour de son package | 22:36 |
adn | ou avec un package mis à jour par vos soins | 22:37 |
adn | est-ce que la réponse est satisfaisante ? | 22:37 |
adn | si oui, question ou diapo suivante | 22:37 |
nizarus | adn, go | 22:37 |
adn | ok, je me rends compte que j'ai commenté la diapo 5 et non la 4 | 22:38 |
adn | pour la 4, c'est clair, tout est dedans | 22:38 |
adn | on rentre donc dans le vif du sujet | 22:38 |
adn | #### DIAPO n° 6 #### | 22:38 |
adn | alors, un package, en fait, ça peut faire référence à plusieurs choses | 22:39 |
adn | soit le package binaire (binary package), c'est le fichier .deb | 22:39 |
adn | soit le package source (source package), dont on parlera à la diapo suivante | 22:40 |
adn | le fichier .deb contient plusieurs choses | 22:40 |
adn | 1) les fichiers à installer | 22:40 |
adn | pour faire fonctionner le programme (fichiers de configuration, images, sons, programmes) | 22:41 |
adn | 2) des informations complémentaires mais néanmoins nécessaires | 22:41 |
adn | par exemple la liste des dépendances, c'est-à-dire les packages qu'il faut obligatoirement installer pour que ça fonctionne | 22:41 |
adn | par exemple, quand j'installe xchat ou pidgin, je suis obligé d'avoir une interface graphique | 22:42 |
adn | donc je dois avoir au préalable installé X.org | 22:42 |
adn | voire Gnome, KDE, XFCE ou autre... | 22:43 |
adn | je vous propose de télécharger le fichier suivant : | 22:43 |
adn | http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb | 22:44 |
adn | enregistrez-le quelque part | 22:44 |
adn | lancez le terminal | 22:44 |
nizarus | [QUESTION] un paquet existe en version 1.1.1 dans toutes les versions d'ubuntu, et toutes les versions stables de debian. Une version 2 a été packagé sur une version instable debian. Comment en profiter sur ubuntu? | 22:44 |
adn | et lancez la commande "ar x democratie_0.1-1_amd64.deb" | 22:44 |
adn | (je répondrai à la question juste après la manip) | 22:44 |
adn | si vous faites "ls" ensuite, vous devez voir quelque chose comme ce qui suit : | 22:45 |
adn | 0:45 adn@wahe /tmp/DebPackaging% wget http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb | 22:45 |
adn | --2011-08-20 00:45:17-- http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb | 22:45 |
adn | 2011-08-20 00:45:17 (369 MB/s) - «democratie_0.1-1_amd64.deb» sauvegardé [4808/4808] | 22:45 |
adn | 0:45 adn@wahe /tmp/DebPackaging% ar x democratie_0.1-1_amd64.deb | 22:45 |
adn | 0:45 adn@wahe /tmp/DebPackaging% ls | 22:46 |
adn | control.tar.gz data.tar.gz debian-binary democratie_0.1-1_amd64.deb | 22:46 |
adn | tapez ensuite la commande "tar tvzf data.tar.gz" | 22:46 |
adn | vous verrez comment c'est organisé | 22:46 |
adn | l'archive data.tar.gz contient en effet les fichiers à installer, selon l'arborescence de destination prévue | 22:47 |
adn | drwxr-xr-x root/root 0 2011-08-12 21:54 ./ | 22:47 |
adn | drwxr-xr-x root/root 0 2011-08-12 21:54 ./usr/ | 22:47 |
adn | -rwxr-xr-x root/root 4904 2011-08-12 21:54 ./usr/bin/democratie | 22:47 |
adn | -rw-r--r-- root/root 161 2011-08-12 21:49 ./usr/share/doc/democratie/changelog.Debian.gz | 22:47 |
adn | etc. | 22:47 |
adn | vous pouvez lancer la commande "tar tvzf control.tar.gz" | 22:48 |
adn | vous verrez qu'il contient des informations sur le package | 22:48 |
adn | 0:48 adn@wahe /tmp/DebPackaging% tar tvzf control.tar.gz | 22:49 |
adn | drwxr-xr-x root/root 0 2011-08-12 21:54 ./ | 22:49 |
adn | -rw-r--r-- root/root 357 2011-08-12 21:54 ./control | 22:49 |
adn | -rw-r--r-- root/root 270 2011-08-12 21:54 ./md5sums | 22:49 |
adn | par exemple, le fichier control contient les éléments suivants | 22:49 |
adn | Package: democratie | 22:49 |
adn | Version: 0.1-1 | 22:49 |
adn | Architecture: amd64 | 22:49 |
adn | Maintainer: Mohammed Adnene Trojette <adn+deb@diwi.org> | 22:49 |
adn | [QUESTION] un paquet existe en version 1.1.1 dans toutes les versions d'ubuntu, et toutes les versions stables de debian. Une version 2 a été packagé sur une version instable debian. Comment en profiter sur ubuntu? | 22:49 |
adn | en fait, y a deux catégories de packages, sous Ubuntu | 22:50 |
adn | 1) les packages maintenus séparément par les développeurs Ubuntu et par les dév Debian | 22:51 |
adn | 2) les packages simplement synchronisés par Ubuntu avec Debian instable | 22:51 |
adn | pour la catégorie 2), il faut attendre que la synchronisation soit lancée | 22:51 |
adn | ce qui est systématiquement peu avant les releases Ubuntu | 22:52 |
adn | pour la catégorie 1), il faut attendre que le dév Ubuntu se bouge les fesses ;-) | 22:52 |
adn | (pour info, j'ai fait wget depuis la machine où se trouve le fichier, d'où le débit, qui est limité surtout par la vitesse du disque dur) | 22:52 |
adn | si la réponse est suffisamment claire, question ou diapo suivante ? | 22:53 |
nizarus | [QUESTION] Un patch de mise à jour, c'est un script Shell qui intervient sur le fichier ou bien autre chose ? | 22:53 |
adn | le patch de mise à jour, c'est un fichier texte qu'on passe à la commande "patch" | 22:53 |
adn | qui se trouve dans le package du même nom | 22:54 |
adn | c'est le résultat de l'exécution de la commande "diff" entre deux fichiers ou deux répertoires | 22:54 |
adn | par exemple, je vais créer deux fichiers : fichier-A et fichier-B | 22:55 |
adn | fichier-A contient "A" et fichier-B contient "B" | 22:55 |
adn | 0:54 adn@wahe /tmp/DebPackaging% echo A > fichier-A && echo B > fichier-B | 22:55 |
adn | 0:55 adn@wahe /tmp/DebPackaging% diff -u fichier-A fichier-B | 22:55 |
adn | --- fichier-A 2011-08-20 00:55:23.000000000 +0200 | 22:55 |
adn | +++ fichier-B 2011-08-20 00:55:23.000000000 +0200 | 22:55 |
adn | @@ -1 +1 @@ | 22:55 |
adn | -A | 22:55 |
adn | +B | 22:55 |
adn | le patch, c'est le fichier texte qui contient les 5 dernières lignes | 22:56 |
adn | qui dit "entre le fichier-A et le fichier-B, à la ligne 1, on enlève A et on rajoute B" | 22:56 |
adn | on applique ce patch avec la commande /usr/bin/patch | 22:57 |
adn | 0:57 adn@wahe /tmp/DebPackaging% diff -u fichier-A fichier-B > fichier-patch | 22:57 |
adn | zsh: exit 1 diff -u fichier-A fichier-B > fichier-patch | 22:57 |
adn | 0:57 adn@wahe /tmp/DebPackaging% cat fichier-patch|patch | 22:58 |
adn | patching file fichier-A | 22:58 |
adn | B | 22:58 |
adn | 0:57 adn@wahe /tmp/DebPackaging% cat fichier-A | 22:58 |
adn | la suite ? | 22:58 |
nizarus | adn, quand tu termine la réponse tape "next" | 22:58 |
adn | ok :-) | 22:58 |
nizarus | [QUESTION] On peut essayer de créer une version x86 du package | 22:58 |
adn | next (comme dans l'émission du même nom) | 22:58 |
adn | en fait, vous verrez à la fin de la présentation | 22:58 |
adn | ceux qui ont une machine x86 auront créé une version x86 | 22:59 |
adn | et ceux qui ont une machine amd64 auront créé une version amd64 | 22:59 |
adn | cela dépend de votre architecture | 22:59 |
adn | next | 22:59 |
nizarus | [QUESTION] pourquoi le paquet est en arch amd64 (ou any) au lieu de all? | 22:59 |
adn | parce qu'il contient des fichiers qui ne peuvent être exécutés que sous une machine amd64 | 23:00 |
adn | dans le fichier control du paquet binaire, comme c'est un package amd64, c'est indiqué Architecture: amd64 | 23:00 |
adn | mais dans le package source, on dira Architecture: any | 23:01 |
adn | et c'est les serveurs de compilation automatique (autobuilders) qui, selon leur architecture, créeront les packages correspondants | 23:01 |
adn | avec le champ Architecture qui va bien | 23:01 |
adn | si mon package n'avait contenu que des fichiers dont le fonctionnement ne dépend pas de l'architecture (un son, une image, un PDF), j'aurais mis Architecture: all | 23:02 |
adn | et non any | 23:02 |
adn | next | 23:02 |
nizarus | [QUESTION] n'est il pas plus pratique de créer des packages ALL pour éviter la dépendace de l'architecture? | 23:02 |
adn | en fait, il suffit qu'un seul fichier du package dépende de l'architecture pour justifier un package "Architecture: any" | 23:02 |
adn | imaginons que mon programme en C, compilé avec un compilateur pour un processeur amd64, se retrouve dans un package "Architecture: all" | 23:03 |
adn | alors un utilisateur sous x86 va le télécharger | 23:03 |
adn | et, au moment de lancer la commande, il va y avoir une erreur | 23:03 |
adn | parce que son processeur x86 ne peut exécuter des programmes compilés pour amd64 | 23:04 |
adn | next | 23:04 |
nizarus | no | 23:04 |
adn | ok, diapo suivante alors ? | 23:04 |
adn | #### DIAPO n° 7 #### | 23:04 |
nizarus | go ahead adn (and faster) | 23:04 |
adn | le package source est constitué de trois fichiers | 23:05 |
adn | 1) le code source du programme original | 23:05 |
adn | (fichier .orig.tar.bz2 ou orig.tar.gz...) | 23:05 |
adn | 2) l'ensemble des patches à appliquer à ce code source pour en faire un package Debian | 23:05 |
adn | (fichier .debian.tar.gz ou .diff.gz dans les anciennes versions) | 23:06 |
adn | 3) le fichier de description du package | 23:06 |
adn | (fichier .dsc) | 23:06 |
adn | questions ? | 23:06 |
nizarus | [QUESTION] Que veut dire le terme description signée? | 23:06 |
adn | pour authentifier un package, on demande aux développeurs de signer le fichier description avec leur clé GPG | 23:07 |
adn | ce fichier .dsc contient en particulier les identifiants des fichiers qui constituent le package source | 23:07 |
adn | à savoir la somme md5 ou SHA du fichier .orig.tar.bz2 et du fichier .debian.tar.gz | 23:08 |
adn | si on regarde dans le fichier dispo sur http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc | 23:08 |
adn | 0:57 adn@wahe /tmp/DebPackaging% wget http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc | 23:08 |
adn | --2011-08-20 01:08:12-- http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc | 23:08 |
adn | 2011-08-20 01:08:12 (202 MB/s) - «democratie_0.1-1.dsc» sauvegardé [810/810] | 23:08 |
adn | 1:08 adn@wahe /tmp/DebPackaging% cat *dsc | 23:08 |
adn | Source: democratie | 23:08 |
adn | Binary: democratie | 23:08 |
adn | Architecture: any | 23:08 |
adn | Version: 0.1-1 | 23:08 |
adn | Maintainer: Mohammed Adnene Trojette <adn+deb@diwi.org> | 23:08 |
adn | Checksums-Sha256: d8eb834371c367f2bcdb5282359f0d8b2fb1417011b79c4ad9229d9e8e642abf 58239 democratie_0.1.orig.tar.bz2 b166468099ceec9891ea08c6c72b0265676003c33596107842be0b2195f4799d 2522 democratie_0.1-1.debian.tar.gz | 23:09 |
adn | next | 23:09 |
nizarus | no | 23:09 |
adn | #### DIAPO n° 8 #### | 23:09 |
adn | je vous propose d'installer les packages indiqués | 23:10 |
adn | sudo apt-get install dpkg-dev dh-make devscripts build-essentials autotools-dev | 23:10 |
adn | questions ? | 23:10 |
nizarus | next | 23:10 |
adn | #### DIAPO n° 9 #### | 23:10 |
adn | créez un dossier de travail (par exemple dans votre home) | 23:11 |
adn | allez dedans | 23:11 |
Neo31 | correction : | 23:11 |
Neo31 | sudo apt-get install dpkg-dev dh-make devscripts build-essential autotools-dev | 23:11 |
adn | oui, merci ! | 23:11 |
Neo31 | build-essential << sans S a la fin | 23:11 |
adn | et téléchargez le code source original de notre super programme http://adn.diwi.org/debian/classroom/package/upstream/democratie-0.1.tar.bz2 | 23:11 |
adn | que l'on souhaite packager | 23:12 |
Neo31 | un ecran avec le titre "Postfix configuration va appraitre" | 23:12 |
Neo31 | on garde le choix par defaut | 23:12 |
Neo31 | Internet site | 23:12 |
Neo31 | pour cela on appui sur la touche "fleche droit" pour selectionner le bouton OK | 23:13 |
Neo31 | puis on appui sur la touche entree | 23:13 |
adn | (merci) | 23:13 |
Neo31 | encore on appuis sur entree sur l'ecran suivant | 23:13 |
Neo31 | installation en cours | 23:13 |
adn | (dis-moi quand je peux continuer) | 23:14 |
nizarus | go ahead adn | 23:14 |
adn | on décompresse l'archive contenant le code source | 23:14 |
adn | 1:12 adn@wahe /tmp/DebPackaging% tar xvjf democratie-0.1.tar.bz2 | 23:15 |
adn | democratie-0.1/ | 23:15 |
adn | democratie-0.1/Makefile.am | 23:15 |
adn | democratie-0.1/install-sh | 23:15 |
adn | democratie-0.1/configure | 23:15 |
adn | (etc.) | 23:15 |
Neo31 | installation done | 23:15 |
adn | on va dans le dossier democratie-0.1/ | 23:15 |
adn | et on lance la commande dh_make pour créer le dossier debian/ | 23:15 |
nizarus | Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch? | 23:16 |
nizarus | [s/i/m/l/k/n] | 23:16 |
adn | 1:15 adn@wahe /tmp/DebPackaging/democratie-0.1% dh_make -f ../democratie-0.1.tar.bz2 | 23:16 |
adn | Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs? [s/i/m/l/k/n/b] s | 23:16 |
adn | on choisit s, pour "single binary" | 23:16 |
adn | Maintainer name : Mohammed Adnène Trojette | 23:16 |
adn | Email-Address : adn+deb@diwi.org | 23:16 |
adn | Date : Sat, 20 Aug 2011 01:16:02 +0200 | 23:16 |
adn | Package Name : democratie | 23:16 |
adn | Version : 0.1 | 23:16 |
adn | License : blank | 23:16 |
adn | Using dpatch : no | 23:16 |
adn | Type of Package : Single | 23:16 |
adn | Hit <enter> to confirm: | 23:16 |
adn | et on valide avec la touche entrée | 23:16 |
adn | si on fait "ls" | 23:17 |
adn | on voit qu'un nouveau dossier debian/ est apparu | 23:17 |
adn | 1:17 adn@wahe /tmp/DebPackaging/democratie-0.1% ls | 23:17 |
adn | aclocal.m4 config.h.in configure* configure.ac debian/ depcomp* install-sh* Makefile.am Makefile.in missing* src/ | 23:17 |
adn | questions ? | 23:17 |
nizarus | [QUESTION] si un paquet est construit correctement, cela signifie t-il que l'on a toutes les dépendances de cette liste sur la machine? | 23:17 |
adn | en fait, la question est posée à l'envers | 23:18 |
adn | pour constuire correctement le paquet, on a besoin de build-essential | 23:18 |
adn | qui est un package qui dépend en particulier du package "make", dont on a besoin | 23:18 |
adn | 1:17 adn@wahe /tmp/DebPackaging/democratie-0.1% apt-cache show build-essential | 23:19 |
adn | Depends: libc6-dev | libc-dev, gcc (>= 4:4.4.3), g++ (>= 4:4.4.3), make, dpkg-dev (>= 1.13.5) | 23:19 |
adn | il dépend également de gcc | 23:19 |
adn | dont on a également besoin | 23:19 |
adn | dpkg-dev contient des outils également nécessaires | 23:19 |
adn | dh-make, on vient de l'utiliser ;-) | 23:19 |
adn | devscripts contient plein de programmes utiles | 23:20 |
adn | (j'ai mis entre parenthèses, sur la diapo 8, les programmes qui rendent nécessaire l'installation de ces dépendances) | 23:20 |
adn | est-ce que la réponse est claire ? | 23:20 |
nizarus | [QUESTION] Peux-tu expliciter la différence entre le "paquet .deb" produit par la commande "make checkinstall" et .deb classique ? | 23:20 |
adn | la commande make checkinstall dépend probablement du code source du programme | 23:21 |
adn | il faudrait lire le fichier Makefile pour savoir ce qu'elle fait | 23:21 |
adn | techniquement, ce sont deux packages Debian dont il ne devrait pas y avoir de différence | 23:22 |
adn | en pratique, rien ne garantit que l'auteur du Makefile ait respecté les standards des packages Debian | 23:22 |
adn | next | 23:22 |
nizarus | [QUESTION] La différence entre les [s/i/m/l/k/n] nous éclairer la chose ? | 23:22 |
adn | single package : on crée un unique package .deb | 23:22 |
adn | c'est le "s" | 23:22 |
adn | m = multiple package : parfois, on veut plusieurs packages | 23:23 |
adn | un avec la documentation | 23:23 |
adn | un avec la musique | 23:23 |
adn | un avec les programmes | 23:23 |
adn | un spécifique à Gnome | 23:24 |
adn | un autre spécifique à KDE | 23:24 |
adn | à partir du même code source | 23:24 |
adn | l = library : par exemple le package de libxml | 23:24 |
adn | k = kernel module | 23:24 |
adn | en fait, dh_make propose des modèles de dossiers debian/ adaptés au type de package souhaité | 23:25 |
adn | pour cette formation, on fait un package tout simple | 23:25 |
adn | next | 23:25 |
nizarus | next | 23:25 |
adn | #### DIAPO n° 10 #### | 23:26 |
adn | pour la formation, on va supprimer plusieurs fichiers inutiles | 23:26 |
adn | je vous recommande, si vous retravaillez cette formation plus tard, de lire le contenu de ces fichiers pour comprendre ce à quoi ils servent | 23:27 |
adn | on saute cette lecture, pour gagner du temps | 23:27 |
adn | rm -f debian/{democratie.cron.d.ex,democratie.default.ex,democratie.doc- base.EX,docs,emacsen-install.ex,emacsen-remove.ex,emacsen- startup.ex,init.d.ex,manpage.1.ex,manpage.sgml.ex,manpage.xml.ex,menu.ex,postins t.ex,postrm.ex,preinst.ex,prerm.ex,README.Debian,README.source,watch.ex} | 23:27 |
adn | pour gagner du temps également, j'ai préparé une page de manuel pour le programme | 23:28 |
adn | disponible sur http://adn.diwi.org/debian/classroom/package/upstream/democratie.1 | 23:28 |
adn | il faut la mettre dans le dossier debian/ | 23:28 |
adn | par exemple avec la commande "wget -O debian/democratie.1 | 23:28 |
adn | http://adn.diwi.org/debian/classroom/package/upstream/democratie.1" | 23:28 |
adn | sur la même ligne, pardon | 23:28 |
adn | 1:28 adn@wahe /tmp/DebPackaging/democratie-0.1% wget -O debian/democratie.1 http://adn.diwi.org/debian/classroom/package/upstream/democratie.1 | 23:28 |
adn | on a également besoin d'indiquer pour plus tard la liste des pages de manuel disponibles dans le fichier debian/democratie.manpages | 23:29 |
adn | je l'ai préparé en avance : récupérez-le sur http://adn.diwi.org/debian/classroom/package/upstream/democratie.manpages | 23:30 |
adn | 1:28 adn@wahe /tmp/DebPackaging/democratie-0.1% wget -O debian/democratie.manpages http://adn.diwi.org/debian/classroom/package/upstream/democratie.manpages | 23:30 |
adn | questions ? problèmes ? | 23:30 |
nizarus | adn, le fichier debian/democratie.manpages n'existe pas il faut le créer ? | 23:31 |
adn | tu peux le télécharger directement | 23:31 |
adn | ou sinon tu le crées, comme tu veux | 23:31 |
adn | 1:30 adn@wahe /tmp/DebPackaging/democratie-0.1% cat debian/democratie.manpages | 23:31 |
adn | debian/democratie.1 | 23:31 |
nizarus | il y a des personnes qui n'ont pas pu avoir le dossier debian quelles sont les sources d'erreurs possibles ? | 23:32 |
adn | peut-être qu'ils n'ont pas mis "s" quand dh_make a demandé | 23:32 |
adn | Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs? | 23:33 |
adn | [s/i/m/l/k/n/b] s | 23:33 |
nizarus | comment on peut rattraper ça ? | 23:33 |
adn | lancer à nouveau la commande "dh_make -f ../democratie-0.1.tar.bz2" | 23:34 |
adn | mais avant, s'assurer qu'on est bien dans le dossier democratie-0.1/ | 23:34 |
adn | pour vérifier, on lance la comme "pwd" | 23:34 |
adn | et ça doit se terminer par "democratie-0.1/" | 23:34 |
nizarus | [QUESTION] Les man pages doivent avoir un format particulier ? | 23:34 |
adn | par "/democratie-0.1", je veux dire (pas "/" à la fin) | 23:34 |
adn | par exemple, chez moi : | 23:35 |
adn | 1:33 adn@wahe /tmp/DebPackaging/democratie-0.1% pwd | 23:35 |
adn | /tmp/DebPackaging/democratie-0.1 | 23:35 |
adn | oui, les man pages ont un format particulier | 23:35 |
adn | le format des fichiers .roff | 23:35 |
adn | next | 23:36 |
nizarus | next | 23:36 |
adn | (pour compléter la réponse précédente, ouvrez le fichier debian/democratie.1 et vous verrez le format) | 23:37 |
Neo31 | adn on pe revenir a la commande rm ? | 23:37 |
Neo31 | ca n'as pas marcher voila une commande alternative | 23:37 |
Neo31 | cd debian; rm -f democratie.cron.d.ex democratie.default.ex democratie.doc-base.EX docs emacsen-install.ex emacsen-remove.ex emacsen-startup.ex init.d.ex manpage.1.ex manpage.sgml.ex manpage.xml.ex menu.ex postinst.ex postrm.ex preinst.ex prerm.ex README.Debian README.source watch.ex ; cd .. | 23:37 |
adn | Neo31: oui, ma commande est une commande bash et tu dois avoir dash d'installer | 23:37 |
adn | Neo31: que renvoie la commande "echo $SHELL" ? | 23:38 |
Neo31 | bash | 23:38 |
adn | bon, étrange alors :-) | 23:38 |
Neo31 | ca n'as pas marcher chez sarhan aussi | 23:38 |
adn | alors utilisez la commande de Neo31 | 23:38 |
adn | Neo31: je vois le problème, y a des espaces qui se sont rajoutées dans ma commande | 23:39 |
Neo31 | ca a marcher avec Ubuntu 10.04 | 23:39 |
Neo31 | les version plus recentes peuvent utiliser la commande alternative que j'ai donner | 23:40 |
adn | bref, à la fin, il ne reste plus grand chose dans le dossier debian/ | 23:40 |
adn | 1:40 adn@wahe /tmp/DebPackaging/democratie-0.1% ls debian | 23:40 |
adn | changelog compat control copyright democratie.1 democratie.manpages rules* source/ | 23:40 |
adn | #### DIAPO n° 11 #### | 23:41 |
adn | là, c'est un peu descriptif | 23:41 |
Neo31 | adn plusieurs membres on rater la commande, tu peut ralentir un peu pour qu'il ratrappes? | 23:41 |
adn | oui, bien sûr ! | 23:41 |
adn | dites-moi quand vous êtes prêts | 23:42 |
nizarus | go adn | 23:44 |
adn | ok | 23:44 |
adn | #### DIAPO n° 11 #### | 23:44 |
adn | je ne vais pas décrire tous les fichiers du dossier debian/ | 23:44 |
adn | je vais me concentrer sur deux : debian/control et debian/changelog | 23:44 |
adn | le reste, vous avez une description dans la présentation ou alors c'est pas indispensable pour la formation | 23:44 |
adn | 1) le fichier debian/control | 23:45 |
adn | cf. http://paste.debian.net/126796/ | 23:45 |
adn | on voit qu'il est constitué de plus champs de la forme "Champ: valeur" | 23:46 |
adn | et qu'il y a deux blocs de texte | 23:46 |
adn | a) le premier bloc concerne le package source | 23:46 |
adn | Source: democratie <-- c'est le nom du package source | 23:47 |
adn | Maintainer: <-- il y a votre nom et votre adresse e-mail | 23:47 |
adn | Build-Depends: <-- c'est la liste des packages qu'il est nécessaire d'installer pour construire le package | 23:47 |
adn | b) le deuxième bloc concerne le package binaire | 23:48 |
adn | Package: <-- c'est le nom du package binaire | 23:48 |
adn | Architecture: <-- c'est le type d'architecture, ici "any" (au moment de construire le .deb, ce sera remplace par l'architecture de votre processeur) | 23:48 |
adn | Depends: <-- c'est la liste des packages qu'il est nécessaire d'installer pour que votre package s'installe et fonctionne correctement | 23:49 |
adn | le reste, c'est de la description | 23:49 |
nizarus | [QUESTION] quels sont les fichier utiliser pour générer le fichier control | 23:49 |
adn | soit on l'écrit soi-même, si on connaît la liste des champs à mentionner | 23:49 |
adn | soit, comme dans notre cas, on part d'un modèle (celui de dh_make par exemple) | 23:49 |
adn | et dans tous les cas, on complète soi-même | 23:50 |
adn | pour gagner du temps ce soir, on va laisser les fichiers tels quels | 23:50 |
adn | next | 23:50 |
nizarus | next | 23:50 |
adn | #### DIAPO n° 12 #### | 23:50 |
adn | 2) le fichier debian/changelog | 23:51 |
adn | voir http://paste.debian.net/126797/ | 23:52 |
adn | on met les changements apportés par le package | 23:53 |
adn | dans notre cas, "Initial release" et le bug que ça ferme, identifié par son numéro | 23:53 |
adn | qiestions ? | 23:53 |
nizarus | no | 23:53 |
adn | ok, pour gagner du temps, on ne touche pas aux différents fichiers | 23:54 |
adn | tu veux poser la question ? | 23:54 |
nizarus | [QUESTION] Concernant l'architecture, ça change quoi le fait de suivre la voie du CrossCompiling ? | 23:54 |
adn | la question est très large | 23:54 |
adn | on pourra en reparler dans le classroom pour utilisateurs avancés | 23:55 |
adn | parce qu'il faut installer les programmes nécessaires à la compilation pour d'autres architectures | 23:55 |
adn | next ? | 23:55 |
nizarus | no | 23:55 |
adn | #### DIAPO n° 13 #### | 23:56 |
adn | le moment tant attendu | 23:56 |
adn | on lance la commande "dpkg-buildpackage -uc -us" | 23:56 |
adn | et on laisse se faire la construction du package | 23:56 |
adn | ça se termine avec l'affichage suivant : | 23:57 |
adn | dh_builddeb | 23:57 |
adn | dpkg-deb : construction du paquet « democratie » dans « ../democratie_0.1-1_amd64.deb ». | 23:57 |
adn | dpkg-genchanges >../democratie_0.1-1_amd64.changes | 23:57 |
adn | dpkg-genchanges: inclusion du code source original dans l'envoi (« upload ») | 23:57 |
adn | dpkg-source --after-build democratie-0.1 | 23:57 |
adn | dpkg-buildpackage: envoi complet (inclusion du code source d'origine) | 23:57 |
adn | et le dossier parent contient ce qui suit : | 23:57 |
adn | 1:57 adn@wahe /tmp/DebPackaging/democratie-0.1% ls .. | 23:57 |
adn | democratie-0.1/ democratie_0.1-1_amd64.deb democratie_0.1-1.dsc democratie-0.1.tar.bz2 | 23:57 |
adn | democratie_0.1-1_amd64.changes democratie_0.1-1.debian.tar.gz democratie_0.1.orig.tar.bz2 | 23:57 |
adn | questions ? dépannage ? | 23:57 |
adn | pour les dépendances manquantes, c'est que vous n'avez pas installé autotools-dev et dpkg-dev | 23:58 |
adn | comme indiqué précédemment | 23:58 |
adn | sudo apt-get install autotools-dev dpkg-dev | 23:59 |
Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!