¿Hay alguna forma de obtener una lista de nombres de archivos/rutas que make install
copia al sistema de archivos? Algunos paquetes vienen con un archivo MANIFEST, pero no con los que estoy trabajando.¿Qué archivos copiaron `make install` y dónde?
Respuesta
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.
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.
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 .
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:
- de inicio con tan limpio como sea posible (se prefiere una imagen VM nueva)
- Compile el software, espere unos minutos.
- Instalar el paquete de software.
- 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).
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.
- 1. cmake "make install" a la máquina remota?
- 2. install make command sin tener make (mac os 10.5)
- 3. ¿Qué hace "make check"?
- 4. BSD Make y GNU Make makefile compatible
- 5. nginx install on linux
- 6. cabal-install y Debian
- 7. ¿Los archivos MAKE están completos?
- 8. Silverlight Install Base - ¿Qué tan grande es?
- 9. 'sudo gem install' o 'gem install' y ubicaciones de gemas
- 10. ¿Qué tan similares/diferentes son gnu make, microsoft nmake y posix standard make?
- 11. Linux configure/make, --prefix?
- 12. make distcheck y pruebas que necesitan archivos de entrada
- 13. ffmpeg install en CentOS 64-bit 'install with -fPIC' error
- 14. ¿Cómo se configura qmake para que mi aplicación se instale con "make install"?
- 15. fichero Make: compilar todos los archivos .cpp a .o archivos
- 16. CRealice e incluyendo otros archivos make
- 17. Compila múltiples archivos C con make
- 18. ¿Por qué falla `gem install rails`?
- 19. TFS 2010 no se copiaron archivos exe después de la compilación exitosa
- 20. Colón y $ en el archivo MAKE
- 21. "bundle install" fail while install rspec
- 22. ¿Qué es "-d" en "npm -d install"?
- 23. ¿Dónde funciona la función "Make Object ID" del depurador VB.Net?
- 24. Cocos2d install
- 25. ¿Qué hace exactamente Rails 3's Bundler "bundle install --deployment"?
- 26. Evite la recompilación con git y make
- 27. ¿Cómo usar make y compilar como C99?
- 28. coffeescript install
- 29. ¿Qué hace realmente RegAsm? ¿Dónde se copian los archivos?
- 30. haciendo caso omiso del símbolo (@) en los archivos MAKE
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