Module Python Dpkg?

J’essaie de faire des manipulations de paquets (a la dpkg) et si je peux juste popen ou subprocess.call je préfère faire les choses de la façon python si possible.

Malheureusement, j’ai été incapable de trouver un module python pour faire le tour.

J’ai vu la référence à python-deb mais il semble être mort. python-apt peut sembler être une solution potentielle, mais AFAICT ne peut pas gérer des fichiers .deb individuels.

Quelqu’un a-t-il connaissance d’une solution python dpkg?

En fait, python-apt vous permet de travailler directement avec ces fichiers. Voici un exemple:

 from apt.debfile import DebPackage from pprint import pprint pkg = DebPackage('/tmp/wajig_2.7_all.deb') pprint(pkg.filelist) 

Sortie:

 $ ./script.py ['./', 'etc/', 'etc/bash_completion.d/', ... 'usr/bin/', 'usr/bin/wajig'] 

Ce n’est pas aussi complet que je voudrais malheureusement, mais il a un tas de fonctionnalités.

( plus d’infos )

Python-apt est probablement la manière canonique de faire cela, mais si vous avez besoin de la capacité de travailler sur des plates-formes non-debian, j’ai publié une première version d’une réimplémentation native de certaines parties:

https://github.com/TheClimateCorporation/python-dpkg

Je connais peu les modules python pour les debs, mais je voulais souligner que l’appel de sous-processus n’est pas la mauvaise chose sur * ix, que ce soit sous Windows. Windows semble presque destiné à casser les appels en tant que sous-processus et parsing de sortie, mais * ix le rend généralement tout à fait viable.

Apparemment, Gdebi est basé sur Python. Si gdebi est installé, vous avez access à ses fonctionnalités via le module GDebi.

Je n’arrive pas à trouver de documentation, alors je ne suis pas sûr que cela soit censé être une API publique, mais cela pourrait faire l’affaire.