2009-10-01 11 views

Respuesta

11

La forma más infalible es usar chroot: hacer que "make install" se ejecute dentro de una cárcel chroot; calcule una lista de los archivos que tenía antes de la instalación y compárela con la lista de archivos después de la instalación.

Muchas instalaciones admiten una opción de configuración de prefijo y/o una variable de entorno DESTDIR. Puede usarlos para una versión más liviana de chroot (confiando en que la instalación fallará si intenta escribir en una ubicación fuera de estos si ejecuta la instalación como un usuario bastante desfavorecido).

Otro enfoque es reemplazar el programa de instalación. Muchos paquetes admiten una variable de entorno INSTALL que, bueno, es el programa de instalación a usar; hay versiones de rastreo de instalación alrededor.

3

Es diferente para cada proyecto en el que ejecuta 'make install'. Los archivos que están instalados están controlados por el objetivo de instalación en el archivo Makefile que se está utilizando. Su mejor opción es abrir el archivo Makefile y buscar 'instalar': desde allí puede ver qué archivos se copiarán en su sistema.

13

Estaba investigando esto yo mismo al compilar una versión personalizada de QEMU. He utilizado el siguiente método para trabajar en lo que se instala y dónde (así como usarlo como base para un archivo .deb):

mkdir /tmp/installer 
./configure --target-list=i386-softmmu 
make 
sudo make install DESTDIR=/tmp/installer 
cd /tmp/installer 
tree . 

árbol es una utilidad que muestra de forma recursiva el contenido de un directorio una manera visualmente atractiva - sudo apt-get install tree para usuarios de Debian/Ubuntu

Espero que ayude a alguien ... me costó un poco hurgar, pero me pareció una forma bastante útil de visualizar lo que estaba pasando .

+0

ls -R (junto con las demás opciones de formato que desee) y la opción -printf para encontrar GNU también son relevantes para responder la pregunta "¿Qué hay en este directorio?". – dannysauer

0

Si el programa que está utilizando no es compatible DESTDIR o --prefix (o un equivalente) instalar, he encontrado que puede ser posible identificar nuevos archivos de la siguiente manera:

  1. de inicio con tan limpio como sea posible (se prefiere una imagen VM nueva)
  2. Compile el software, espere unos minutos.
  3. Instalar el paquete de software.
  4. Buscar archivos modificados en los últimos 5 minutos: sudo find/-mmin -5 -type f (el comando find tiene un montón de parámetros para consultar en función de los tiempos de modificación/creación de archivos, pero esto funcionó bastante bien para mí, solo necesita reducir el lapso de tiempo para que recoges los archivos creados por el instalador pero nada más).
2

make uninstall podría mostrar los archivos, ya que les quita si el autor de las instrucciones de compilación proporciona la información para permitir una desinstalación (que ha sido un tiempo desde que he hecho uno así que no puedo decir con certeza).

También make -n install hará un "ru seco n" del proceso de instalar y puede ser razonable para extraer la información de sus resultados.

Cuestiones relacionadas