Créer un paquet .deb

Formation

En Ligne

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En ligne

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Si vous êtes sous Linux et que vous programmez, vous avez peut-être déjà eu besoin de distribuer votre programme. C'est relativement simple lorsqu'il ne s'agit que de le distribuer à petite échelle, mais cela peut vite devenir compliqué.
Ce tutoriel vous apprendra donc à distribuer vos programmes à grande échelle grâce au packaging Debian.

Vue d'ensemble

Si vous avez lu le tutoriel de M@teo21 sur Linux, et plus particulièrement la partie sur l'installation de logiciels, vous devriez savoir "en gros" ce qu'est un paquet .deb.
Pour ceux qui n'auraient pas suivi, un paquet .deb est en fait un dossier compressé contenant les éléments à installer et des informations sur le paquet.
Comme l'indique l'extension, un paquet .deb est utilisé sur les systèmes reposant sur Debian. C'est, si vous ne le savez pas encore, une distribution Linux qui a elle-même engendré d'autres distributions. Quelques exemples de distributions reposant sur Debian, utilisant apt-get, et par conséquent les .deb : (schéma par M@teo21)

Arborescence

Un paquet Debian est constitué de deux parties notables : un dossier contenant le nom du paquet, ses dépendances, etc. d'un côté, et les fichiers du programme de l'autre.
L'arborescence d'un paquet Debian se présente sous cette forme :

Citation

- dossier_du_paquet/
--- DEBIAN/
----- control
----- preinst
----- postinst
----- prerm
----- postrm
--- usr/
----- bin/
------- votre_programme

Pour l'exemple, j'utiliserai un petit script assez simple en guise de programme.

#!/bin/bash echo "CAROTTE VOLAAAAANTE !"

(faites pas gaffe, juste un délire :-° )

Le fichier "control"

Tout d'abord, commencez par créer un dossier du nom de votre programme (ou un autre, hein, on s'en fiche un peu ^^ ). Créez ensuite dans ce dernier un dossier nommé "DEBIAN" (tout en majuscules).
Dans le dossier juste créé, ajoutez un fichier nommé "control".
Ouvrez-le avec nano, vim, emacs, ou ce que vous voulez. Évitez cependant les programmes graphiques de type gedit.
Dans ce fichier, tapez les lignes suivantes, en complétant avec les informations nécessaires:

  • Package : le nom de votre paquet. C'est par exemple celui utilisé pour apt-get, lorsque vous écrivez apt-get install firefox.

  • Version : ça se passe de commentaires, le version de votre programme.

  • Section : je ne sais pas vraiment ce que c'est, laissez "base".

  • Priority : l'importance de votre paquet pour le système. La plupart du temps, votre programme sera noté "optional", mais si vous voulez plus de choix, rendez-vous ici.

  • Architecture : les architectures avec lesquelles votre programme est compatible. La plupart du temps, on choisira "all". Pour plus de choix, c'est par ici.

  • Depends : les dépendances de votre programme.

  • Maintainer : le nom et l'email de celui qui s'occupe de la création du .deb. On va dire que c'est vous, hein ! :) Le format est "Votre Nom <votre@email>".

  • Description : la description de votre paquet.

  • Homepage : l'adresse de votre site internet, si vous en avez un.

Dans le cas de mon script, ça donnera quelque-chose comme ça :

Citation : control

Package: carotte
Version: 1.0-sdz
Section: base
Priority: optional
Architecture: all
Depends: bash
Maintainer: outadoc <admin@outadoc.fr>
Description: Affiche un truc inutile dans la console.
Homepage: http://outadoc.fr

Les scripts d'installation/suppression

Vous pouvez, si c'est nécessaire (c'est facultatif), ajouter des scripts qui seront exécutés avant/après l'installation/la suppression du paquet. Ils auront pour nom :

  • preinst : exécuté avant l'installation

  • postinst : exécuté après l'installation

  • prerm : exécuté avant la suppression

  • postrm : exécuté après la suppression

