Mit rpm schnell nach einem Paket suchen

Bitte beachtet auch die Anmerkungen zu den HowTos!

Wenn es darum geht, beispielsweise alle installierten Kernel-Pakete aufgelistet zu bekommen, verwenden viele entweder

rpm -qa | gerp kernel

oder

yum list installed | grep kernel

Beide Möglichkeiten sind jedoch nicht unbedingt performant, da man eine große Menge an Daten abruft und diese dann gefiltert ausgibt.

Schneller geht es mit folgendem Befehl

rpm -qa kernel\*

An sich kann rpm zwar nicht mit dem * als Wildcard umgehen, da es als normales Zeichen interpretiert wird. Stellt man dem Sternchen jedoch einen Backslash voran, sagt man der Shell damit, das sie das Sternchen nicht (selber) interpretieren sondern an rpm weiterreichen soll.

Der Vorteil dieser Methode ist, das man sich nicht erst die komplette Liste der installierten Pakete ausgeben lässt, sondern das rpm nur die Pakete ausgibt, deren Name mit dem übergebenen Namen übereinstimmt.

Edit: Eine weitere recht performante Möglichkeit ist, yums Cache abzufragen. Das lässt sich über folgendes Kommando bewerkstelligen:

su -c'yum -C list installed kernel\*'

Danke an Kai für den Hinweis!

4 Antworten auf „Mit rpm schnell nach einem Paket suchen“

  1. Das stimmt so nicht ganz. Der Backslash vor dem Stern verhindert, dass die Shell – also normalerweise bash – das sog. globbing durchführt, d. h. den Ausdruck als Namensmuster im Dateisystem interpretiert, indem sie ihn durch die Liste der Datei- und Verzeichnisnamen ersetzt (hier: im aktuellen Verzeichnis), die mit „kernel“ anfangen.

    Man übergibt per Backslash das Kommandozeilen-Argument quasi „geschützt“ an rpm -qa. Die Option -a bzw. –all ist ausschlaggebend dafür, dass rpm die Verwendung von Sternchen erlaubt.

    Die installierten Kernel lassen sich übrigens auch relativ schnell abfragen, wenn man yum auf seinen Cache zurückgreifen lässt:
    sudo yum -C list installed kernel
    Oder für alle Kernel-bezogenen Pakete:
    sudo yum -C list installed kernel\*

Kommentare sind geschlossen.