Quiero ejecutar 'make install' para tener todo lo que necesito, pero me gustaría instalar las cosas en su propia carpeta en lugar de / usr / bin del sistema, etc. ¿es eso posible? incluso si hace referencia a herramientas en / usr / bin, etc.
148
Respuestas:
Depende del paquete. Si el Makefile es generado por GNU autotools (
./configure
), generalmente puede establecer la ubicación de destino de la siguiente manera:Si el Makefile no es generado por autotools, sino distribuido junto con el software, simplemente ábralo en un editor y cámbielo. El directorio de destino de la instalación probablemente esté definido en una variable en alguna parte.
fuente
make && make install
seguir la cláusula de configuración?--prefix
es que si ejecuta unstrings
binario resultante después, verá que la ruta está almacenada en su interior. No sé por qué sucede esto, pero ciertamente no quiero las rutas de mi máquina en los archivos binarios que envío a otros usuarios.Como no sabe qué versión de automake puede usar la variable de entorno DESTDIR .
Ver Makefile para estar seguro.
Por ejemplo:
fuente
Este comando rápido funcionó para mí para la instalación de opencv versión 3.2.0 en Ubuntu 16. La ruta DESTDIR puede ser relativa o absoluta.
Dicha redirección también puede ser útil en caso de que el usuario no tenga privilegios de administrador, siempre que la ubicación DESTDIR tenga acceso correcto para el usuario. por ejemplo / home //
fuente
Podría depender de lo que admite el módulo que está intentando compilar. Si su archivo MAKE se genera usando autotools, use:
--prefix=<myinstalldir>
cuando ejecuta el ./configure
algunos paquetes le permiten anular también cuando se ejecuta:
sin embargo, si no está usando ./configure, la única forma de saberlo con certeza es abrir el archivo MAKE y verificar. Debería ser una de las primeras variables en la parte superior.
fuente
make prefix=...
puede dar como resultado archivos binarios con rutas codificadas incorrectamente, ya que generalmente no se pueden modificar después de./configure --prefix=...
Si el paquete proporciona un
Makefile.PL
- uno puede usar:* explicación adicional: https://www.perlmonks.org/?node_id=564720
fuente
Probé las soluciones anteriores. Ninguno funcionó.
Al final, abrí el archivo Makefile y cambié manualmente la ruta del prefijo a la ruta de instalación deseada como se muestra a continuación.
Cuando intenté --prefix, "make" se quejó de que no hay tal entrada de comando. Sin embargo, quizás algunos paquetes acepten --prefix, que por supuesto es una solución más limpia.
fuente
--prefix
opción es a la./configure
que llamas ANTESmake
.intente usar INSTALL_ROOT.
fuente