Vous pouvez vous en servir pour déplacer des dossiers, afficher des instructions à l'écran, commander des pizzas...
Vos scripts doivent avoir une permission de 755 :

sudo chmod 755 post* sudo chmod 755 pre*

Je vais, pour ma part, créer un fichier "postinst" :

#!/bin/bash echo "Fini ! Fais bien mumuse ! :D" Le contenu du paquet

Bon, on a fait le plus gros. Mais on n'a toujours pas fait l'essentiel ! En effet, jusqu'ici nous avons donné les informations sur le paquet, mais toujours pas le contenu en lui-même. Avouez que ça serait dommage de s'arrêter ici ! :)
Là, tout dépend du type de programme que vous empaquetez. Si, comme moi, vous n'avez qu'un simple programme ou script, nous allons supposer qu'il nous faut l'installer dans /usr/bin. Et bien dans ce cas-là, c'est très simple ! Placez-vous à la racine de votre paquet, où se trouve le dossier DEBIAN, et créez un dossier usr/, puis un dossier bin/ à l'intérieur du premier. Le principe est le même pour les autres: considérez la racine du paquet comme la racine du disque. Prenons un exemple : votre programme contient un bibliothèque dynamique libcarotte.so. Elle devra normalement être placée dans un dossier usr/lib dans le paquet, pour se retrouver dans /usr/lib une fois le .deb installé.

Compilation et installation

Bon ! Si tout est prêt, on va pouvoir transformer tout ça en un paquet .deb ! :D
Mettez-vous dans le dossier qui contient votre paquet. Ensuite, tapez cette commande en tant que root :

sudo dpkg-deb --build nom_du_paquet

...où nom_du_paquet est le nom du dossier qui contient le dossier DEBIAN et tout le reste.
Et TADAAA ! Un fichier .deb du nom du dossier devrait avoir été créé dans le répertoire courant. Pour l'installer, tapez :

sudo dpkg -i nom_du_paquet.deb

Plus qu'à taper :

outadoc@outadoc-EasyNote-SB87:~$ carotte  CAROTTE VOLAAAAANTE !

Voilà, vous avez réussi. Bon, j'espère que vous aurez une meilleure idée de programme que moi ! :p
Pour désinstaller le paquet, vous utiliserez la commande :

sudo apt-get remove nom_du_paquet

Vous savez maintenant comment créer un paquet Debian, bien plus simple pour installer un programme que d'utiliser de simples dossiers compressés. De plus, vous pourrez éventuellement envoyer vos paquets sur des dépôts après cela... Alléchant, non ? ;)

  • #
Waouh !

Très heureux de voir que nos cours vous plaisent, déjà 3 pages lues aujourd'hui ! Vous pouvez continuer la lecture de nos cours en devenant un Roomie, un membre de la communauté d'OpenClassrooms. C'est gratuit !

Vous pourrez aussi suivre votre avancement dans le cours, faire les exercices et discuter avec les autres Roomies.

S'inscrire Se connecter
  • Thématiques du cours : Linux OS

Chaque cours est créé par un professeur ou un expert dans le domaine. Il est composé d'une ou plusieurs parties et peut comporter du texte, des images (schéma, illustration) et des vidéos. Chaque partie d'un cours certifiant est ponctuée d'exercices de 2 types : Des quiz corrigés automatiquement Des devoirs libres (exemple : créer un site web avec des consignes précises). Ces devoirs sont évalués par les pairs. Chaque devoir est corrigé 3 fois par 3 autres élèves, dans un processus en double aveugle, selon un barème fixé par le professeur. La note finale est la moyenne des 3 notes reçues sur le devoir. 50% des devoirs corrigés par les pairs obtiennent quasiment les 3 mêmes notes, avec une variance inférieure à 1. La recherche académique montre d'ailleurs que l'évaluation par les pairs peut être aussi précise que celle des professeurs.

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Créer un paquet .deb

Prix sur demande