¿Cómo encuentro las dependencias de compilación de un paquete?

48

Me gustaría saber qué paquetes

sudo apt-get build-dep <package>

instalaría (si ya tengo algunas dependencias instaladas, también me gustaría verlas → así que ejecutar o simular lo anterior no es suficiente). Línea de comando preferida.

htorque
fuente
1
Estoy confundido, ¿no sudo apt-get build-dep <package>muestra la lista de paquetes (si el paquete tiene dependencias de compilación) que se va a instalar?
Isaías
1
Desafortunadamente, eso solo muestra paquetes que no están instalados.
htorque

Respuestas:

45

Para obtener una lista completa de dependencias, incluidas las dependencias de las dependencias, puede usar:

apt-rdepends --build-depends openoffice.org

El comando puede recordarle que instale apt-rdependsprimero.

Puede usar el siguiente comando para mostrar solo los que no están instalados:

apt-rdepends --build-depends --print-state openoffice.org | grep NotInstalled

Ver apt-rdepends --helppara todas las opciones.

Nota : Esto generará una lista masiva .
apt-rdepends -b xterm, por ejemplo, genera 8773 líneas de salida y se toma su tiempo para hacerlo.

Si solo desea ver los paquetes necesarios para compilar el paquete superior, es decir, qué necesito instalar para compilar nautilus, ejecute:

apt-rdepends --build-depends --follow=DEPENDS nautilus

Esto es más o menos equivalente a la respuesta de Carsten Thiel ( The following NEW packages will be installed), pero el formato de salida es un poco más agradable. También solo muestra el paquete superior, mientras que apt-get simulado también muestra los paquetes instalados como dependencias de ellos.

Esto también muestra los paquetes que están instalados. Pero también puede mostrar paquetes que están instalados por defecto. Desafortunadamente, ninguno de los métodos es de gran ayuda cuando intentas limpiar tu sistema después de ejecutar apt-get build-dep. Hasta donde sé, no hay un método confiable para encontrar cuáles se instalaron, excepto mirar el archivo de registro de apt en /var/log/apt/history.log.

Stefano Palazzo
fuente
1
Gracias, la versión con --follow=DEPENDSes exactamente lo que estaba buscando. También puede encontrar esas dependencias de compilación en Launchpad, por ejemplo. para Nautilus: launchpad.net/ubuntu/natty/+source/nautilus (desplácese hacia abajo).
htorque
17

La opción -s( --simulate) generará todo lo que se haría sin hacer nada. Ni siquiera necesita privilegios de root para eso.

apt-get -s build-dep <package>
Carsten Thiel
fuente
66
Vea mi comentario anterior: esto no mostrará los paquetes ya instalados. Perdón por no ser preciso en mi pregunta.
htorque
No funciona - falla conE: Unable to find a source package for inkscape
anatoly techtonik
17
apt-cache showsrc <pkgname> | grep ^Build-Depends

showsrcmuestra el archivo debian / control para un paquete fuente dado. Luego buscamos las líneas que comienzan con 'Build-Depends' que tiene la lista de paquetes necesarios para construir desde la fuente.

anónimo
fuente
+1 si explica qué apt-cache showsrcy qué | grephace. Aún así, buena respuesta. Gracias por tomarse el tiempo para proporcionarlo.
MadMike
sudo apt-cache showsrc inkscapeno funciona inkscapeen Ubuntu 18.10 - daW: Unable to locate package inkscape N: No packages found
anatoly techtonik
@anatolytechtonik acaba de probar en Ubuntu 18.10 en Docker, funciona para mí. ¿Lo hiciste apt-get updateprimero?
Stéphane Gourichon
Esta debería ser la respuesta aceptada, ya que proporciona la herramienta necesaria y no necesita ningún paquete adicional.
Stéphane Gourichon