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:
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.