2010-07-13 8 views
75

Quiero ejecutar 'make install' para tener todo lo que necesito, pero me gustaría que instalara las cosas en su propia carpeta en lugar de la/usr/bin del sistema, etc. ¿es posible? incluso si hace referencia a las herramientas en/usr/bin, etc.Haga la instalación, pero no a los directorios predeterminados?

+2

Si ya ha creado el proyecto y ejecutó ./configure sin un prefijo y desea instalarlo en una ruta personalizada, consulte http://stackoverflow.com/a/17679654/313113 – bitek

Respuesta

118

Depende del paquete. Si el Makefile es generada por autotools de GNU (./configure) normalmente se puede establecer la ubicación de destino de este modo:

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

Si el Makefile no se genera por autotools, pero distribuido junto con el software, basta con abrirlo en una editor y cámbialo. El directorio de destino de instalación probablemente se define en alguna variable.

+5

no debería 'make && make install' seguir la cláusula configure? – nass

+4

Por supuesto. Supuse que el OP lo sabría. – Thomas

12

Podría depender de lo que admita el módulo que está intentando compilar. Si su archivo MAKE se genera mediante el uso de autotools, utilice:

--prefix=<myinstalldir>

cuando se ejecuta el ./configure

algunos paquetes le permiten anular también cuando se ejecuta:

make prefix=<myinstalldir> 

sin embargo, si Si no usa ./configure, la única manera de saberlo con certeza es abrir el archivo MAKE y verificar. Debería ser una de las primeras pocas variables en la parte superior.

+2

también debe tener en cuenta que 'make prefix = ...' puede dar como resultado archivos binarios con rutas codificadas erróneas, ya que normalmente no se pueden modificar después de './configure --prefix = ...' –

22

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

Por ejemplo:

export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install 
+5

Esto funciona cuando ejecutó configure sin --prefijo de línea de comando de prefijo y ya creó el proyecto, pero no desea instalarlo en las ubicaciones predeterminadas, sino que especifica una ruta de instalación personalizada. Esto agregará el usr/local/bin/path predeterminado al DESTDIR y su proyecto se instalará en $ HOME/Software/LocalInstall/usr/local/bin/ – bitek

-5

tratar de usar RAÍZ_INSTALACIÓN.

make install INSTALL_ROOT=$INSTALL_DIRECTORY 
+6

No sugiera que las personas "intenten" algo sin información que lo corrobore. – RichieHH

6
make DESTDIR=./new/customized/path install 

Este comando rápido trabajó para mí para la instalación de liberación OpenCV 3.2.0 en Ubuntu ruta 16. DESTDIR puede ser relativa, así como 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. ej./home //

Cuestiones relacionadas