Forum général.général Virer les doublons rpm

Posté par  (site Web personnel) .
Étiquettes : aucune
0
3
avr.
2005
Bonjour à tous
Suite à une manip foireuse j'ai plein de rpms en double. Je cherche une méthode pour virer les plus anciens. J'imagine qu'avec une capture de rpm -qa puis un coup de sed ou uniq ou je sais pas quoi on doit pouvoir obtenir qu'on rebalance dans rpm -e, mais je vois pas trop quoi. Vous feriez comment vous ? :-)
  • # .

    Posté par  . Évalué à 3.

    J'ai pas acces à un shell donc il faudra que tu testes toi meme mais sans doute que qqch comme :

    rpm -qa --queryformat "%{NAME}|%{VERSION}|%{RELEASE}\n" | sort | awk -F '|' '{ if (a==$1) { print b ; print $0 } a=$1; b=$0 }'

    La precedente doit te donner les rpms avec le meme nom. Si ils sont correctements triés, tu peux tenter dans le awk de faire un system("rpm -e "$1"-"$2) ou qqch comme ca.
    • [^] # Re: .

      Posté par  (site Web personnel) . Évalué à 1.

      Y en a qui touchent en bash... Merci pour ton script, effectivement il me retourne les packages en double, version la plus vieille en haut. Vu que je connais pas grand chose à awk (faut que je m'y mettes, j'arrive à faire mumuse avec sed mais par encore avec awk), c'était juste pour voir si c'est bient le résultat que tu escomptais (apparemment oui), et donc si je peux envoyer le rpm -e les yeux fermés (c'est que ça m'embêterait de flinguer le système). Dans ce cas là je le place à la place de print b ; print $0 ?
      Merci d'avance
      • [^] # Re: .

        Posté par  (site Web personnel) . Évalué à 1.

        Je réponds tout seul : effectivement en injectant rpm -e ça marche, à ceci près que j'ai du rajouter $3, parce que c'était vraiment des versions proches. J'ai dirigé la sortie vers un fichier texte pour une verif ultime, puis passé tout ça au rpm -e. Merci beaucoup encore.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.