Aller au contenu
Menu
  • Catégories
    • Geekitude
    • Jeux vidéos
    • Hack ps3
    • Japon
    • Politique et libertés
    • Jeux vidéos adultes
    • Divers
  • FreeDrive
    • Le service
    • La FAQ
  • Partage de connaissance
    • Copie du système
    • Création de paquet (.deb)
    • Petit mémo sur lsof
    • LVM – Les bases
    • LVM – Fonctionnement interne
    • LVM : Trucs et astuces
    • LVM – Les snapshots
    • Chiffrement – Théorie
    • Chiffrement – Pratique
    • 100 pages sur burp, sqlmap et metasploit
    • Présentations IRL
  • Downloads
    • kclean
    • myst
    • lvmiostat
    • Night City 2020
    • Mia, Corps d’acier, Cœur tendre
  • contact
    • RSS
    • Télécharger ma clef publique
    • Email
  • Rechercher
  • Catégories
    • Geekitude
    • Jeux vidéos
    • Hack ps3
    • Japon
    • Politique et libertés
    • Jeux vidéos adultes
    • Divers
  • FreeDrive
    • Le service
    • La FAQ
  • Partage de connaissance
    • Copie du système
    • Création de paquet (.deb)
    • Petit mémo sur lsof
    • LVM – Les bases
    • LVM – Fonctionnement interne
    • LVM : Trucs et astuces
    • LVM – Les snapshots
    • Chiffrement – Théorie
    • Chiffrement – Pratique
    • 100 pages sur burp, sqlmap et metasploit
    • Présentations IRL
  • Downloads
    • kclean
    • myst
    • lvmiostat
    • Night City 2020
    • Mia, Corps d’acier, Cœur tendre
  • contact
    • RSS
    • Télécharger ma clef publique
    • Email
ATDC

Création de paquet (.deb)

hoper24 novembre 20101

Il est assez facile de trouver de la documentation sur le sujet. Le net regorge de méthodes, parfois très différentes, pour réaliser un fichier « .deb ». Je trouve personnellement la plupart de ces documentations assez complexes. Elles semblent s’adresser à des gens ayant déjà des connaissances et (ou) des besoins assez particuliers. (La documentation présente sur le site ubuntu-fr en est un parfait exemple). J’ai donc décidé de reprendre les bases en partant du point de départ. La création « manuelle » d’un paquet très basique. Il sera ensuite possible de complexifier les choses au fur et à mesure… Pour commencer il s’agira donc de créé un paquet très simple à partir d’un programme basique (et pas basic avec un c… quel humour !).

Etape 1 : Le programme à empaqueter

Nous ne sommes pas la pour apprendre à programmer des scripts shells… Alors on fait SIMPLE : Essayer de taper la commande suivante :

zenity --info --title "test" --text "coucou"

Si tout se passe bien vous verrez apparaitre à l’écran une fenêtre qui affiche « coucou ». Zenity est normalement installé par défaut sur ubuntu, si ce n’est pas le cas chez vous et que vous avez un message d’erreur, installez le : sudo apt-get install zenity

Afin de rendre les choses un tout petit peu plus intéressantes, nous allons créer un fichier « de configuration », qui contiendra le texte qui doit être affiché dans la fenêtre. Au final nous allons donc créer deux fichiers. Le « programme » d’une part, et son fichier de configuration de l’autre

Le programme

Créez un fichier texte dans votre répertoire utilisateur, appelez le « affiche_ecran » et copiez cette ligne à l’interieur :

zenity --info --title "test" --text "`cat ~/affiche.cfg`"

Enregistrez le, et rendez le exécutable :

sudo chmod a+x affiche_ecran

Le fichier de configuration

Créez un autre fichier texte, toujours dans votre répertoire, et appelez le « affiche.cfg ». Mettez ce que vous voulez dedans, par exemple : Bonjour à tous

Tester le programme

Lancez le programme en tapant :

./affiche_ecran

Le contenu du affiche.cfg devrait s’afficher dans une fenetre. Nous avons terminé le programme à empaqueter

Etape 2 : Création du paquet

