Wie finde ich heraus, aus welchem Debian-Paket eine Datei stammt?
quelle
Wie finde ich heraus, aus welchem Debian-Paket eine Datei stammt?
In Debian gibt es mehrere Dienstprogramme, die diese Aufgabe ausführen. Auf dieser Seite finden Sie eine Beschreibung. Ich werde zwei davon erwähnen, apt-file
und dlocate
.
apt-file
Durchsucht den internen Cache, sodass Sie nicht alle zu durchsuchenden Pakete installieren können. Nachstehend finden Sie eine ausführlichere Anleitung.
dlocate
ist eine schnelle Alternative zu dpkg -L
(dem Befehl, der den Paketinhalt auflistet) und durchsucht daher nur installierte Pakete. Die Suche wird durchgeführt von dlocate -S file.name
.
Sie können auch Pakete online mit Such packages.debian.org Server (der Suche den Inhalt der Pakete Abschnitt).
apt-file
Es ist eine gute Idee, zuerst zu aktualisieren:
sudo apt-get update
Sehen Sie, wofür apt-file
ist:
apt-cache show apt-file
Es installieren:
sudo apt-get install apt-file
Daten aus Repositorys lesen (dies funktioniert auch ohne sudo
, erstellt dann aber den Cache des Benutzers; mit sudo
dem Cache wird systemweit gearbeitet):
sudo apt-file update
Suche durchführen. In diesem Beispiel möchten wir wissen, in welchem Paket sich die xrandr
ausführbare Datei befindet:
apt-file search xrandr
Es listet viele Pakete mit unxrandr
, lxrandr.mo
oder source_lxrandr.py
. In unserem Fall nicht sehr nützlich. Klügere Suche:
apt-file search -x /xrandr$
( $
bezeichnet das Zeilenende). Beispielausgabe:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
Das erste Ergebnis sieht nicht nach ausführbar aus, das zweite nach ausführbar. Wir können weiter untersuchen. Lauf:
apt-cache show x11-xserver-utils
Bingo! Das ist das Paket.
Wobei bash der Paketname ist.
quelle
dpkg-query -S
UND es sendet Sie auf dem falschen Weg der Installation von optionalen Paketen ..Eine andere Alternative:
Zumindest auf meinem Ubuntu scheinen beide im
dpkg
Paket zu sein, also kein wirklicher Vorteil für einen bestimmten ...quelle
Von der Installation generierte Dateien werden von nicht gefunden
dpkg -S
, wie unter https://askubuntu.com/a/667227/52975 angegebenWird beispielsweise
/bin/nc
angezeigt, wenn Sie das Paket installierennetcat-openbsd
.Aber auf:
wir bekommen
dpkg-query: no path found matching pattern /bin/nc
.Dies
/bin/nc
liegt daran, dass derupdate-alternatives
Aufruf im postinst-Skript generiert wird, das nach der Installation ausgeführt wird.Das funktioniert so, weil
/bin/nc
dasnetcat-traditional
Paket eine andere Version von bereitstellt.Ich glaube nicht, dass es einen allgemeinen Weg gibt, solche generierten Dateien zu finden. Im speziellen Fall alternativer Symlinks können wir dem Link einfach folgen mit
readlink -f
:quelle
Da ich mit Debian nicht vertraut war, war ich verblüfft, als ich dies versuchte:
Ein bisschen Nachforschung und ich fand das Paket:
quelle