Page 1 sur 1

[Pacman] Utilisation de pacsort

Publié : lun. 09 mars 2015, 21:41
par lesebas
Bonjour,

Pour amélioer un script en python de nettoyage du cache e pacman (pacleaner) je souhaite utiliser la commande pacsort pour trier des paquets en fonction de leur version et release.

Code : Tout sélectionner

[sebastien@Lupus ~]$ pacsort -h
pacsort (pacman) v4.2.1

A sort utility implementing alpm_pkg_vercmp.

Usage: pacsort [options] [files...]

  -f, --files             assume inputs are file paths of packages
  -h, --help              display this help message
  -k, --key <index>       sort input starting on specified column
  -r, --reverse           sort in reverse order (default: oldest to newest)
  -t, --separator <sep>   specify field separator (default: space)
  -z, --null              lines end with null bytes, not newlines
Mais quand je tente la commande le résultat est complètement illisible :

Code : Tout sélectionner

[sebastien@Lupus ~]$ pacsort --files /var/cache/pacman/pkg/a52dec-0.7.4-7-x86_64.pkg.tar.xz /var/cache/pacman/pkg/a52dec-0.7.4-8-x86_64.pkg.tar.xz
C
C3d
...

Re: [Pacman] Utilisation de pacsort

Publié : lun. 09 mars 2015, 22:45
par benjarobin
J'ai du regarder les sources pour comprendre...
Cela s'utilise de cette façon, ces 3 méthodes sont équivalentes :

Code : Tout sélectionner

pacsort -f <(ls /var/cache/pacman/pkg/)
ls /var/cache/pacman/pkg/ > /tmp/lst.txt; pacsort -f /tmp/lst.txt
ls /var/cache/pacman/pkg/ | pacsort
En gros pacsort s'attend à une liste de paquet, il peut la lire depuis un fichier ou depuis stdin

Re: [Pacman] Utilisation de pacsort

Publié : ven. 03 avr. 2015, 13:36
par lesebas
Salut... merci pour ta réponse que j'avais loupée. Oui effectivement j'avais eu la réponse en ouvrant une task sur le bug reports :

https://bugs.archlinux.org/task/44121

En fait le contexte de l'aide est très trompeur. Finalement pacsort utilise une autre fonction native de libalpm : vercmp. je suis donc reparti de cette fonction pour l’intégrer dans mon script pacleaner...

https://github.com/lesebas/pacleaner/co ... f638c7d7f3

https://aur.archlinux.org/packages/pacleaner/

Et ça marche plutôt bien. Mais en lisant ta réponse je me demande si ça ne vaut pas le coût d'utiliser pacsort qui est compilé plutôt que d'écrire le tri dans le script en python : qui est un peu long car interprété et en plus j'appelle la fonction vercmp externe au script à chaque passage de boucle.