Py2deb

Mer 25 juin 2008

[via les forums Ubuntu-fr]

Dans la série "une découverte Python par jour", voici Py2Deb.

Empaqueter des programmes est une tâche indispensable pour diffuser le plus largement possible des applications. Toutes les distributions Linux ont un système de paquets permettant d'installer / désinstaller sans soucis une application, en s'assurant par exemple qu'elle disposera de toutes les bibliothèques de fonction indispensables à son bon fonctionnement. Pour Ubuntu, basée sur Debian, le format des paquets est .deb. Il existe de nombreux tutoriaux, il y a même eu pas mal de cours sur IRC à ce sujet présentant la marche à suivre pour publier un .deb installable sur une machine "debian-based". Y'a même des vidéos.

Et un "je ne sais quoi" me freinait. Je construit de plus en plus d'applications (ou de jeux de scripts) plus ou moins complexes en Python, et la question du paquet se pose toujours à un moment ou un autre. La manière "pythonnienne", c'est d'utiliser les outils de la bibliothèque distutils, et de publier sur le Python Package Index, mais elle nécessite quelques opérations en ligne de commande pour que le commun des mortels puisse installer l'application et s'en servir. Je pense que ce mode de fonctionnement est plus efficace pour une bibliothèque, pour des gens qui savent ce qu'ils font quand ils lancent :

easy_install machin_chose

Un utilisateur lambda voudra télécharger un "machin", et double-cliquer dessus pour que le programme s'installe "tout seul". Et tant que le paquetage à la Debian n'est pas arrivé dans les dépôts (officiels ou officieux), difficile de passer par Synaptic ou Adept.

Py2Deb pallie à la difficulté de concevoir et produire un paquet .deb. Le programme est bien entendu disponible sur le site officiel via un paquetage .deb (à installer avec GDebi, par exemple), et il permet en quelques lignes de python de produire un paquet qui m'a semblé (j'ai pu le tester avec un "hello world" tout con) correct. Ça s'installe, ça se désinstalle, et paf.

Pour ceux que ça intéresse, je leur propose d'aller à la pêche aux infos dans la doc officielle.

Note : le présent article n'a pas été publié sur le Planet Ubuntu-fr pour deux raisons : d'abord parce que je m'interroge depuis quelques temps sur mon implication dans PUF, ensuite, parce qu'il parle de l'installation d'un paquetage ne se trouvant pas (encore) dans les dépôts officiels, et qui plus est, le programme décrit permet même de faire des paquetages.
Ce genre d'article a fait partie de moult polémiques sur la liste de diffusion du PUF ou ailleurs, et ça m'emmerderait assez que cette publication provoque une nouvelle vaguelette (dans le verre d'eau).

Pour ceux qui auraient les jetons, j'ai regardé le code source de Py2Deb ne fois installé : il n'y a guère qu'un script Python... Globalement inoffensif.