Um zu untersuchen, was die Installation eines bestimmten Pakets verursacht hat, möchte ich eine Liste der Pakete erhalten, die von diesem Paket abhängen. Ich konnte nichts Offensichtliches darin finden man dpkg
.
201
Um zu untersuchen, was die Installation eines bestimmten Pakets verursacht hat, möchte ich eine Liste der Pakete erhalten, die von diesem Paket abhängen. Ich konnte nichts Offensichtliches darin finden man dpkg
.
aptitude
etwas, das seit Jahren nicht mehr standardmäßig installiert wurde. Im Jahr 2017 hat noch jeder auf Ubuntuapt-cache
. Wer der verknüpften Frage folgt, wird sich in einer Diskussion über ein Programm verlieren, das nur wenige haben.Antworten:
apt-cache rdepends packagename
sollte tun, was du willstquelle
apt-cache rdepends tofrodos
bestätigte den Verdacht, dass es von einem anderen Paket installiert wurde (das veraltetedos2unix
).--installed
, ist die Ausgabe sogar für Pakete nützlich, die von vielen anderen verwendet werden können:apt-cache rdepends --installed packagename
sudo apt rdepends packagename
(es wird Beachten Sie apt-cache nicht verwenden , sondern einfach apt)aptitude hat eine ziemlich gute Art, damit umzugehen:
Standardmäßig wird nur der "am meisten installierte, stärkste, engste, kürzeste" Grund aufgeführt, aber Sie können ihn dazu verwenden
aptitude -v why
, alles auszugeben, was er findet.quelle
reverse-depends
Inubuntu-dev-tools
ubuntu-dev-tools
ist in Debianopenssh-server
empfohlen (und daher installiert) wurdexauth
, indem Hunderte von x11-Abhängigkeiten und Dutzende von nutzlosen Updates pro Monat hinzugefügt wurden. Das ist das Problem bei der automatisierten Paketverwaltung!Beispiel:
quelle
apt showpkg <pkgname>
Es gibt mehr als eine Möglichkeit, wobei jede Methode eine andere Ausgabe zeigt.
Für eine detaillierte Ansicht des vollständigen umgekehrten Abhängigkeitsbaums;
Alternative;
Oder eine kurze Liste:
quelle
rdepends
zeigt dieser Baum?apt-rdepends php7.0-fpm
zeigtsed
.sed
hängt nicht von PHP ab, geschweige denn von PHP FPM.apt-rdepends -r yourPackageNameHere
Die einfachste Option ist immer noch:
Hierfür müssen Sie kein Paket installieren.
quelle
apt-cache
. Es ist genau das, was ich gerade brauchte (Debuggen einer glibc 2.28-Inkompatibilität, also Upvoting)Zusätzlich zu anderen guten Antworten führt ein APT / APT-GET
-s
ein "simuliertes" Entfernen (oder Installieren) durch.sudo apt -s remove <pkgname>
Wenn Sie Pakete mit
-s
oder--simulated
entfernen (oder installieren), werden normalerweise alle betroffenen Abhängigkeiten aufgelistet. Es werden verwaiste Pakete beim Entfernen oder benötigte Abhängigkeiten bei der Installation angezeigt, ohne dass dasinstall
oder ausgeführt wirdremove
. Nur zur Information.quelle
apt remove -s php7.0-fpm
zeigtThe following additional packages will be installed: apache2 apache2-bin apache2-data libapache2-mod-php7.0 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
. Warum sollte Apache installiert werden, wenn ich PHP FPM entferne?