script - ¿En qué consiste Linux/Unix ''make install''?
configure script (3)
Escribí un programa C ++ (línea de comando, código portátil) y estoy tratando de lanzar una versión de Linux al mismo tiempo que la versión de Windows. He escrito un archivo MAKE de la siguiente manera:
ayane: *.cpp *.h g++ -Wno-write-strings -oayane *.cpp
Lo suficientemente directo hasta ahora; pero me dieron a entender que es habitual tener un segundo paso, hacer la instalación. Entonces cuando pongo install: target en el makefile ... ¿qué comando debería asociarse con él? (De ser posible, preferiría que funcione en todos los sistemas Unix y en Linux).
Instalación
Un instalador menos trivial copiará varias cosas en su lugar, primero asegurando que existan las rutas apropiadas (usando mkdir -p
o similar). Típicamente algo como esto:
- el ejecutable va en
$INSTALL_PATH/bin
- todas las bibliotecas creadas para el consumo externo van en
$INSTALL_PATH/lib
o$INSTALL_PATH/lib/yourappname
- las páginas man entran
$INSTALL_PATH/share/man/man1
y posiblemente otras secciones si corresponde - otros documentos van en
$INSTALL_PATH/share/yourappname
- los archivos de configuración predeterminados van en
$INSTALL_PATH/etc/yourappname
- encabezados para que otros puedan enlazarse en
$INSTALL_PATH/include/yourappname
Ruta de instalación
El INSTALL_PATH
es una entrada al sistema de compilación, y por lo general está predeterminado a /usr/local
. Esto le da a su usuario la flexibilidad de instalar bajo su $ HOME sin necesidad de permiso elevado.
En el caso más simple, solo use
INSTALL_PATH?=/usr/local
en la parte superior del archivo MAKE. Entonces el usuario puede anularlo estableciendo una variable de entorno en su caparazón.
Desinstalación
También ocasionalmente ves make install
s que construyen un manifiesto para ayudar con la desinstalación. El manifiesto incluso se puede escribir como un script para hacer el trabajo.
Otro enfoque es simplemente make uninstall
una make uninstall
que busque las cosas que make install
lugares de make install
, y los elimine si existen.
En el caso más simple, simplemente copia el ejecutable recién creado en la ruta /usr/local/bin
. Por supuesto, generalmente es más complicado que eso.
Tenga en cuenta que la mayoría de estas operaciones requieren derechos especiales, por lo que make install
se suele invocar con sudo
.
make install suele ser el paso que "instala" el binario en el lugar correcto.
Por ejemplo, al compilar Vim, make install puede ubicarlo en / usr / local / bin
No todos los Makefiles tienen una instalación make