Packages and origins
By Jean-Christophe Dubacq on Wednesday 27 January 2010, 13:11 - Geeky things - Permalink
Des fois, je veux vérifier d'où viennent mes paquets. C'est déjà ce que fait apt-show-versions, mais en se concentrant uniquement sur l'aspect distribution (stable/testing/unstable) et non pas sur le site d'où vient le paquet. De plus, je voulais pouvoir préciser un ordre entre les distributions (quand un paquet est à la fois dans unstable et testing, je veux qu'il apparaisse comme venant de testing; quand il est dans un dépôt local que j'ai créé, je veux qu'il apparaisse comme venant de ce dépôt, même s'il est une copie de unstable ou d'experimental).
Du coup, j'ai écrit mon premier programme (sérieux) en Python. La documentation est en anglais.
package_origins [options]
- -h|--help
- This help text
- -l|--list
- Just list available distributions
- -c|--count
- Just display package count by origin
- -t|--tabular
- Use tabular output format for origin display
- -C|--columns=integer
- Set the number of columns of the output
- -L|--lines=integer
- Set the maximal number of packages that can be displayed
- -o|--order=string
- Set the order in which packages are in the distributions. This is a space-jointed string of stanzas like alias1=site1/archive1 where alias1 is the display name of a distribution of name archive1 at site1.
Le programme lit aussi les dénominations dans un fichier ~/.package_origins sous la même forme, mais avec une origine par ligne. De multiples options -o peuvent être utilisées (elles sont accolées).
Un exemple de fonctionnement:
./package_origins -o 'stable=ftp.fr.debian.org/stable testing=ftp.fr.debian.org/testing unstable=ftp.fr.debian.org/unstable experimental=ftp.fr.debian.org/experimental multimedia=www.debian-multimedia.org/unstable' -L 20 --columns 40
,--------------------------------------.
| stable |
`--------------------------------------'
Too many packages (189). Use --tabular or --lines=X (x>=189).
,--------------------------------------.
| testing |
`--------------------------------------'
Too many packages (1529). Use --tabular or --lines=X (x>=1529).
,--------------------------------------.
| unstable |
`--------------------------------------'
Too many packages (317). Use --tabular or --lines=X (x>=317).
,--------------------------------------.
| experimental |
`--------------------------------------'
calendar-google-provider
calendar-timezones enigmail
,--------------------------------------.
| multimedia |
`--------------------------------------'
Too many packages (33). Use --tabular or --lines=X (x>=33).
,--------------------------------------.
| other |
`--------------------------------------'
emacs-snapshot emacs-snapshot-bin-common
emacs-snapshot-common emacs-snapshot-nox
fixkeyboard lipn-archive-keyring
nvidia-kernel-2.6.26-2-amd64
nvidia-kernel-2.6.30-2-amd64
nvidia-kernel-2.6.31-1-amd64
pbuilder-utils rftg rftg-data
,--------------------------------------.
| installed |
`--------------------------------------'
Too many packages (55). Use --tabular or --lines=X (x>=55).
Comments
Bonjour,
J'ai déjà eu ce même besoin, et j'aimerais donc bien tester votre programme ! Question : quel(s) est/sont le ou les paquets nécessaires (je ne connais pas Python) : j'ai tenté avec python-apt, mais cela ne marche pas, au moins sous Lenny.
Il faut en effet installer python-apt, mais la version de unstable.
J'ai fait l'essai pour voir, depuis une lenny, cela veut dire installer ou mettre à jour:
Comme c'est mon premier programme en python, je ne sais pas comment rétroporter ce que j'ai fait pour la version de python-apt dans lenny.
Pour ceux qui veulent l'installer dans sid, je l'ai même empaqueté.
Merci des infos. Je le garde au chaud pour quand j'aurai migré en Squeeze