Avant toute chose il faut créer un répertoire qui contiendra le contenu du paquet. Appelons le « exemple-un ». A l’intérieur de ce répertoire, faites-en un autre et appelez le DEBIAN (en majuscules). Nous verrons l’utilité de ce répertoire vide plus loin. Il faut maintenant mettre dans « exemple-un » tous les fichiers qui devront être installés. Mais pas n’importe comment ! En fait, il faut reproduire exactement l’arborescence telle qu’elle devra être respectée lors de l’installation. Par exemple, si on veut que le fichier « affiche_ecran » soit installé dans /tmp au moment de l’installation du paquet, alors il faut créer un répertoire tmp dans exemple-un, puis mettre « affiche_ecran » à l’intérieur.

Dans notre cas de figure on veut que les deux fichiers que l’on à crée à l’étape une soient mis dans notre répertoire utilisateur au moment de l’installation du paquet. Il faut donc créer « home/votre_login » à l’intérieur de notre répertoire de travail, afin d’avoir au final quelque chose qui ressemble à ceci :

/home/votre_login (votre répertoire utilisateur)
	|
 	|-> exemple-un 
		|
		|-> DEBIAN
		|-> home
		      |
                      |-> votre_login
				|
				|-> affiche_ecran
				|-> affiche.cfg

Informations supplémentaires (version, dépendances…)

Concernant les fichiers à installer, nous avons terminé. Mais il faut maintenant indiquer quelques petites choses à dpkg, l’outil de création et d’installation de paquet. Par exemple comment va s’appeler notre paquet, sur quelle machine on peut l’installer, quelle est son numéro de version, de quoi a-t-il besoin, entre t-il en conflit avec d’autre, y a t-il des opérations à réaliser avant ou après l’installation etc. Tout ceci se fait grâce à des fichiers texte qu’on place dans le répertoire DEBIAN. Pour le moment, nous nous contenterons d’un seul fichier (le seul qui soit obligatoire) le fichier « control ». Créez donc un nouveau fichier texte, appelez le « control » en minuscule, placez le dans le répertoire DEBIAN puis copiez ceci à l’intérieur :

