Obtenga una list de las bibliotecas requeridas cuando instale algo desde la fuente

Al instalar algo desde el origen (digamos, Ruby 1.9.2), ¿qué command puedo ejecutar para get una list completa de todas las dependencies necesarias para instalar esa aplicación? es posible?

Respuesta corta: no es posible . La dificultad de get las dependencies exactas de una distribución de origen es la razón por la cual la administración de packages es tan popular en Linux (está bien, una de varias razones). De hecho, si solo necesita hacerlo y no le importa cómo, la forma más confiable de get las dependencies probablemente sea tomar un package de distribución (los ebuilds de gentoo son fáciles de usar) y sacar la list de dependencies de eso.

De lo contrario, si tienes suerte, los mantenedores habrán creado una list de las dependencies en el file README o similar; ese sería el primer lugar para verificar. En su defecto, si se trata de un proyecto en C y no le molesta ensuciarse las manos, puede search dentro del script de configuration (o mejor aún, el file configure.ac o lo que sea que se genere) y descubrir las dependencies a partir de eso en function de qué comtesting.

Construyendo desde la fuente

No conozco ninguna forma programática, generalmente miro las notas de la versión y / o los files README del software para tener una idea general. Esto funciona como un process iterativo en el que podría encontrar una biblioteca o dos que no tengo o que no pude encontrar y necesito getlas.

Construir usando un administrador de packages

Si, por otro lado, está utilizando un administrador de packages como apt o yum entonces puede solicitar la ayuda de estos sistemas para ayudar a instalar todas las dependencies antes de time, antes de instalar / crear el package en cuestión.

distros basados ​​en apt

 $ sudo apt-get build-dep <package> 

distribuciones basadas en yum

 $ sudo yum-builddep --nogpgcheck <source package> 

-o-

 $ sudo yum-builddep --nogpgcheck <package> 

En general, tampoco puedo darte una solución al 100%, pero para la mayoría de las fonts que usan autotools , puedes grep configure.ac para AC_SEARCH_LIBS , AC_CHECK_HEADERS y PKG_CHECK_MODULES .

El primer argumento de AC_CHECK_HEADERS es un nombre de file o incluso una ruta con un nombre de file.

PKG_CHECK_MODULES se introduce con pkg-config y, IIRC, el segundo argumento de PKG_CHECK_MODULES incluye un nombre de package para el que debe existir un file <pkg-name>.pc .

El segundo argumento para AC_SEARCH_LIBS es un nombre de biblioteca y con Linux está buscando un file que comience con lib<second-argument-to AC_SEARCH_LIBS>.so .

Ninguno de los dos es perfecto y esto no necesita darle una list completa de requisitos, pero …

  1. los encargados de la fuente tienen un mayor interés en ver que estas tres cosas lo llevarán a una list completa de requisitos.

  2. con un poco de secuencias de commands puede usar estas tres cosas para search en los packages de su distribución y encontrar packages que le brinden los files que faltan. Por ejemplo, usando apt-file search para todos los Linux basados ​​en Debian, como menciona Faheem Mitha.

En Ubuntu (Debian): sudo apt-get build-dep <package>