Kann mir yum sagen, welche meine Repositories ein bestimmtes Paket zur Verfügung stellen?

StackOverflow https://stackoverflow.com/questions/635869

  •  10-07-2019
  •  | 
  •  

Frage

Hoffentlich kurze Version der Frage: Wenn ich auf einer Maschine bin, dass ein bestimmtes Paket installiert hat, gibt es ein yum-Befehl, der mir sagen wird, welche es konfigurierten Repositorys das Paket zur Verfügung gestellt? (Oder alternativ, welche Repository würde ein noch-zu-sein-installiertes Paket.)

Hintergrund bei einigem Kontext benötigt wird: Wir haben ein Labyrinth von yum-Repositories, die wir aus ziehen. Ich habe eine Maschine, die ein bestimmtes RPM-Paket installiert ist, und eine andere Maschine mit einem scheinbar nicht genügend Labyrinth von Endlagern konfiguriert ist, und so bin ich nicht in der Lage, das Paket ich auf dieser Maschine installieren möchten. Ich brauche die minimal erforderlichen Repositories auf die neue Maschine hinzuzufügen. Ich kann nicht nur der Schrotflinte die Repositories von einer Maschine zur anderen. Und Ausgehen und die Drehzahl Grabbing ist keine Option, da ich brauche diese reproduzierbar zu sein.

War es hilfreich?

Lösung

yum list packagename

Das zeigen wird, aus dem die Paket-Repository in der dritten Spalte der Ausgabe ist.

Für bereits installierte Pakete, das wird nicht funktionieren, da die dritte Spalte zeigt nur „installiert“. In diesem Fall können Sie tun, zum Beispiel „Rpm -qi Paket“, in der Regel der Verkäufer, Packager und Host-Tags Erstellen Sie einen Hinweis auf das geben Repository das Paket gehört. Auch ist es durchaus üblich, einige Repo-Symbol auf die Paketversionsnummer angehängt wird.

Andere Tipps

repoquery -i {packagename} 

Dies gibt Ihnen den tatsächlichen Repo Namen vs der nicht hilfreich „installiert“, dass yum zurückkehrt. repoquery durch yum-utils zur Verfügung gestellt.

Sie können yum -v search verwenden, die Sie Pakete zusammen mit Repo zeigen würde es in ist. Wenn Sie auch --showduplicates hinzufügen finden Sie alle Versionen dieses Pakets sehen.

Kredit an: http://www.spinics.net/linux/fedora /yum/msg11975.html

Für ein einzelnes Paket, können Sie dies mit

finden
PACKAGE=ruby-enterprise
repoquery --qf "%{repoid}" $PACKAGE

Ersetzen Sie $ -Paket mit dem Namen des Pakets, die Sie interessieren.

Sie können alle Pakete finden, die aus einem bestimmten Repository kam mit

REPO=ruby-enterprise-opt
repoquery --repoid=$REPO -a --qf "%{name}" | sort > repo_packages
rpm -qa --qf "%{name}\n" | sort > installed_packages
comm -1 -2 repo_packages installed_packages

Ersetzen Sie $ REPO mit der ID des Repositorys um dich kümmern; Sie können die IDs aller aktivierten Repositorys mit yum repolist sehen.

Hier sind einige Möglichkeiten für das Repository für ein bestimmtes installierte Paket zu entdecken:

rpm -qi {packagename}

oder

repoquery -i {packagename}

Referenzen:

yum reinstall [package_name]

Dann fragt, wann zu bestätigen, können Sie N wählen, um Ihr System zu ändern:

Beispiel für die Ausgabe auf einem CentOS:

Resolving Dependencies
--> Running transaction check
---> Package mc.x86_64 1:4.6.1a-35.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                      Arch                             Version                                   Repository                      Size
==============================================================================================================================================
Reinstalling:
 mc                           x86_64                           1:4.6.1a-35.el5                           base                           2.1 M

Transaction Summary
==============================================================================================================================================
Remove        0 Package(s)
Reinstall     1 Package(s)
Downgrade     0 Package(s)

Total download size: 2.1 M
Is this ok [y/N]:
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top