it-swarm.dev

¿Hacer instalación, pero no a directorios por defecto?

Quiero ejecutar 'make install', así que tengo todo lo que necesito, pero me gustaría instalar las cosas en su propia carpeta en lugar de en el sistema/usr/bin etc. ¿Incluso si hace referencia a herramientas en/usr/bin, etc.?

120
Jon Phenow

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

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

Si Makefile no se genera mediante autotools, sino que se distribuye junto con el software, simplemente ábralo en un editor y cámbielo. El directorio de destino de instalación probablemente está definido en una variable en algún lugar.

171
Thomas

Ya que no sabe qué versión de automake puede usarDESTDIRvariable de entorno.
Vea Makefile para estar seguro.

Por ejemplo:

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install
31
Andor

Podría depender de lo que sea compatible con el módulo que está intentando compilar. Si tu makefile se genera usando autotools, usa:

--prefix=<myinstalldir>

cuando se ejecuta el ./configure

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

make prefix=<myinstalldir>

sin embargo, si no está utilizando ./configure, la única forma de saberlo con certeza es abrir el archivo MAKE y verificarlo. Debe ser una de las primeras variables en la parte superior.

16
Tree77
make DESTDIR=./new/customized/path install

Este comando rápido me funcionó para la instalación de opencv versión 3.2.0 en Ubuntu 16. La ruta DESTDIR puede ser relativa y 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 //

14
samasat

Si el paquete proporciona un Makefile.PL - uno 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

2
eli

Probé las soluciones anteriores. Ninguno funciono.

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é --prefix, "make" se quejó de que no hay tal entrada de comando. Sin embargo, quizás algunos paquetes acepten --prefix que es, por supuesto, una solución más limpia.

0
Majid Azimi