Domanda Come elencare i pacchetti dipendenti (dipendenze inverse)?


Per cercare cosa ha causato l'installazione di un determinato pacchetto, mi piacerebbe avere una lista di pacchetti che dipendono da quel pacchetto. Non ho trovato nulla di ovvio in man dpkg.


137
2018-04-30 13:06


origine


Relazionato: askubuntu.com/questions/13296/... - Seth♦
Le risposte alle domande più vecchie girano tutte intorno aptitude, qualcosa che non è stato installato di default per anni. Nel 2017, tutti su Ubuntu hanno ancora apt-cache. Chiunque segua la domanda collegata si perderà in una discussione su un programma che pochi avranno. - Lambart


risposte:


apt-cache rdepends packagename dovrebbe fare quello che vuoi


177
2018-04-30 13:07



Eccellente! apt-cache rdepends tofrodos confermato il sospetto che è stato installato da un altro pacchetto (l'obsoleto dos2unix). - l0b0
Buon affare. Vorrei che ci fosse un'opzione ricorsiva. Purtroppo non ci sono per quanto ne so. - RobotHumans
Per quanto riguarda oggi (versione apt 0.9.9.1), c'è l'opzione --recurse che funziona con rdepends. - jarno
Se aggiungi --installed, l'output è utile anche per i pacchetti che possono essere utilizzati da molti altri: apt-cache rdepends --installed packagename - quazgar
Per l'output, perché alcuni dei pacchetti hanno una barra verticale (simbolo pipe) prima di loro? - Vahid Pazirandeh


aptitude ha un modo abbastanza piacevole di gestire questo:

$ aptitude why bash
i   foomatic-filters PreDepends bash (>= 2.05)

Per impostazione predefinita, elenca solo la ragione "più installata, più forte, più stretta, più corta", ma puoi usare aptitude -v why per far uscire tutto ciò che trova.


51
2018-05-01 13:41



Sembra che consideri solo i pacchetti installati, non tutto disponibile. E quello era ciò di cui avevo bisogno. - Tuukka Mustonen
Per quello che vuoi reverse-depends in ubuntu-dev-tools - tumbleweed
Che ne dici di Debian? - Tuukka Mustonen
ubuntu-dev-tools è in Debian - tumbleweed
È grandioso ho imparato che openssh-server  consigliato (e quindi installato) xauth su un server senza testa, trascinandolo dentro centinaia delle dipendenze x11 e dozzine di aggiornamenti inutili al mese. Questo è il problema con la gestione automatica dei pacchetti! - BaseZen


apt-cache showpkg <pkgname> 

Esempio:

apt-cache showpkg lightdm

14
2018-04-30 13:11





C'è più di un modo, con ogni metodo che mostra un output diverso.

Per una vista dettagliata dell'albero di dipendenza inversa completo;

aptitude install apt-rdepends
apt-rdepends -r bash

In alternativa;

apt-cache showpkg bash

O una lista concisa:

apt-cache rdepends bash

13
2018-05-01 13:52



Che cosa fa esattamente rdepends mostrare in quell'albero? apt-rdepends php7.0-fpm Spettacoli sed. sed non dipende da PHP, per non parlare di PHP FPM. - Dan Dascalescu
Dipende dal contrario, significa che PHP dipende da sed. - Erik Berkun-Drevnig
Ciao ragazzi, in realtà "apt-rdepends" sta per "dipendenza ricorsiva". Se si desidera la dipendenza ricorsiva inversa, è necessario digitare: apt-rdepends -r yourPackageNameHere - SebMa


Oltre ad altre buone risposte, facendo:

sudo apt -s remove <pkgname>

( -s Esegue una rimozione "simulata". )

Il comando di rimozione di solito elenca tutte le dipendenze / programmi / librerie che saranno interessati o che possono essere rimossi (orfani) insieme al pkg specificato. (Se esistono.)


3
2017-08-22 16:53



apt remove -s php7.0-fpm Spettacoli The following additional packages will be installed: apache2 apache2-bin apache2-data libapache2-mod-php7.0 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0. Perché apache viene installato se rimuovo PHP FPM? - Dan Dascalescu
@DanDascalescu Hmm. Potrebbe essere un brutto script di installazione / rimozione per apt pkg o potresti avere alcune altre dipendenze che installano apache2 come dep (ovvero un server web è necessario - e credo che apache2 sia un server web predefinito). Potrebbero essere alcune cose Non sono sicuro. Ha l'odore di un buon post su AskUbuntu se non hai trovato una risposta. - bshea