[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Création de paquet pour programme python



Salut,

En fait, pour faire un paquet debian (*.deb), c'est assez simple et
plutôt cool:

Basiquemment,  un paquet est une archive (comme tes *.zip) qui contient
tout les fichier qui composent ton programme, plus des information
comme: de quoi à besoin ton programme pour fonctionner (dépendances), la
liste des fichiers de configuration (utile pour le dpkg-reconfigure),
des déclenchement (example: mettre à jours le système de fichiers
d'initialisation en cas d'installation de pilotes, etc...) et d'autres
trucs optionnels... ainsi qu' évidemment le nom et la version.

Pour faire ça, on utilise la commande "dpkg --build <dossier de ton
programme> ton programme_numéro de version du programme-numéro de
version du paquet_architechture.deb" comme ceci:
> dpkg --build pspvt/ pspvt_10.05-1_all.deb
Et DPKG transforme ton dossier ou tu as organisé les données ci-dessus
en un paquet *.deb installable d'un double-clic dans GDebi-Gtk ou d'une
ligne de commande dans GDebi-tout-court ou dans aptitude.

Que mettre dans ton dossier avant de le transformer en *.deb?
Déjà, toute l'arborescence de ton programme:
Si tu as un fichier "/usr/bin/ton_soft" à installer, tu devras le mettre
dans: "<ton_dossier>/usr/bin/ton_soft", si tu as un dossier
"/usr/share/ton_soft" ce sera "<ton_dossier>/usr/share/ton_soft"...
Tu peux mettre autant de dossiers et de fichiers que tu veux, et les
droits sont (apparement) conservés (je crois, mais c'est à confirmer!).

Ensuite tu crée un fichier "<ton_soft>/DEBIAN/control" qui ne sera pas
installé, mais qui contiendra toutes les informations nécéssaires
(nom,version,dépendances,etc...)
Dans le même dossier ("DEBIAN"), tu peux mettre les scripts "preinst",
"postinst" (très utile pour démarrer les DaeMON quand ils sont
installés, TOR et Postfix l'utilisent, ou pour régler les droits),
"prerm" (très utile pour nettoyer son merdier avant de partir, mon soft
devrait l'utiliser xD) ainsi que d'autres fichiers divers... SEUL LE
FICHIER "control" EST OBLIGATOIRE!

Voici un example:
> ton_soft/
> |-- DEBIAN
> |   |-- control #obligatoire!!
> |   |-- postinst
> |   |-- preinst
> |   |-- prerm
> |   `-- triggers
> |-- etc
> |   `-- truc.conf
> `-- usr
>     |-- bin
>     |   `-- ton_soft
>     `-- share
>         `-- ton_soft
>             |-- coincoin.db
>             |-- data.bin
>             |-- default.xml
>             `-- pic0.png
>
> 6 directories, 11 files

Après, tu fais "dpkg --build ton_soft tonsoft_0.2-1_i368.deb" et ça te
crée le fichier "tonsoft_0.2-1_i368.deb" qui est ton paquet.

Par example dans mon cas, pour obtenir mon paquet je fais:

>  $ tree pspvt_debian/ #mon arborescence:
>   pspvt_debian/
>   |-- DEBIAN
>   |   |-- conffiles #Pour reconfigurer le merdier
>   |  |-- postinst #C'es écris en Bash; là dedans...
>   |   `-- control #Information obligatoires
>   |-- etc
>   |   `-- pspvt #Fichier de config' listé dans 'conffiles'
>   `-- usr
>      |-- bin
>      |   `-- pspvt -> ../share/pspvt/pspvt.py
>      `-- share
>          |-- applications
>          |   `-- pspvt.desktop #Raccourcic pour le menu graphique
>          |-- man
>          |   `-- man1
>          |       `-- pspvt.1.gz #Page de manuel, qui déclenche le
> trigger de man-db
>          |-- pixmaps
>          |   `-- pspvt #images
>          |       |-- icon.png
>          |       `-- pspvt.png
>          `-- pspvt
>              |-- libpspvt.py #machin
>              |-- pspvt.py #bidule
>              `-- ui_pspvt.glade #chose
>
>   11 directories, 11 files #wahh! j'en ai fait de code xD
>   $ dpkg --build pspvt_debian/ pspvt_10.02-1_all.deb #Et on empaquette...
>   dpkg-deb : construction du paquet « pspvt » dans «
> pspvt_10.02-1_all.deb ».
>   $ sudo dpkg -i pspvt_10.02_all.deb #...et on installe
>   (Lecture de la base de données... 161993 fichiers et répertoires
> déjà installés.)
>   Préparation du remplacement de pspvt 10.02-1 (en utilisant
> pspvt_10.02_all.deb) ...
>   Dépaquetage de la mise à jour de pspvt ...
>   Paramétrage de pspvt (10.02-1) ...
>   Traitement des actions différées (« triggers ») pour « man-db »...
Tout simplement!


Tu trouvera plusieurs tutos et informations sur la syntaxe des fichiers
sur le net (google est ton ami), dans les pages de manuel, sur le site
officiel de debian, dans la doc ubuntu-fr (souvent valable pour Debian)
et si ça ne suffit pas, tu peux tout simplement regarder dans le source
d'un paquet: c'est à ça que ça sert le Logiciel Libre :-)

Bon packaging!


Reply to: