Wie finde ich ein Paket, das eine bestimmte Datei in OpenSuSE bereitstellt?


11

Ich denke an einige wie Contents-<arch>.gzan Debian. Ein Netzwerkdienst war auch in Ordnung. Existiert es?

Einfache Ausarbeitung: Zum Beispiel benötigen wir eine Binärdatei mit dem Namen exampletool, die wir aus anderen Distributionen oder Betriebssystemen sehr gut kennen. Wir wollen das zum Beispiel mit zypper installieren. Zypper kann jedoch nur ein Paket installieren. Um herauszufinden, in welchem ​​Paket wir die erforderliche exampletoolBinärdatei finden können, müssen wir praktisch eine Suche und im Idealfall eine schnelle, indizierte Suche in der Dateiliste der derzeit nicht installierten, aber in den verfügbaren Repositorys enthaltenen Pakete durchführen . Unter Debian befindet sich in den genannten Paket-Repositorys eine Indexdatei Contents-amd64.gz, in der wir das erforderliche Paket mit einem einzigen zgrepBefehl finden können. Ich suche auch für OpenSUSE nach einer ähnlichen Lösung mit nur einem Befehl. Wenn es keine gibt, war ein Webdienst für dieselbe Funktionalität ebenfalls in Ordnung.

Antworten:


7

Um aus allen verfügbaren Paketen nach einer bestimmten Datei zu suchen, können Sie die Option wpoder se --provides --match-exactals Beispiel verwenden:

zypper se --provides --match-exact hg

Sie sehen eine Ausgabe ähnlich der folgenden:

Loading repository data...
Reading installed packages...

S | Name      | Summary                  | Type   
--+-----------+--------------------------+--------
  | mercurial | Scalable Distributed SCM | package

Ab diesem Zeitpunkt können Sie das Paket über eine Standard-Zypper-Installation installieren

zypper in mercurial

Es ist zu beachten, dass dies zypper wpveraltet ist und möglicherweise nicht mehr verfügbar ist.


Dies ist nicht immer zuverlässig. Ich weiß nicht warum, aber Dateinamen wie zypper search --provides [--match-exact] getenforcegeben keine Ergebnisse zurück, während dies der zypper search --provides nslookupFall ist.
Lester

6

Für die Googler der Zukunft: Neben der wunderbaren Lösung von @SailorCire :-) gibt es auch ein Tool namens scout, das praktisch alles durchsuchen kann. Wir können RPM-s für eine Binärdatei finden, genauso wie wir die finden können Gläser für eine bestimmte Java-Klasse.

Zum Beispiel können wir den binBefehl scout verwenden, um herauszufinden, welches Paket die hgausführbare Datei bereitstellt :

scout bin hg

Das Ergebnis dieser Suche ist das mercurialPaket:

 repository      | package   | path     | binary
-----------------+-----------+----------+--------
 zypp (repo-oss) | mercurial | /usr/bin | hg    

Können Sie bitte etwas genauer auf das scoutTool eingehen? Können Sie dem Code seinen vollständigen Namen oder seine URL geben?
SebMa

@SebMa Es konnte von RPM heruntergeladen werden, wahrscheinlich von Zypper. Es ist möglich, dass es sich um ein nicht standardmäßiges Repo handelte. Ich kann mich nicht gut erinnern :-( Ich benutze SuSE nicht mehr. Aber es ist durchaus möglich, dass ich es sein werde, dann werde ich es überprüfen und erklären, was ich gefunden habe. Es ist möglich, dass sich SuSE sehr verändert hat seitdem.
Peter

Auf meinem Jolla1-Gerät (SailFishOS) zypper wp scoutsagtNo matching items found.
SebMa

@SebMa Googeln nach "Scout Tool RPM" Ich habe diesen Link sofort gefunden , im Moment kann ich nicht mehr helfen. Wahrscheinlich müssen Sie es von einem nicht standardmäßigen Repository installieren.
Peter - Wiedereinsetzung Monica

Auf dem von Ihnen angegebenen Link steht: "Scout ist eine Schnittstelle zu Tomboy-Notizen oder Gnote, die DBus zur Kommunikation verwendet." Ich bin mir nicht sicher, ob das das Werkzeug ist, nach dem wir suchen.
SebMa

1

Ich verwende Gecko Linux XFCE. Ich habe Yast2 geöffnet und gnome-search-tool und gnome-shell-search-provider- nautilus installiert . Es funktioniert gut, genau wie Catfish.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.