Indice
1. Introducción
Cuantas veces nos hemos encontrado con problemas de dependencias al querer instalar un paquete? , o simplemente queremos saber sus dependencias para no tener problemas en su instalación?
Esta pequeña guía es fruto de mis ratos de ocio husmeando por las paginas man de mi Debian GNU/Linux , y en la cual veremos como podemos saber y controlar las dependencias de un paquete con la herramienta apt-rdepends en Debian y derivadas.
Esta herramienta puede listar de manera recursiva dependencias entre paquetes, ya sea hacia delante o hacia detrás. También lista hacia adelante
las dependencias de compilación.
El formato de salida se parece bastante al de «apt-cache depends». De igual forma, puede generar gráficos a partir de un archivo .dot, muy parecidos a los de apt-cache en modo dotty.
2. Instalacion
#apt-get install apt-rdepends
3. Sintaxis y Opciones
Sintaxis
apt-rdepends [opciones] [paquete]
Opciones
-b, --build-depends
Muestra las dependencias directas del paquete seleccionado.
La salida generada al ser muy extensa (y para no aburrir) la he suprimido.
De todas formas los valores posibles que encontraremos son: Build-Depends, Build-Depends-Indep, Build-Conflicts, Build-Conflicts-Indep
-d, --dotty
Esta es una opción que a mi me ha gustado particularmente , claro , todo depende el uso que le demos.
En modalidad dotty nos lista los paquetes en la línea de comandos y genera la salida adecuada para ser usado por springgraph.El resultado será un conjunto de nodos y bordes que representan las relaciones entre los paquetes.
Las lineas azules son pre-dependencias , las verdes son conflictos , las amarillas son sugeridos , naranja son recomendados , rojas son reemplazos , y las negras son dependencias.
Atención , dotty no esta capacitado para graficar grandes listas de paquetes.
-p, --print-state
Muestra la versión del paquete y su estado.
-r, --reverse
Lista todos los paquetes que dependen del especificado. Además , se buscara en los paquetes que dependen de estos y encontrara sus dependientes.
-f, --follow=DEPENDS
Dada una lista de DEPENDS separadas por coma nos dara sus dependencias y predependencias.
Los valores posibles para DEPENDS son : Depends, PreDepends, Suggests, Recommends, Conflicts, Replaces, y Obsoletes.
-s, --show=DEPENDS
solo muestra las dependencias de los DEPENDS
--state-follow=STATES
--state-show=STATES
Estas dos opciones son similares a --follow y --show.Ambos tratan con el estado actual de un paquete.Por defecto , el valor de STATES es Unknown, NotInstalled, UnPacked, HalfConfigured, HalfInstalled, ConfigFiles, y Installed.
Estas opciones son útiles , si solo deseamos que busque las dependencias entre los paquetes instalados en el sistema .
O si solo queremos ver los paquetes instalados en el sistema.
apt-rdepends --state-follow=Installed --state-show=Installed paquete
2. Modo de Uso
# apt-rdepends -r esound
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
esound
Reverse Depende: fkiss (0.35-1)
Reverse Depende: gkrellmss (2.6-7)
Reverse Depende: moon-buggy-esd (1.0.51-5)
fkiss
gkrellmss
moon-buggy-esd
#apt-rdepends -f depends , depends
o
#apt-rdepends --follow=depends , depends
sudo apt-rdepends -f fkiss, esound
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
esound
Depende: esound-common (>= 0.2.36-3)
Depende: libaudiofile0 (>= 0.2.3-4)
Depende: libc6 (>= 2.3.5-1)
Depende: libesd-alsa0 (>= 0.2.35)
Depende: libesd0 (>= 0.2.35)
Depende: libwrap0
#apt-rdepends -s fkiss, esound
o
#apt-rdepends --show=fkiss , esound
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
esound
esound-common
libaudiofile0
libc6
libgcc1
gcc-4.3-base
libesd-alsa0
libasound2
libesd0
libwrap0
#apt-rdepends --state-follow=Installed paquete
sudo apt-rdepends --state-follow=Installed esound
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
esound
Depende: esound-common (>= 0.2.36-3)
Depende: libaudiofile0 (>= 0.2.3-4)
Depende: libc6 (>= 2.3.5-1)
Depende: libesd-alsa0 (>= 0.2.35)
Depende: libesd0 (>= 0.2.35)
Depende: libwrap0
esound-common
libaudiofile0
Depende: libc6 (>= 2.5-5)
libc6
Depende: libgcc1
libgcc1
Depende: gcc-4.3-base (= 4.3.1-9)
Depende: libc6 (>= 2.7-1)
gcc-4.3-base
libesd0
Depende: esound-common (>= 0.2.36-3)
Depende: libaudiofile0 (>= 0.2.3-4)
Depende: libc6 (>= 2.3.5-1)
libwrap0
Depende: libc6 (>= 2.7-1)
Fuentes:
man apt-rdepends y esdebian.org