#ubuntu-tn-classroom 2011-08-12 <adn> on sait jamais, que je n'oublie pas ;-) <nizarus> :) * 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) ***|| #ubuntu-tn-classroom 2011-08-16 <sarhan> rejoignez aussi #ubuntu-tn-classroom-chat pour laissez le log ici clair, les questions seront la bas <N00B_> le lien de tÃ©lechargement ne contient que la version 11.04 mais ils m'ont dit que c po stable donc ou je peu trouver les autres versions <sarhan> N00B_, posez les questions sur #ubuntu-tn-classroom-chat #ubuntu-tn-classroom 2011-08-18 <tr0xan> ya 7asra <sarhan> ya bou galb 7atta houni jey tfloodi <tr0xan> j'ai assistÃ© au premier cours ici <tr0xan> C++ <tr0xan> avec mawale et AliBB <tr0xan> et nizar <tr0xan> win ritni nefloodi? <tr0xan> oO <sarhan> fi launchpad <tr0xan> tekdheb maritnich nefloodi <tr0xan> floodit 9bal ma enty tji <sarhan> nektheb? -.- <sarhan> ena elghalet eli na7ki m3ak ! <tr0xan> miselech <tr0xan> bon sarhan <tr0xan> Ã vrai dire hani jey <tr0xan> taw nkalmek na3mlou 9ahwa <sarhan_> ping adn <adn> pong <sarhan> ici vous expliquez le cours <adn> on m'a expliquÃ© qu'il y avait -classroom et -classroom-chat <adn> tu peux me tutoyer :-) <sarhan> personne n'aura le droit de parler sauf vous <adn> j'ai mÃªme pas 30 ans :-) <sarhan> moi j'ai 16 donc :D <adn> tbarkallah ! <adn> l'avenir, c'est toi ! <sarhan> donc les autres seront sur #ubuntu-tn-classroom-chat <sarhan> ils pourront discuter et poser les questions la bas <adn> je reprends vite fait la charte graphique de ma prÃ©sentation histoire de plus y toucher demain <sarhan> et les question seront retrensmise par une seule paersonne ici <adn> sarhan: tu touches un peu sur ubuntu ? <adn> je veux dire le packaging, tu y connais un peu ? <sarhan> non <adn> donc ici Ã§a va Ãªtre +m <sarhan> j'ai suivi un tuto une fois <adn> et moi je serai +v ? <sarhan> adn, exactement <adn> ok <sarhan> les question seront de la forme Question: <sarhan> test <sarhan> test #ubuntu-tn-classroom 2011-08-19 <ekko> bonsoir Ã tous <sarhan> bonsoir ekko <sarhan> pout les classroom il faudra utiliser le canal #ubuntu-tn-classroom-chat pour discuter <Miro19> yeddkom <Malek> bsr <k3nz0> Malek cc <Malek> bsr <Malek> merci Neo31 pour votre aide * 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 <adn> test <adn> bonsoir Ã toutes <adn> bonsoir Ã tous <adn> merci d'avoir rÃ©pondu prÃ©sents Ã l'invitation de la Team Ubuntu Tunisie <adn> Ubuntu Team qui a eu la gentillesse de me proposer d'animer un classroom sur le packaging <adn> alors que je suis dÃ©veloppeur Debian et que je n'utilise pas Ubuntu <adn> mais aprÃ¨s tout, Debian et Ubuntu sont de la mÃªme famille ;-) <adn> et le systÃ¨me de packaging pour les deux fonctionne exactement de la mÃªme maniÃ¨re <adn> c'est d'ailleurs ce qui fait la force de ces deux distributions ! <nizarus> on te remercie aussi d'avoir accepter d'animer ce classroom malgrÃ© que tu es en vacances <adn> le plaisir est pour moi <adn> et j'espÃ¨re que la prÃ©sentation sera utile et intÃ©ressera les participants, qu'ils soient Tunisiens ou non <adn> et que cela leur donnera l'envie de contribuer Ã Debian et Ubuntu <adn> en corrigeant des bugs, en ajoutant des nouveaux packages ! <adn> en somme, en participant Ã ces formidables projets de logiciels libres <adn> les infos utiles relatives Ã cette prÃ©sentation sont dans le topic <adn> vous pouvez poser toutes les questions que vous voulez sur #ubuntu-tn-classroom-chat <adn> arrÃªtez-moi si je vais trop vite <adn> ou si quelque chose n'est pas clair <adn> pour vous aider Ã suivre, la prÃ©sentation que prÃ©parÃ©e se trouve sur http://bit.ly/o8OX9Q <adn> pour faire disparaÃ®tre les messages de join/part/quit, http://i.clintecker.com/disable-irc-msgs.html <adn> ou encore http://wiki.xkcd.com/irc/Hide_join_part_messages (pour les utilisateurs de pidgin) <nizarus> adn, concentre toi sur le classroom on s'occupe du reste :) <adn> ok <adn> faites-moi signe sur l'autre chan que vous avez la prÃ©sentation <adn> et on passe Ã la : <adn> #### DIAPO nÂ° 2 #### <adn> pour pouvoir tirer le meilleur de cette prÃ©sentation, il vaut mieux avoir une distribution Debian, Ubuntu ou dÃ©rivÃ©e <adn> qui fonctionne avec des packages .deb :-) <adn> sinon, c'est pas grave, mais vous devrez vous contenter de la thÃ©orie <adn> pour ceux qui ont une distribution Debian, je vous recommande de suivre pas Ã pas les commandes que je vous proposerai <adn> ce sont des instructions de ligne de commande ("shell") basique <adn> s <adn> a priori, on ne va pas utiliser beaucoup plus que les commandes : <adn> ls (lister le contenu d'un dossier, comme "dir" dans MS-DOS) <adn> cd (aller dans un dossier) <adn> et quelques programmes spÃ©cifiques faits pour crÃ©er un package <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 <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 <adn> parfois il faut installer un autre programme avant pour que Ã§a fonctionne (par exemple Java, .net, etc.) <adn> une distribution offre une commande qui installe le programme qu'on veut en s'occupant du reste <adn> par exemple, je veux installer xchat <adn> sous Debian, on utilise la commande apt-get (APT = Advanced Packaging Tool) et on dit : <adn> apt-get install xchat <adn> il se dÃ©brouille pour trouver la derniÃ¨re version xchat disponible, la tÃ©lÃ©charger, l'installer, la configurer <nizarus> sous ubuntu il faut la prÃ©cÃ©der avec sudo <adn> et comme par miracle, l'icÃ´ne apparaÃ®t <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 <adn> #### DES QUESTIONS ? <nizarus> [QUESTION]Lequel des deux est meilleur apt ou aptitude et pourquoi? <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 <adn> selon les Ã©poques, l'un ou l'autre Ã©tait Ã la mode, en fonction de plusieurs critÃ¨res <adn> - la facilitÃ© d'utilisation (aptitude proposait une forme d'interface graphique) <adn> propose, je veux dire, pas proposait (aptitude existe toujours) <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) <adn> - la rapiditÃ© d'exÃ©cution (apt-get Ã©tait plus rapide) <adn> - la robustesse des mises Ã jour et la rÃ©solution des conflits entre packages installÃ©s <adn> pour lenny, aptitude Ã©tait recommandÃ© <adn> (Debian Lenny, je veux dire) <adn> depuis Debian Squeeze (la version sortie en fÃ©vrier 2011), on recommence Ã recommander apt-get <adn> en fait, c'est un dÃ©bat vieux comme le monde, un peu comme ViM vs Emacs <adn> une question de mode <adn> une question d'habitude <adn> une question de communautÃ© qui dÃ©veloppe de nouvelles fonctionnalitÃ©s <adn> mais les deux sont utilisables et utilisÃ©s <adn> faites votre choix en fonction de ce que vous prÃ©fÃ©rez <adn> une autre question ? <nizarus> no <adn> ok <adn> #### DIAPO nÂ° 3 #### <adn> je vais aller vite sur celle-lÃ :-) <adn> en gros, quand j'Ã©tais petit (16 ou 17 ans), l'Ã©tÃ©, y avait pas le climatiseur Ã la maison Ã La Mornaguia <adn> je m'ennuyais en juillet et aoÃ»t, et j'ai voulu tester d'installer Linux <adn> puis j'ai eu peur de perdre des donnÃ©es, donc j'ai laissÃ© tomber <adn> (c'Ã©tait en 1999, je pense) <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 <adn> dans cette association, tous les serveurs Ã©taient sous Linux et plus prÃ©cisÃ©ment sous Debian <adn> Ã§a a Ã©tÃ© pour moi l'occasion de dÃ©couvrir Linux, de l'installer, de l'utiliser <adn> pendant l'Ã©tÃ© 2004, en stage, je m'ennuyais un peu (normal, en stage...) <adn> alors j'ai commencÃ© Ã me renseigner sur la maniÃ¨re dont fonctionne un package Debian <adn> je me suis arrÃªtÃ© trÃ¨s vite - Ã§a m'avait l'air compliquÃ© ! <adn> et je me suis mis Ã la traduction ;-) * Neo31 rappel au participants qu'ils peuvent rejoindre le channel #ubuntu-tn-classroom-chat pour poser leurs questions <adn> de fil en aiguille, pour traduire, on a besoin de comprendre de plus en plus de trucs techniquÃ©s <adn> donc quelques mois plus tard, j'ai packagÃ© p7zip pour Debian <adn> pour le reste, c'est sur la diapo, on en discutera aprÃ¨s, si certains veulent :-) <adn> Ã part "c'est bon, il a fini de raconter sa vie ?", est-ce qu'il y a des questions ? ;-) <nizarus> no <adn> #### DIAPO nÂ° 4 #### <adn> supposons qu'on ait trouvÃ© un programme sympa <adn> avant de le packager, y a plusieurs choses Ã se demander <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 <adn> => trouver ce logiciel libre et l'utiliser Ã la place ! <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 <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 ! <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 <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 <adn> Questions ? <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?! <adn> de deux choses l'une : <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 <adn> 2) s'il n'est pas Ã jour, contactez le maintainer officiel et proposez-lui de l'aider <adn> par exemple avec des patches de mise Ã jour de son package <adn> ou avec un package mis Ã jour par vos soins <adn> est-ce que la rÃ©ponse est satisfaisante ? <adn> si oui, question ou diapo suivante <nizarus> adn, go <adn> ok, je me rends compte que j'ai commentÃ© la diapo 5 et non la 4 <adn> pour la 4, c'est clair, tout est dedans <adn> on rentre donc dans le vif du sujet <adn> #### DIAPO nÂ° 6 #### <adn> alors, un package, en fait, Ã§a peut faire rÃ©fÃ©rence Ã plusieurs choses <adn> soit le package binaire (binary package), c'est le fichier .deb <adn> soit le package source (source package), dont on parlera Ã la diapo suivante <adn> le fichier .deb contient plusieurs choses <adn> 1) les fichiers Ã installer <adn> pour faire fonctionner le programme (fichiers de configuration, images, sons, programmes) <adn> 2) des informations complÃ©mentaires mais nÃ©anmoins nÃ©cessaires <adn> par exemple la liste des dÃ©pendances, c'est-Ã -dire les packages qu'il faut obligatoirement installer pour que Ã§a fonctionne <adn> par exemple, quand j'installe xchat ou pidgin, je suis obligÃ© d'avoir une interface graphique <adn> donc je dois avoir au prÃ©alable installÃ© X.org <adn> voire Gnome, KDE, XFCE ou autre... <adn> je vous propose de tÃ©lÃ©charger le fichier suivant : <adn> http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb <adn> enregistrez-le quelque part <adn> lancez le terminal <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? <adn> et lancez la commande "ar x democratie_0.1-1_amd64.deb" <adn> (je rÃ©pondrai Ã la question juste aprÃ¨s la manip) <adn> si vous faites "ls" ensuite, vous devez voir quelque chose comme ce qui suit : <adn> 0:45 adn@wahe /tmp/DebPackaging% wget http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb <adn> --2011-08-20 00:45:17-- http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1_amd64.deb <adn> 2011-08-20 00:45:17 (369 MB/s) - Â«democratie_0.1-1_amd64.debÂ» sauvegardÃ© [4808/4808] <adn> 0:45 adn@wahe /tmp/DebPackaging% ar x democratie_0.1-1_amd64.deb <adn> 0:45 adn@wahe /tmp/DebPackaging% ls <adn> control.tar.gz data.tar.gz debian-binary democratie_0.1-1_amd64.deb <adn> tapez ensuite la commande "tar tvzf data.tar.gz" <adn> vous verrez comment c'est organisÃ© <adn> l'archive data.tar.gz contient en effet les fichiers Ã installer, selon l'arborescence de destination prÃ©vue <adn> drwxr-xr-x root/root 0 2011-08-12 21:54 ./ <adn> drwxr-xr-x root/root 0 2011-08-12 21:54 ./usr/ <adn> -rwxr-xr-x root/root 4904 2011-08-12 21:54 ./usr/bin/democratie <adn> -rw-r--r-- root/root 161 2011-08-12 21:49 ./usr/share/doc/democratie/changelog.Debian.gz <adn> etc. <adn> vous pouvez lancer la commande "tar tvzf control.tar.gz" <adn> vous verrez qu'il contient des informations sur le package <adn> 0:48 adn@wahe /tmp/DebPackaging% tar tvzf control.tar.gz <adn> drwxr-xr-x root/root 0 2011-08-12 21:54 ./ <adn> -rw-r--r-- root/root 357 2011-08-12 21:54 ./control <adn> -rw-r--r-- root/root 270 2011-08-12 21:54 ./md5sums <adn> par exemple, le fichier control contient les Ã©lÃ©ments suivants <adn> Package: democratie <adn> Version: 0.1-1 <adn> Architecture: amd64 <adn> Maintainer: Mohammed Adnene Trojette <lauren32@example.com> <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? <adn> en fait, y a deux catÃ©gories de packages, sous Ubuntu <adn> 1) les packages maintenus sÃ©parÃ©ment par les dÃ©veloppeurs Ubuntu et par les dÃ©v Debian <adn> 2) les packages simplement synchronisÃ©s par Ubuntu avec Debian instable <adn> pour la catÃ©gorie 2), il faut attendre que la synchronisation soit lancÃ©e <adn> ce qui est systÃ©matiquement peu avant les releases Ubuntu <adn> pour la catÃ©gorie 1), il faut attendre que le dÃ©v Ubuntu se bouge les fesses ;-) <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) <adn> si la rÃ©ponse est suffisamment claire, question ou diapo suivante ? <nizarus> [QUESTION] Un patch de mise Ã jour, c'est un script Shell qui intervient sur le fichier ou bien autre chose ? <adn> le patch de mise Ã jour, c'est un fichier texte qu'on passe Ã la commande "patch" <adn> qui se trouve dans le package du mÃªme nom <adn> c'est le rÃ©sultat de l'exÃ©cution de la commande "diff" entre deux fichiers ou deux rÃ©pertoires <adn> par exemple, je vais crÃ©er deux fichiers : fichier-A et fichier-B <adn> fichier-A contient "A" et fichier-B contient "B" <adn> 0:54 adn@wahe /tmp/DebPackaging% echo A > fichier-A && echo B > fichier-B <adn> 0:55 adn@wahe /tmp/DebPackaging% diff -u fichier-A fichier-B <adn> --- fichier-A 2011-08-20 00:55:23.000000000 +0200 <adn> +++ fichier-B 2011-08-20 00:55:23.000000000 +0200 <adn> @@ -1 +1 @@ <adn> -A <adn> +B <adn> le patch, c'est le fichier texte qui contient les 5 derniÃ¨res lignes <adn> qui dit "entre le fichier-A et le fichier-B, Ã la ligne 1, on enlÃ¨ve A et on rajoute B" <adn> on applique ce patch avec la commande /usr/bin/patch <adn> 0:57 adn@wahe /tmp/DebPackaging% diff -u fichier-A fichier-B > fichier-patch <adn> zsh: exit 1 diff -u fichier-A fichier-B > fichier-patch <adn> 0:57 adn@wahe /tmp/DebPackaging% cat fichier-patch|patch <adn> patching file fichier-A <adn> B <adn> 0:57 adn@wahe /tmp/DebPackaging% cat fichier-A <adn> la suite ? <nizarus> adn, quand tu termine la rÃ©ponse tape "next" <adn> ok :-) <nizarus> [QUESTION] On peut essayer de crÃ©er une version x86 du package <adn> next (comme dans l'Ã©mission du mÃªme nom) <adn> en fait, vous verrez Ã la fin de la prÃ©sentation <adn> ceux qui ont une machine x86 auront crÃ©Ã© une version x86 <adn> et ceux qui ont une machine amd64 auront crÃ©Ã© une version amd64 <adn> cela dÃ©pend de votre architecture <adn> next <nizarus> [QUESTION] pourquoi le paquet est en arch amd64 (ou any) au lieu de all? <adn> parce qu'il contient des fichiers qui ne peuvent Ãªtre exÃ©cutÃ©s que sous une machine amd64 <adn> dans le fichier control du paquet binaire, comme c'est un package amd64, c'est indiquÃ© Architecture: amd64 <adn> mais dans le package source, on dira Architecture: any <adn> et c'est les serveurs de compilation automatique (autobuilders) qui, selon leur architecture, crÃ©eront les packages correspondants <adn> avec le champ Architecture qui va bien <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 <adn> et non any <adn> next <nizarus> [QUESTION] n'est il pas plus pratique de crÃ©er des packages ALL pour Ã©viter la dÃ©pendace de l'architecture? <adn> en fait, il suffit qu'un seul fichier du package dÃ©pende de l'architecture pour justifier un package "Architecture: any" <adn> imaginons que mon programme en C, compilÃ© avec un compilateur pour un processeur amd64, se retrouve dans un package "Architecture: all" <adn> alors un utilisateur sous x86 va le tÃ©lÃ©charger <adn> et, au moment de lancer la commande, il va y avoir une erreur <adn> parce que son processeur x86 ne peut exÃ©cuter des programmes compilÃ©s pour amd64 <adn> next <nizarus> no <adn> ok, diapo suivante alors ? <adn> #### DIAPO nÂ° 7 #### <nizarus> go ahead adn (and faster) <adn> le package source est constituÃ© de trois fichiers <adn> 1) le code source du programme original <adn> (fichier .orig.tar.bz2 ou orig.tar.gz...) <adn> 2) l'ensemble des patches Ã appliquer Ã ce code source pour en faire un package Debian <adn> (fichier .debian.tar.gz ou .diff.gz dans les anciennes versions) <adn> 3) le fichier de description du package <adn> (fichier .dsc) <adn> questions ? <nizarus> [QUESTION] Que veut dire le terme description signÃ©e? <adn> pour authentifier un package, on demande aux dÃ©veloppeurs de signer le fichier description avec leur clÃ© GPG <adn> ce fichier .dsc contient en particulier les identifiants des fichiers qui constituent le package source <adn> Ã savoir la somme md5 ou SHA du fichier .orig.tar.bz2 et du fichier .debian.tar.gz <adn> si on regarde dans le fichier dispo sur http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc <adn> 0:57 adn@wahe /tmp/DebPackaging% wget http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc <adn> --2011-08-20 01:08:12-- http://adn.diwi.org/debian/classroom/package/result/democratie_0.1-1.dsc <adn> 2011-08-20 01:08:12 (202 MB/s) - Â«democratie_0.1-1.dscÂ» sauvegardÃ© [810/810] <adn> 1:08 adn@wahe /tmp/DebPackaging% cat *dsc <adn> Source: democratie <adn> Binary: democratie <adn> Architecture: any <adn> Version: 0.1-1 <adn> Maintainer: Mohammed Adnene Trojette <lauren32@example.com> <adn> Checksums-Sha256: d8eb834371c367f2bcdb5282359f0d8b2fb1417011b79c4ad9229d9e8e642abf 58239 democratie_0.1.orig.tar.bz2 b166468099ceec9891ea08c6c72b0265676003c33596107842be0b2195f4799d 2522 democratie_0.1-1.debian.tar.gz <adn> next <nizarus> no <adn> #### DIAPO nÂ° 8 #### <adn> je vous propose d'installer les packages indiquÃ©s <adn> sudo apt-get install dpkg-dev dh-make devscripts build-essentials autotools-dev <adn> questions ? <nizarus> next <adn> #### DIAPO nÂ° 9 #### <adn> crÃ©ez un dossier de travail (par exemple dans votre home) <adn> allez dedans <Neo31> correction : <Neo31> sudo apt-get install dpkg-dev dh-make devscripts build-essential autotools-dev <adn> oui, merci ! <Neo31> build-essential << sans S a la fin <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 <adn> que l'on souhaite packager <Neo31> un ecran avec le titre "Postfix configuration va appraitre" <Neo31> on garde le choix par defaut <Neo31> Internet site <Neo31> pour cela on appui sur la touche "fleche droit" pour selectionner le bouton OK <Neo31> puis on appui sur la touche entree <adn> (merci) <Neo31> encore on appuis sur entree sur l'ecran suivant <Neo31> installation en cours <adn> (dis-moi quand je peux continuer) <nizarus> go ahead adn <adn> on dÃ©compresse l'archive contenant le code source <adn> 1:12 adn@wahe /tmp/DebPackaging% tar xvjf democratie-0.1.tar.bz2 <adn> democratie-0.1/ <adn> democratie-0.1/Makefile.am <adn> democratie-0.1/install-sh <adn> democratie-0.1/configure <adn> (etc.) <Neo31> installation done <adn> on va dans le dossier democratie-0.1/ <adn> et on lance la commande dh_make pour crÃ©er le dossier debian/ <nizarus> Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch? <nizarus> [s/i/m/l/k/n] <adn> 1:15 adn@wahe /tmp/DebPackaging/democratie-0.1% dh_make -f ../democratie-0.1.tar.bz2 <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 <adn> on choisit s, pour "single binary" <adn> Maintainer name : Mohammed AdnÃ¨ne Trojette <adn> Email-Address : lauren32@example.com <adn> Date : Sat, 20 Aug 2011 01:16:02 +0200 <adn> Package Name : democratie <adn> Version : 0.1 <adn> License : blank <adn> Using dpatch : no <adn> Type of Package : Single <adn> Hit <enter> to confirm: <adn> et on valide avec la touche entrÃ©e <adn> si on fait "ls" <adn> on voit qu'un nouveau dossier debian/ est apparu <adn> 1:17 adn@wahe /tmp/DebPackaging/democratie-0.1% ls <adn> aclocal.m4 config.h.in configure* configure.ac debian/ depcomp* install-sh* Makefile.am Makefile.in missing* src/ <adn> questions ? <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? <adn> en fait, la question est posÃ©e Ã l'envers <adn> pour constuire correctement le paquet, on a besoin de build-essential <adn> qui est un package qui dÃ©pend en particulier du package "make", dont on a besoin <adn> 1:17 adn@wahe /tmp/DebPackaging/democratie-0.1% apt-cache show build-essential <adn> Depends: libc6-dev | libc-dev, gcc (>= 4:4.4.3), g++ (>= 4:4.4.3), make, dpkg-dev (>= 1.13.5) <adn> il dÃ©pend Ã©galement de gcc <adn> dont on a Ã©galement besoin <adn> dpkg-dev contient des outils Ã©galement nÃ©cessaires <adn> dh-make, on vient de l'utiliser ;-) <adn> devscripts contient plein de programmes utiles <adn> (j'ai mis entre parenthÃ¨ses, sur la diapo 8, les programmes qui rendent nÃ©cessaire l'installation de ces dÃ©pendances) <adn> est-ce que la rÃ©ponse est claire ? <nizarus> [QUESTION] Peux-tu expliciter la diffÃ©rence entre le "paquet .deb" produit par la commande "make checkinstall" et .deb classique ? <adn> la commande make checkinstall dÃ©pend probablement du code source du programme <adn> il faudrait lire le fichier Makefile pour savoir ce qu'elle fait <adn> techniquement, ce sont deux packages Debian dont il ne devrait pas y avoir de diffÃ©rence <adn> en pratique, rien ne garantit que l'auteur du Makefile ait respectÃ© les standards des packages Debian <adn> next <nizarus> [QUESTION] La diffÃ©rence entre les [s/i/m/l/k/n] nous Ã©clairer la chose ? <adn> single package : on crÃ©e un unique package .deb <adn> c'est le "s" <adn> m = multiple package : parfois, on veut plusieurs packages <adn> un avec la documentation <adn> un avec la musique <adn> un avec les programmes <adn> un spÃ©cifique Ã Gnome <adn> un autre spÃ©cifique Ã KDE <adn> Ã partir du mÃªme code source <adn> l = library : par exemple le package de libxml <adn> k = kernel module <adn> en fait, dh_make propose des modÃ¨les de dossiers debian/ adaptÃ©s au type de package souhaitÃ© <adn> pour cette formation, on fait un package tout simple <adn> next <nizarus> next <adn> #### DIAPO nÂ° 10 #### <adn> pour la formation, on va supprimer plusieurs fichiers inutiles <adn> je vous recommande, si vous retravaillez cette formation plus tard, de lire le contenu de ces fichiers pour comprendre ce Ã quoi ils servent <adn> on saute cette lecture, pour gagner du temps <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} <adn> pour gagner du temps Ã©galement, j'ai prÃ©parÃ© une page de manuel pour le programme <adn> disponible sur http://adn.diwi.org/debian/classroom/package/upstream/democratie.1 <adn> il faut la mettre dans le dossier debian/ <adn> par exemple avec la commande "wget -O debian/democratie.1 <adn> http://adn.diwi.org/debian/classroom/package/upstream/democratie.1" <adn> sur la mÃªme ligne, pardon <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 <adn> on a Ã©galement besoin d'indiquer pour plus tard la liste des pages de manuel disponibles dans le fichier debian/democratie.manpages <adn> je l'ai prÃ©parÃ© en avance : rÃ©cupÃ©rez-le sur http://adn.diwi.org/debian/classroom/package/upstream/democratie.manpages <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 <adn> questions ? problÃ¨mes ? <nizarus> adn, le fichier debian/democratie.manpages n'existe pas il faut le crÃ©er ? <adn> tu peux le tÃ©lÃ©charger directement <adn> ou sinon tu le crÃ©es, comme tu veux <adn> 1:30 adn@wahe /tmp/DebPackaging/democratie-0.1% cat debian/democratie.manpages <adn> debian/democratie.1 <nizarus> il y a des personnes qui n'ont pas pu avoir le dossier debian quelles sont les sources d'erreurs possibles ? <adn> peut-Ãªtre qu'ils n'ont pas mis "s" quand dh_make a demandÃ© <adn> Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs? <adn> [s/i/m/l/k/n/b] s <nizarus> comment on peut rattraper Ã§a ? <adn> lancer Ã nouveau la commande "dh_make -f ../democratie-0.1.tar.bz2" <adn> mais avant, s'assurer qu'on est bien dans le dossier democratie-0.1/ <adn> pour vÃ©rifier, on lance la comme "pwd" <adn> et Ã§a doit se terminer par "democratie-0.1/" <nizarus> [QUESTION] Les man pages doivent avoir un format particulier ? <adn> par "/democratie-0.1", je veux dire (pas "/" Ã la fin) <adn> par exemple, chez moi : <adn> 1:33 adn@wahe /tmp/DebPackaging/democratie-0.1% pwd <adn> /tmp/DebPackaging/democratie-0.1 <adn> oui, les man pages ont un format particulier <adn> le format des fichiers .roff <adn> next <nizarus> next <adn> (pour complÃ©ter la rÃ©ponse prÃ©cÃ©dente, ouvrez le fichier debian/democratie.1 et vous verrez le format) <Neo31> adn on pe revenir a la commande rm ? <Neo31> ca n'as pas marcher voila une commande alternative <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 .. <adn> Neo31: oui, ma commande est une commande bash et tu dois avoir dash d'installer <adn> Neo31: que renvoie la commande "echo $SHELL" ? <Neo31> bash <adn> bon, Ã©trange alors :-) <Neo31> ca n'as pas marcher chez sarhan aussi <adn> alors utilisez la commande de Neo31 <adn> Neo31: je vois le problÃ¨me, y a des espaces qui se sont rajoutÃ©es dans ma commande <Neo31> ca a marcher avec Ubuntu 10.04 <Neo31> les version plus recentes peuvent utiliser la commande alternative que j'ai donner <adn> bref, Ã la fin, il ne reste plus grand chose dans le dossier debian/ <adn> 1:40 adn@wahe /tmp/DebPackaging/democratie-0.1% ls debian <adn> changelog compat control copyright democratie.1 democratie.manpages rules* source/ <adn> #### DIAPO nÂ° 11 #### <adn> lÃ , c'est un peu descriptif <Neo31> adn plusieurs membres on rater la commande, tu peut ralentir un peu pour qu'il ratrappes? <adn> oui, bien sÃ»r ! <adn> dites-moi quand vous Ãªtes prÃªts <nizarus> go adn <adn> ok <adn> #### DIAPO nÂ° 11 #### <adn> je ne vais pas dÃ©crire tous les fichiers du dossier debian/ <adn> je vais me concentrer sur deux : debian/control et debian/changelog <adn> le reste, vous avez une description dans la prÃ©sentation ou alors c'est pas indispensable pour la formation <adn> 1) le fichier debian/control <adn> cf. http://paste.debian.net/126796/ <adn> on voit qu'il est constituÃ© de plus champs de la forme "Champ: valeur" <adn> et qu'il y a deux blocs de texte <adn> a) le premier bloc concerne le package source <adn> Source: democratie <-- c'est le nom du package source <adn> Maintainer: <-- il y a votre nom et votre adresse e-mail <adn> Build-Depends: <-- c'est la liste des packages qu'il est nÃ©cessaire d'installer pour construire le package <adn> b) le deuxiÃ¨me bloc concerne le package binaire <adn> Package: <-- c'est le nom du package binaire <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) <adn> Depends: <-- c'est la liste des packages qu'il est nÃ©cessaire d'installer pour que votre package s'installe et fonctionne correctement <adn> le reste, c'est de la description <nizarus> [QUESTION] quels sont les fichier utiliser pour gÃ©nÃ©rer le fichier control <adn> soit on l'Ã©crit soi-mÃªme, si on connaÃ®t la liste des champs Ã mentionner <adn> soit, comme dans notre cas, on part d'un modÃ¨le (celui de dh_make par exemple) <adn> et dans tous les cas, on complÃ¨te soi-mÃªme <adn> pour gagner du temps ce soir, on va laisser les fichiers tels quels <adn> next <nizarus> next <adn> #### DIAPO nÂ° 12 #### <adn> 2) le fichier debian/changelog <adn> voir http://paste.debian.net/126797/ <adn> on met les changements apportÃ©s par le package <adn> dans notre cas, "Initial release" et le bug que Ã§a ferme, identifiÃ© par son numÃ©ro <adn> qiestions ? <nizarus> no <adn> ok, pour gagner du temps, on ne touche pas aux diffÃ©rents fichiers <adn> tu veux poser la question ? <nizarus> [QUESTION] Concernant l'architecture, Ã§a change quoi le fait de suivre la voie du CrossCompiling ? <adn> la question est trÃ¨s large <adn> on pourra en reparler dans le classroom pour utilisateurs avancÃ©s <adn> parce qu'il faut installer les programmes nÃ©cessaires Ã la compilation pour d'autres architectures <adn> next ? <nizarus> no <adn> #### DIAPO nÂ° 13 #### <adn> le moment tant attendu <adn> on lance la commande "dpkg-buildpackage -uc -us" <adn> et on laisse se faire la construction du package <adn> Ã§a se termine avec l'affichage suivant : <adn> dh_builddeb <adn> dpkg-debÂ : construction du paquet Â«Â democratieÂ Â» dans Â«Â ../democratie_0.1-1_amd64.debÂ Â». <adn> dpkg-genchanges >../democratie_0.1-1_amd64.changes <adn> dpkg-genchanges: inclusion du code source original dans l'envoi (Â«Â uploadÂ Â») <adn> dpkg-source --after-build democratie-0.1 <adn> dpkg-buildpackage: envoi complet (inclusion du code source d'origine) <adn> et le dossier parent contient ce qui suit : <adn> 1:57 adn@wahe /tmp/DebPackaging/democratie-0.1% ls .. <adn> democratie-0.1/ democratie_0.1-1_amd64.deb democratie_0.1-1.dsc democratie-0.1.tar.bz2 <adn> democratie_0.1-1_amd64.changes democratie_0.1-1.debian.tar.gz democratie_0.1.orig.tar.bz2 <adn> questions ? dÃ©pannage ? <adn> pour les dÃ©pendances manquantes, c'est que vous n'avez pas installÃ© autotools-dev et dpkg-dev <adn> comme indiquÃ© prÃ©cÃ©demment <adn> sudo apt-get install autotools-dev dpkg-dev #ubuntu-tn-classroom 2011-08-20 <adn> si c'est bon, on peut vÃ©rifier que le package contient ce qu'il faut avec la commande suivante : <adn> dpkg --contents ../*deb <adn> 1:57 adn@wahe /tmp/DebPackaging/democratie-0.1% dpkg --contents ../*deb <adn> drwxr-xr-x root/root 0 2011-08-20 01:57 ./ <adn> drwxr-xr-x root/root 0 2011-08-20 01:57 ./usr/ <adn> (...) <adn> -rw-r--r-- root/root 765 2011-08-20 01:57 ./usr/share/man/man1/democratie.1.gz <adn> drwxr-xr-x root/root 0 2011-08-20 01:57 ./usr/bin/ <adn> -rwxr-xr-x root/root 4904 2011-08-20 01:57 ./usr/bin/democratie <nizarus> dpkg-deb: error: --contents prend exactement un paramÃ¨tre <nizarus> dpkg --contents ../democratie_0.1-1_amd64.deb <adn> ah, c'est parce que tu es sous x86 et que tu as gardÃ© mon package amd64 ;-) <adn> vÃ©rifie le contenu de ton package Ã toi <adn> dpkg --contents ../democratie_0.1-1_i386.deb <adn> `- nizarus <nizarus> non je suis en amd64 adn <adn> ah, Ã©trange <adn> ls ../*deb <adn> pour ceux qui ont d'autres erreurs, donnez les deux ou trois lignes avant le message d'erreur <adn> qu'on comprenne d'oÃ¹ vient le problÃ¨me <nizarus> [erreur] dpkg-buildpackage: erreur: debian/rules build a produit une erreur de sortie de type 2 <adn> oui, les lignes avant <nizarus> ode --disable-dependency-tracking returned exit code 1 make: *** [build] Erreur 9 dpkg-buildpackage: erreur: debian/rules build a produit une erreur de sortie de type 2 <adn> on saute l'Ã©tape "lintian" (fin de la diapo nÂ° 13) qu'on verra plus en dÃ©tail lors de la formation avanÃ©e <nizarus> [Question] Ã l'installation du paquet la logithÃ©que me dit que mon paquet ne respecte pas les standards de qualitÃ©, quels sont ces standards? <adn> lintian permet de vÃ©rifier que le package respecte les standards Debian Ã©noncÃ©s dans la charte Debian <adn> on en reparlera soit plus tard, soit pendant la formation avancÃ©e <adn> next <nizarus> next <adn> #### DIAPO nÂ° 14 #### <adn> installez le package <adn> avec la commande <adn> si vous Ãªtes sur x86 : sudo dpkg -i ../*86*deb <adn> si vous Ãªtes sur amd64 : sudo dpkg -i ../*64*deb <adn> aprÃ¨s l'installation, relancez un nouveau terminal (ou lancez la commande "$SHELL") <adn> et lancez la commande "democratie -h" <adn> RÃSULTAT : vous avez fait un premier pas dans le packaging ET vers la dÃ©mocratie ;-) <nizarus> [QUESTION] Comment rendre mon packet "indexÃ©" dans la logithÃ©que ? <adn> en fait, il faut crÃ©er un "dÃ©pÃ´t" de packages <adn> et indiquer Ã votre logithÃ¨que l'endroit oÃ¹ se trouve ce dÃ©pÃ´t <adn> je vous propose qu'on en reparle Ã©galement lors de la formation avancÃ©e <adn> next <nizarus> nothing <adn> bon, on s'approche de la fin ! <adn> #### DIAPO nÂ° 15 #### <adn> vous trouverez un rÃ©sumÃ© des commandes qu'on a utilisÃ©es dans ce TP sur la page http://adn.diwi.org/debian/classroom/package/classroom.txt <adn> Neo31 a fait une excellente synthÃ¨se sur http://paste.ubuntu.com/670473/ <adn> #### DIAPO nÂ° 16 #### <adn> voici les rÃ©fÃ©rences incontournables pour savoir : <adn> 1) comment remplir les fichiers du dossier debian/ <adn> 2) comment respecter les standards du packaging selon Debian <adn> c'est aussi une mine d'infos pour rÃ©soudre les problÃ¨mes que vous rencontrez <adn> pour la formation avancÃ©e, je vous demanderai d'avoir rÃ©ussi au moins Ã suivre le mode d'emploi du guide du nouveau maintainer de package <adn> #### CONCLUSION #### <adn> j'espÃ¨re que la formation vous a paru utile <adn> je vous recommande de refaire la formation seuls Ã votre aise <adn> en essayant de remplir par vous-mÃªmes les fichiers du dossier debian/ <adn> en particulier debian/control, debian/changelog, debian/copyright <nizarus> merci adn pour ce classroom consistant <adn> si vous avez des questions, je suis en permanence connectÃ© Ã ce serveur (nickname : adn) <Neo31> Un grand merci a Mr Adnen qui nous a assurer ce classroom :) <adn> mon mail est adn -at- debian (point) org <adn> il me reste Ã vous remercier d'avoir participÃ© aussi nombreux <nizarus> adn, ajoute #ubuntu-tn Ã tes favoris <adn> d'avoir posÃ© des questions trÃ¨s intÃ©ressantes <adn> nizarus: surtout #cullt ;-) <adn> mais pourquoi pas, oui <adn> et il me reste Ã©videmment Ã remercier la Team Ubuntu Tunisie qui a fait un super boulot <adn> de communication, de prÃ©paration de la classroom <adn> d'animation de la classroom <adn> je vous dis Ã bientÃ´t pour une autre classroom et je reste Ã votre disposition tout de suite pour continuer Ã Ã©changer <nizarus> Merci Ã tous fin du classroom, discussion ouverte sur #ubuntu-tn <adn> je suis Ã©galement preneur de vos commentaires pour amÃ©liorer la formation <adn> bonne soirÃ©e et inchallah aÃ¯dkom mabrouk ! <nizarus> test <sarhan> test * Neo31 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 le --/--/-- Ã --h-- (GMT+1) ***|| merci de rejoindre #ubuntu-tn-classroom-chat <Neo31> la presentation "Packaging classroom 11.08.1" faite par Monsieur Mohammed AdnÃ¨ne Trojette, dÃ©veloppeur Debian, est disponible sur https://wiki.ubuntu.com/TunisianTeam/Presentations * 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://irclogs.ubuntu.com/ | |*** Prochain cours le --/--/-- Ã --h-- (GMT+1) ***|| merci de rejoindre #ubuntu-tn-classroom-chat #ubuntu-tn-classroom 2011-08-25 <sarhan> good * 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://irclogs.ubuntu.com/ | |*** Prochain cours le jeudi 25/08/2011 Ã 23h00 (GMT+1) ***|| merci de rejoindre #ubuntu-tn-classroom-chat pour poser vos questions et de telecharger la presentation http://bit.ly/rnNYqQ <sarhan> test test <sarhan> m-5 avant le classroom <sarhan> bonsoir tout le monde ! <sarhan> avant de commencer le classroom je vous invite Ã venir sur #ubuntu-tn-classroom-chat pour discuter et poser vos questions <sarhan> ping geekntuxuser <geekntuxuser> Salut et bienvenue Ã vous tous =) <geekntuxuser> Je demande Ã sarhan d'expliquer comment Ã§a va se passer le truc de l'organisation <geekntuxuser> comment poser des questions et tout <geekntuxuser> go sarhan <sarhan> bon comme je l'ai <sarhan> pour discuter ou poser vos questions il faut aller sur #ubuntu-tn-classroom-chat <sarhan> je m'occupe de retransmettre les questions ici <sarhan> geekntuxuser, go ! <geekntuxuser> D'accord =) <geekntuxuser> Merci sarhan <geekntuxuser> Bon, avant de commencer, je veux dire que l'idÃ©e de proposer un classroom m'est venu aprÃ¨s avoir assister aux 2derniers <geekntuxuser> et ils Ã©taient un succÃ©s <geekntuxuser> et j'espÃ¨re que si quelqu'un de vous se voit en position d'aider et de contribuer qu'il le fasse sans hÃ©siter <geekntuxuser> J'ai choisi de parler du terminal <geekntuxuser> et des commandes Linu <geekntuxuser> x <geekntuxuser> parce que, comme la rÃ©putation en parle, ils sont l'ennemi des nouveaux sur Ubuntu (GNU/Linux en gÃ©nÃ©ral) <geekntuxuser> Donc, avant de commencer <geekntuxuser> je demande <geekntuxuser> Ã tous ceux qui sont sur Windows <geekntuxuser> de tÃ©lÃ©charger le Logiciel Putty <geekntuxuser> http://www.geekntuxuser.com/ubuntu/classroom/putty.exe <geekntuxuser> de l'ouvrir, et de renseigner les informations suivantes : <geekntuxuser> IP : 502.619.2016 <geekntuxuser> Nom du compte : ubuntu <geekntuxuser> et quand on vous demande votre mot de passe, c'est : ubuntu aussi =) <geekntuxuser> pour que tout le monde puisse suivre avec nous <geekntuxuser> C'est bon jusqu'Ã maintenant ? <sarhan> tu peux y aller pas de questions (ils demandent si ton exe est infectÃ© :P ) <geekntuxuser> Lool, sÃ»rement pas :p (:ange:) <geekntuxuser> non sÃ©rieux, ne vous inquiÃ©tez pas =) <geekntuxuser> on passe au premier point de notre formation aujourd'hui, <geekntuxuser> enfaite, on entend souvent : ouvre la console / ouvre le terminal ... <geekntuxuser> avec le temps Ã§a a crÃ©e un genre d'abus de langage <geekntuxuser> ! <geekntuxuser> La console, c'est l'Ã©cran noir (le plus connu, mais on peut intervenir sur les couleurs) avec que du texte dedans <geekntuxuser> (comme indiquÃ© sur la prÃ©sentation) <geekntuxuser> Le terminal par contre, est un programme qui fait une Ã©mulation (ou simulation) d'un console <geekntuxuser> sur l'environnement graphique <geekntuxuser> d'ailleurs, pour entrer en mode console (si vous voulez essayer :p ) * sarhan rappelle que la prÃ©sentation est tÃ©lÃ©chargable ici http://bit.ly/pYg6dY <geekntuxuser> tapez ctrl + alt + Fx(x allant de 1 Ã 6) <geekntuxuser> et pour revenir en mode graphique, vous tapez ctrl + alt + f7 <geekntuxuser> p.s : dans certain cas, on trouve jusqu'Ã 7 consoles noirs + 1 console graphique, donc pour revenir Ã notre environnement graphique on doit taper ctrl + alt + f8 <geekntuxuser> c'est bon jusqu'Ã maintenant ? =) <sarhan> oui tu peux continuer ! <geekntuxuser> Bien =) <geekntuxuser> Donc, nous on s'intÃ©resse plus au terminal qu'Ã la console ! Pourquoi ? <geekntuxuser> Tout simplement parce que c'est plus beau et plus user friendly (regarder mon terminal sur la prÃ©sentation, il est tellement beau :p :p ) <geekntuxuser> regardez* <geekntuxuser> C'est bon ? =) <sarhan> [QUESTION] pour les interfacs graphiques ce peut y aller jusk a F12 max, si on veut avoir plus on fait comment? <geekntuxuser> RÃ©sumons : La console => l'Ã©cran noir avec que du texte sans rien de graphique // Le terminal => c'est le programme qui simule une console mais en mode graphique <sarhan> [QUESTION]Est-ce que le terminal linux est semblable au cmd.exe sous windows? <geekntuxuser> J'ai pas une rÃ©ponse exacte pour cette question, mais il faut configurer le fichier qui s'occupe de la gestion des ttyS <geekntuxuser> pour rÃ©gler le nombre de consoles qu'on peut avoir, toutefois, parler de limites n'est pas appropriÃ©, car il se peut que plus de 100 personnes qui se connectent sur un mÃªme utilisateur utilisant des consoles <geekntuxuser> Pour la deuxiÃ¨me question, Oui, le terminal Linux est semblable au cmd.exe (l'invite de commande) sous windows, Ã§a sert exactement Ã lancer/Ã©crire/exÃ©cuter des commandes <geekntuxuser> Je rectifie une phrase : qui se connectent sur un mÃªme PC <geekntuxuser> Des questions ? =) (essayer de poser des questions visÃ©es , mÃªme les avancÃ©s peuvent participer Ã enrichir le classroom ) <geekntuxuser> essayez* <geekntuxuser> Donc ? :) <sarhan> pas de questions tu peux continuer , je vais mettre les questions Ã fur et Ã mesure! <geekntuxuser> Bien <geekntuxuser> On passe maintenant aux choses plus sÃ©rieuses ! ^^ Ouvrez tous vos terminaux (et pour les windowsiens qu'ils se connectent avec Putty) sarhan fais moi signe quand vous Ãªtes prÃªts =) <sarhan> tu peux y aller ils ont tous ouvert leur terminal ;) <geekntuxuser> Bien <geekntuxuser> on va faire quelques dÃ©monstrations du "Pourquoi prÃ©fÃ©rÃ© le terminal parfois !" <geekntuxuser> D'abord, le terminal c'est plus rapide ! vraiment plus rapide cÃ´tÃ© temps ! <geekntuxuser> Comment ? => <geekntuxuser> Tout d'abord, crÃ©ons un dossier oÃ¹ on va faire nos tests <geekntuxuser> tapez <geekntuxuser> cd <geekntuxuser> mkdir -v classroom-ubuntu <geekntuxuser> Vous devez avoir quelque chose comme Ã§a : mkdir: crÃ©ation du rÃ©pertoire Â«classroom-ubuntuÂ» * geekntuxuser rappelle (quelque chose qu'il a oubliÃ© :p ) qu'il travaille sur le Slide 3 <geekntuxuser> maintenant on entre dans ce dossier <geekntuxuser> cd classroom-ubuntu <geekntuxuser> Donc, je rappelle ! on va faire une dÃ©monstration de la rapiditÃ© que nous offre la console <geekntuxuser> plutÃ´t TERMINAL (j'ai dis qu'on fait souvent l'erreur :p ) <geekntuxuser> J'ai besoin de crÃ©er ces dossiers <geekntuxuser> dos1 ; dos2 ; dos3 ; dos4 ; dos-classroom <geekntuxuser> Imaginez le temps qu'il faut en le faisant en graphique (vous pouvez essayer :p ) <geekntuxuser> En terminal, cela donne tout simplement : <geekntuxuser> mkdir dos{1,2,3,4,-classroom} <geekntuxuser> C'est bon jusqu'Ã maintenant ? Vous suivez ? <geekntuxuser> on passe sarhan ? tout le monde suit jusqu'Ã maintenant ? vous avez rÃ©ussi Ã crÃ©er ces dossiers ? <sarhan> oui tu peux continuer ! (tu peux rappeler Ã quoi sert le pparamÃ¨tre-v pour ceux ceux qui ne connaissent pas?) <sarhan> [QUESTION] qu'est ce qu'une commande, option et parametre? <geekntuxuser> Les paramÃ¨tres et une explication approfondie des commandes sera pour plus tard (vÃ©rifiez les slides), je viens juste de dÃ©montrer ;) <geekntuxuser> MÃªme rÃ©ponse pour la question ^^ <geekntuxuser> C'est bon alors ? <sarhan> oui continue ;) <geekntuxuser> Bien ! vous voyez donc, qu'avec le terminal , on peut vraiment faire rapidement une tÃ¢che, qui, en graphique demande plusieurs clics <geekntuxuser> Autre chose que le terminal nous propose, c'est qu'elle utilise moins de ressources <geekntuxuser> utiliser un programme en command-line nous permet de conserver un peu de ressources (CPU, RAM et graphique notamment ) <geekntuxuser> Autre chose, c'est que avec le terminal, c'est plus facile d'avoir de l'aide extÃ©rieur, <geekntuxuser> et plus exactement la maintenance Ã distance <geekntuxuser> Et je me permet de citer un autre point (parmi les points qui finissent pas ^^ ) aussi, c'est le fait de se sentir un peu GEEK :p et PRO :p <geekntuxuser> faire tout en clavier, Ã§a fait du bien aprÃ¨s tout :p <geekntuxuser> Et pour cloturer cette partie, je dis qu'utiliser le terminal OU le graphique c'est toujours une question de prÃ©fÃ©rence ! =) <geekntuxuser> C'est bon jusqu'Ã maintenant ? des questions ? <sarhan> geekntuxuser, aucune question juste une remarque de Neo31 que je retransmet "<Neo31> explique comment creer un repertoire personnel et faire un change directory pour mettre son travail personel dedans" <geekntuxuser> D'accord =) <geekntuxuser> Pour ceux qui sont connectÃ©s via Putty <geekntuxuser> ils ont la fenÃªtre oÃ¹ ils vont taper du code <geekntuxuser> Qu'ils tapent <geekntuxuser> cd <geekntuxuser> mkdir votre_nom <geekntuxuser> et changez votre nom par le votre =) <geekntuxuser> Il suffit de faire Ã§a =) <geekntuxuser> une fois le rÃ©p crÃ©e, on tape <geekntuxuser> cd votre_nom <geekntuxuser> et changez votre nom par le votre =) <geekntuxuser> Allez, je passe =) * geekntuxuser passe au Slide 4 <sarhan> [QUESTION] comment on peut etre sur que le repertoire a ete creer et voir la liste des autres repertoires? <geekntuxuser> dans 5min :p ! Apprenant avant Ã connaÃ®tre notre terminal ! <geekntuxuser> Sur le mien, c'est Ã©crit : ramy@ramy-laptop:~$ <geekntuxuser> et bien, cette ligne est tellement riche ! <geekntuxuser> commenÃ§ant par l'analyser <geekntuxuser> ramy => c'est votre nom de compte ! Moi, pour me connecter je tape Ramy (puis mon mot de passe), ceux qui sont sur Putty auront ubuntu comme nom de compte <geekntuxuser> @ => Ã§a se prononce AT (anglais) cela veut dire Chez <geekntuxuser> ramy-laptop => comme vous pouvez le deviner, c'est le nom de votre ordinateur comme il apparaÃ®t sur le rÃ©seau ! =) <geekntuxuser> puis les deux points pour sÃ©parer les parties <geekntuxuser> ~ => c'est en effet, votre emplacement (le dossier oÃ¹ vous Ãªtes), par dÃ©faut ~ pointe vers /home/votredossierpersonnel moi, c'est ramy, donc le ~ signifie /home/ramy <geekntuxuser> pour ceux qui travaillent sur putty la ~ (tilde) pointe vers(ou remplace) /home/ubuntu <geekntuxuser> puis <geekntuxuser> $ => ceci indique vos droits d'accÃ¨s ! Il y a 2 types d'utilisateurs dans Ubuntu, un user normal et un super user (Le Dieu de son PC :p ) <geekntuxuser> quand vous Ãªtes un user vous aurez $ <geekntuxuser> quand vous Ãªtes un Super User vous aurez # <geekntuxuser> (on verra aprÃ¨s comment passer au mode super user ) <geekntuxuser> J'enchaÃ®ne donc, ce systÃ¨me d'utilisateur est en soit une protection ! <sarhan> [Question] Quelle est la diffÃ©rence entre les deux types d'utilisateurs? <geekntuxuser> Car, en informatique, tout logiciel a les droits de l'utilisateur qui va le lancer <geekntuxuser> User => il a tout les droits sur son rÃ©pertoire personnelle, en dehors de Ã§a, il doit appeler le Super User <geekntuxuser> qui a tout Ã fait tout les droits sur la machine <geekntuxuser> Les droits d'accÃ¨s sont : Read / Write / Execute <geekntuxuser> gÃ©nÃ©ralement, on peut lire tout ce qu'on veut sur le PC, mais Ã©crire et exÃ©cuter non ^^ <geekntuxuser> J'ai rÃ©pondu Ã la question ? =) <geekntuxuser> je continue donc, en informatique, tout logiciel a les droits de l'utilisateur qui va le lancer <geekntuxuser> Si un virus pÃ©nÃ¨tre, et qu'il se trouve avec les droits de l'admin <geekntuxuser> et bein le PC est foutu ! Par contre, en simple utilisateur, il ne pourra surement pas endommager les fichiers systÃ¨mes (puisqu'il a pas les droits de le faire ;) ) <geekntuxuser> Et c'est en effet une bonne mÃ©thode de protÃ©ger les utilisateurs ! <geekntuxuser> C'est bon jusqu'Ã maintenant ? <geekntuxuser> des questions ? <sarhan> tu peux passer aucune question <sarhan> ah si [Question] Administrator == root sur linux ? <geekntuxuser> Bien ! Je rÃ©cap vite fait donc, maintenant, on peut se repÃ©rer en analysant la ligne qu'on a dans nos terminaux ! <geekntuxuser> Oui =) * geekntuxuser passe Ã la slide suivante 5 <geekntuxuser> Voyons maintenant le truc le plus attendu ! Les commandes ... comment Ã§a marche ? ^^ <geekntuxuser> Et bein, figurez vous qu'on a dÃ©jÃ utilisÃ© 2-3 commandes <geekntuxuser> mkdir ET cd (Ã§a fait 2 x) ) <geekntuxuser> Donc <geekntuxuser> pour lancer une commande, je dois taper sur mon terminal la forme suivante : <geekntuxuser> commande paramÃ¨tres <geekntuxuser> La commande c'est un programme ! (firefox / gedit / gnome-terminal / ... ) vous pouvez essayer en tapant le nom du programme <geekntuxuser> les paramÃ¨tres ce sont les outils/ressources que ce programme aura besoin pour travailler <geekntuxuser> j'essaye d'expliquer par logique : pour copier un fichier, je dois fournir la source et la destination <geekntuxuser> et ainsi de suite =) <geekntuxuser> Sur le slide, j'ai oubliÃ© de prÃ©ciser qu'on peut utiliser des options sur les commandes, pour pouvoir modifier un peu leur faÃ§on de fonctionner <geekntuxuser> personnaliser le fonctionnement en quelque sorte ^^ <geekntuxuser> Exemple : mkdir -v test <geekntuxuser> mkdir => ma commande : crÃ©er un dossier : Make Directory <geekntuxuser> -v => une option : pour dire Ã ma commande d'afficher ce que t'as fait <geekntuxuser> test => le paramÃ¨tre que cette commande a besoin (le nom du dossier Ã crÃ©er ) <geekntuxuser> Concernant les options, <geekntuxuser> il y en a 2 types, les options "longues" et les options "courtes" <sarhan> [Question ] Comment connaÃ®tre toutes les options des commandes ? <geekntuxuser> Exemple : mkdir -v test <geekntuxuser> Exemple 2 : mkdir --verbose test <geekntuxuser> Ces 2 commandes sont les mÃªmes ! Pour Ã©crire une option courte (1 carac) je dois la prÃ©cÃ©der d'un "-" <geekntuxuser> pour les longues, on doit ajouter "--" <geekntuxuser> En faite, chaque commande a son mode d'emploi <geekntuxuser> Un genre de documentation ^^ on verra comment y accÃ©der <geekntuxuser> C'est clair jusqu'Ã maintenant ? =) <geekntuxuser> Vous suivez ^^' ? <sarhan> non ! <sarhan> oui tout le monde te suit on peut continuer :) <geekntuxuser> Bien =) <geekntuxuser> Une petite astuce trÃ¨s utile avant de continuer, c'est la Tabulation <geekntuxuser> Le bouton TAB <geekntuxuser> Il joue le rÃ´le d'auto complÃ©tion <geekntuxuser> Par exemple il suffit de taper une partie du nom d'un dossier, et il nous propose la suite =) (comme le principe de l'IRC ) <sarhan> [Question] le bouton tab marche sur toutes les distributions ou seulement sur ubuntu? <geekntuxuser> Enfaite, Ã§a dÃ©pend du terminal s'il gÃ¨re l'auto complÃ©tion ou non , mais selon mes connaissances, il existe partout cette option ^^ <geekntuxuser> (Ã voir ^^ ) <geekntuxuser> Donc, on va voir la liste des commandes les plus utiles <geekntuxuser> testez avec moi en mÃªme temps pour mieux voir la chose <geekntuxuser> CommenÃ§ons * geekntuxuser rapplle qu'on est toujours sur le slide 5 =) <geekntuxuser> 1 - pwd => place where directory <geekntuxuser> Cette commande indique notre endroit en chemin absolu =) <geekntuxuser> ramy@ramy-laptop:~$ pwd <geekntuxuser> /home/ramy <geekntuxuser> On passe ? (allez voyons ... c'est aussi simple Ã§a :p ) <geekntuxuser> Bon, continuons ^^ <geekntuxuser> 2 - ls => lister tous les fichiers et dossiers qui existent sous le rÃ©pertoire courant (si on tape ls tout court) <geekntuxuser> P.S : N'essayez surtout pas sudo rm -rf /* <geekntuxuser> ls acceptent des options telles que : -l -a -h -R <geekntuxuser> -l => pour afficher sous forme de tableau avec plus d'informations <geekntuxuser> -a => pour dire Ã
{'channel': 'ubuntu-tn-classroom', 'month': 8}