script make linux unix installer makefile

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