Para investigar qué causó la instalación de un paquete dado, me gustaría obtener una lista de paquetes que dependen de ese paquete. No pude encontrar nada obvio en man dpkg
.
Para investigar qué causó la instalación de un paquete dado, me gustaría obtener una lista de paquetes que dependen de ese paquete. No pude encontrar nada obvio en man dpkg
.
apt-cache rdepends packagename
deberías hacer lo que quieras
apt-cache rdepends tofrodos
confirmó la sospecha de que fue instalado por otro paquete (el obsoleto dos2unix
).
--installed
, el resultado es incluso útil para paquetes que pueden ser utilizados por muchos otros:apt-cache rdepends --installed packagename
sudo apt rdepends packagename
(Note que no está usando apt-cache sino simplemente apt)
aptitude tiene una forma bastante buena de manejar esto:
$ aptitude why bash
i foomatic-filters PreDepends bash (>= 2.05)
De manera predeterminada, solo enumera la razón "más instalada, más fuerte, más ajustada, más corta", pero puede usarla aptitude -v why
para que muestre todo lo que encuentre.
reverse-depends
enubuntu-dev-tools
ubuntu-dev-tools
está en Debian
openssh-server
recomendado (y por lo tanto instalado) xauth
en un servidor sin cabeza, arrastrando cientos de dependencias x11 y docenas de actualizaciones inútiles al mes. ¡Ese es el problema con la gestión automatizada de paquetes!
apt-cache showpkg <pkgname>
Ejemplo:
apt-cache showpkg lightdm
apt showpkg <pkgname>
Hay más de una forma, con cada método mostrando una salida diferente.
Para una vista detallada del árbol de dependencia inversa completo;
aptitude install apt-rdepends
apt-rdepends -r bash
Alternativamente;
apt-cache showpkg bash
O una lista concisa:
apt-cache rdepends bash
rdepends
muestra exactamente en ese árbol? apt-rdepends php7.0-fpm
muestra sed
. sed
no depende de PHP, y mucho menos de PHP FPM.
apt-rdepends -r yourPackageNameHere
La opción más simple sigue siendo:
apt rdepends package-name
lo cual no requiere que instales ningún paquete.
apt-cache
la salida de s. Es exactamente lo que necesitaba en este momento (depurar una incompatibilidad de glibc 2.28, así que votar)
Además de otras buenas respuestas, un APT / APT-GET -s
realiza una eliminación (o instalación) "simulada".
sudo apt -s remove <pkgname>
Al usar -s
o --simulated
para eliminar (o instalar) paquetes, normalmente se enumerarán las dependencias afectadas. Mostrará paquetes huérfanos al eliminar o dependencias necesarias al instalar sin ejecutar realmente el install
o remove
. Solo informativo.
apt remove -s php7.0-fpm
muestra The following additional packages will be installed: apache2 apache2-bin apache2-data libapache2-mod-php7.0 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.1-0
. ¿Por qué se instalaría Apache si elimino PHP FPM?
aptitude
algo que no se ha instalado por defecto durante años. En 2017, todos en Ubuntu todavía lo tienenapt-cache
. Cualquiera que siga la pregunta vinculada se perderá en una discusión sobre un programa que pocos tendrán.