Package: exemple-un
Version: 1.0
Architecture: i386
Depends: zenity
Maintainer: your_email@your.fai
Description: Mon premier paquet !
  Ce paquet contient deux fichiers :
  affiche_ecran (le script)
  affiche.cfg (le texte qui doit s'afficher)

Globalement tout facile à comprendre, mais examinons ce fichier ligne par ligne. La première indique le nom du paquet. La seconde, sa version. Il s’agit bien de la version du paquet, pas de la version du programme qui est dedans ! Si plusieurs versions du même paquet sont disponibles, les outils comme apt-get choisirons toujours la version la plus récente par défaut. Ensuite nous avons l’architecture cible du paquet (ici i386, autrement dit n’importe quel PC « standard » avec un processeur de type « x86 ». Puis arrive la liste des dépendances, aussi appelées « pré-requis ». La seule chose qui soit nécessaire et qui pourrait ne pas être installée est zenity. Si cela arrivait, apt-get saurait donc qu’il faut l’installer pour pouvoir utiliser ce programme. Il est possible d’indiquer plusieurs prés-requis en les séparant par une virgule. il est aussi possible d’indiquer un numéro de version précis, ou minimum etc. Le « maintainer » est le nom de la personne ayant réalisé le paquet… C’est vous ! Enfin on trouve une description en deux parties. La première partie (sur une seule ligne) est la description courte du paquet. Puis vient la description « longue ». Elle peut s’étaler sur plusieurs lignes, mais il faut toujours commencer chaque ligne par deux espaces.

Note : J’ai simplifié ce fichier au maximum… il est possible d’y indiquer beaucoup d’autres choses, alors n’hésitez pas à consulter les docs !

Enfin, le .deb

Tout est prêt, nous pouvons maintenant créer le paquet :

 cd ~/      
 dpkg -b exemple-un

Le fichier exemple-un.deb a dû être créé ! Bravo, vous venez de faire votre premier paquet.

Test du paquet

Commencez par supprimer les fichiers affiche_ecran et affiche.cfg qui sont dans votre répertoire. Lorsque vous êtes sûr qu’ils n’y sont plus, lancez l’installation du paquet :

 sudo dpkg -i exemple-un.deb

Si tout se passe bien, les deux fichiers sont ré-apparus, et vous pouvez à nouveau lancer affiche_écran. Essayez aussi d’afficher les informations de votre paquet avec la commande : apt-cache show exemple-un

Essayez maintenant de supprimer le paquet :

 sudo apt-get remove exemple-un

Notez que les deux fichiers sont supprimés. Or, l’un d’eux est un fichier de paramétrage… On pourrait vouloir ne pas l’effacer par défaut, pour pouvoir le conserver lors d’une mise à jour du programme par exemple. Il faudrait pour cela le déclarer en tant que « fichier de configuration ». C’est ce que nous verrons dans le prochain épisode…

Catégories
  • Geekitude
Article précédent

Les paquets « .deb »

Article suivant

Rêves éveillé

1 Commentaire

  1. Ping : Les paquets « .deb » – ATDC

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Articles récents

  • Je suis sexiste
  • Mia ou le début d’une trilogie.
  • Mia : Vos critiques constructives
  • Qui se souvient des sub channels ?
  • Pour moi Daikin c’est terminé

Commentaires récents

  • Zenzla dans Je suis sexiste
  • hoper dans Je suis sexiste
  • Jérémy dans Je suis sexiste
  • hoper dans Je suis sexiste
  • OT dans Je suis sexiste

Archives

  • mars 2025
  • février 2025
  • août 2024
  • juillet 2024
  • juin 2024
  • avril 2024
  • février 2024
  • septembre 2023
  • janvier 2023
  • décembre 2022
  • février 2022
  • janvier 2021
  • décembre 2020
  • novembre 2020
  • octobre 2020
  • septembre 2020
  • mars 2020
  • février 2020
  • décembre 2019
  • septembre 2019
  • juillet 2019
  • mai 2019
  • avril 2019
  • février 2019
  • janvier 2019
  • décembre 2018
  • novembre 2018
  • octobre 2018
  • septembre 2018
  • juillet 2018
  • juin 2018
  • avril 2018
  • janvier 2018
  • novembre 2017
  • mai 2017
  • avril 2017
  • mars 2017
  • février 2017
  • janvier 2017
  • octobre 2016
  • mai 2016
  • février 2016
  • octobre 2015
  • septembre 2015
  • août 2015
  • juin 2015
  • mai 2015
  • avril 2015
  • février 2015
  • janvier 2015
  • novembre 2014
  • octobre 2014
  • septembre 2014
  • juillet 2014
  • juin 2014
  • mai 2014
  • avril 2014
  • mars 2014
  • février 2014
  • janvier 2014
  • décembre 2013
  • novembre 2013
  • octobre 2013
  • septembre 2013
  • août 2013
  • juillet 2013
  • juin 2013
  • mai 2013
  • avril 2013
  • mars 2013
  • février 2013
  • janvier 2013
  • décembre 2012
  • novembre 2012
  • octobre 2012
  • septembre 2012
  • août 2012
  • juillet 2012
  • juin 2012
  • mai 2012
  • avril 2012
  • mars 2012
  • février 2012
  • janvier 2012
  • décembre 2011
  • novembre 2011
  • octobre 2011
  • septembre 2011
  • août 2011
  • juillet 2011
  • juin 2011
  • mai 2011
  • avril 2011
  • mars 2011
  • février 2011
  • janvier 2011
  • décembre 2010
  • novembre 2010
  • octobre 2010
  • septembre 2010
  • août 2010
  • juillet 2010
  • juin 2010
  • mai 2010
  • avril 2010
  • mars 2010
  • février 2010
  • janvier 2010
  • décembre 2009
  • novembre 2009
  • octobre 2009
  • septembre 2009
  • août 2009
  • juillet 2009
  • juin 2009
  • mai 2009
  • avril 2009
  • mars 2009

Catégories

  • Autres jeux
  • Delires
  • Divers
  • Geekitude
  • Hack ps3
  • Japon
  • Jeux vidéos
  • Jeux vidéos adultes
  • Non classé
  • Politique et libertés

Méta

  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR

Archives

Articles récents

  • Je suis sexiste
  • Mia ou le début d’une trilogie.
  • Mia : Vos critiques constructives
  • Qui se souvient des sub channels ?
  • Pour moi Daikin c’est terminé
  • Législatives 2024 : Messages pour tous
  • Les types de batteries
  • Meilleurs jeux 18+ : Mise à jour 2024

Catégories

Autres jeux (4) Delires (3) Divers (75) Geekitude (177) Hack ps3 (10) Japon (9) Jeux vidéos (27) Jeux vidéos adultes (10) Non classé (5) Politique et libertés (83)

Flus RSS

  •   Les articles

Copyright 2025 © ATDC Tous droits réservés.

Thème Codilight par FameThemes