Wie kann ich in Arch Linux herausfinden, welches Paket, das die Datei X enthält, installiert werden soll?

92

Ich suche nach einem Paket, das eine bestimmte Binärdatei enthält, damit ich es installieren kann. Wie kann ich suchen, um herauszufinden, welche Pakete diese Binärdatei bereitstellen? (Anmerkung: Ich weiß, dass es mindestens ein Tool gibt, das dies tut, aber ich habe seinen Namen vergessen.)

Xenoterracid
quelle
Die Binärdatei, nach der ich suche, ist auch, /usr/sbin/ipsetwenn mich jemand auf das Paket hinweisen möchte, das sie bereitstellt, obwohl er die Antwort auf die Frage nicht kennt.
Xenoterracide
Gilles Antwort ist die richtige. In Bezug auf ipset konnte ich es nur in AUR aur.archlinux.org/packages.php?ID=16553
jasonwryan,

Antworten:

118

Seit pacman 5.0 gibt es eine integrierte Funktion zum Durchsuchen der Datenbank mit der -FOption. Aktualisieren Sie zuerst die Datenbank:

sudo pacman -Fy

Dann können Sie sehen , welches Paket enthält $filenamemit

pacman -Fs $filename

oder

pacman -Fos $path

nach einem vollständigen Pfad suchen.

Da Sie wussten, dass Sie nach einem Äquivalent von suchen apt-file, hätten Sie es im Pacman Rosetta nachschlagen können .

Alternativ können Sie pkgfile verwenden . Installieren Sie es mit pacman -S pkgfileund führen Sie es aus

sudo pkgfile -u

um die Datenbank zu aktualisieren. $filenameFühren Sie Folgendes aus , um zu sehen, was das Paket enthält

pkgfile $filename
Gilles
quelle
1
Danke für den Rosetta Stein! Ich werde das sowohl für RPM-Distributionen als auch für Pacman verwenden.
Jpaugh
3
Es ist erwähnenswert, dass die pacman -FsSuche nach dem Basisnamen erfolgt, wenn Sie den vollständigen Pfad verwenden möchten pacman -Fos. Beispiel: Gibt pacman -Fs /usr/bin/mount.cifsnichts zurück, wobei pacman -Fs mount.cifscifs-utils genauso korrekt zurückgegeben werden wiepacman -Fos /usr/bin/mount.cifs
Dev
27

der google weg:

site:www.archlinux.org/packages/ bin/filename

und falls es in AUR statt in einem offiziellen Paket ist:

site:aur.archlinux.org/packages/ bin/filename
Eshizhan
quelle
Gar nicht so schlecht.
Ychaouche
Toller Tipp, das scheint gute Ergebnisse zu bringen. Ich habe eine „Suchmaschine“ in Chrome mit dieser URL: https://www.google.com/search?q=site%3Awww.archlinux.org%2Fpackages%2F+%s.
Borek Bernard
22

Aus ArchWiki :

$ pacman -Qo df

Dies ergibt das Eigentümerpaket des Programms df(dies ist zum Zeitpunkt des Schreibens der Fall coreutils).

-Qo Funktioniert nur mit installierten Paketen und deren Programmen.

Sie können weitere Argumente in der Abfrage von Paketdatenbanken sehen .

amiad
quelle
4
Das sagt dir nur, welches Paket eine Datei besitzt, es sagt dir nicht, was du installieren musst, um sie zu bekommen.
David C. Bishop
@ DavidC.Bishop Ist das nicht dasselbe?
Victor
6
@Victor Nein, das Paket muss bereits auf dem System installiert sein, um es abzufragen.
David C. Bishop
@ DavidC.Bishop Ah ich verstehe, du meintest "welches installierte Paket besitzt eine Datei". Vielen Dank!
Victor
1
Bitte bearbeite deinen Beitrag, um zu reflektieren, was in den Kommentaren besprochen wurde.
Pompei2