Make install, pero no a los directorios predeterminados?


Quiero ejecutar 'make install' así que tengo todo lo que necesito, pero me gustaría que instalara las cosas en su propia carpeta en lugar del /usr/bin del sistema, etc. es eso posible? incluso si hace referencia a herramientas en /usr / bin, etc.?

Author: jww, 2010-07-13

7 answers

Depende del paquete. Si el Makefile es generado por GNU autotools (./configure) generalmente puede establecer la ubicación de destino de la siguiente manera:

./configure --prefix=/somewhere/else/than/usr/local

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 install probablemente esté definido en una variable en algún lugar.

 145
Author: Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-13 16:43:37

Dado que no sé qué versión de automake puede usar DESTDIR variable de entorno.
Consulte Makefile para estar seguro.

Por ejemplo:

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install
 26
Author: Andor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-08 09:11:19

Podría depender de lo que sea soportado por el módulo que está tratando de compilar. Si su makefile es generado usando autotools, use:

--prefix=<myinstalldir>

Cuando se ejecuta el ./ configure

Algunos paquetes le permiten también sobreescribir cuando se ejecuta:

make prefix=<myinstalldir>

Sin embargo, si no está usando ./ configure, la única forma de saberlo con seguridad es abrir el makefile y comprobar. Debería ser una de las primeras variables en la parte superior.

 13
Author: Tree77,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-07-15 17:20:48
make DESTDIR=./new/customized/path install

Este comando rápido funcionó para mí para la instalación de opencv release 3.2.0 en Ubuntu 16. La ruta de DESTDIR puede ser tanto relativa como absoluta.

Dicha redirección también puede ser útil en caso de que el usuario no tenga privilegios de administrador, siempre y cuando la ubicación DESTDIR tenga acceso correcto para el usuario. por ejemplo / home / /

 8
Author: samasat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-14 10:22:52

Si el paquete proporciona un Makefile.PL - se puede usar:

perl Makefile.PL PREFIX=/home/my/local/lib LIB=/home/my/local/lib
make
make test
make install

* explicación adicional: https://www.perlmonks.org/?node_id=564720

 1
Author: eli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-14 14:12:48

Probé las soluciones anteriores. Ninguno funcionó.

Al final abrí el archivo Makefile y cambié manualmente la ruta de prefijo a la ruta de instalación deseada como se muestra a continuación.

PREFIX ?= "installation path"

Cuando intenté pref prefix, "make" se quejó de que no hay tal entrada de comando. Sin embargo, tal vez algunos paquetes aceptan pref prefix que es, por supuesto, una solución más limpia.

 0
Author: Majid Azimi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-24 17:03:31

Intente usar INSTALL_ROOT.

make install INSTALL_ROOT=$INSTALL_DIRECTORY
 -5
Author: Christopher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-30 22:16:35