Acabo de descargar algunos archivos de encabezado nuevos y tengo una carpeta con ellos que deseo que esté disponible. Primero, me gustaría ponerlos a disposición de cualquier archivo que desee utilizarlos. Entonces, me gustaría poder incluir el nuevo archivo de encabezado (llámelo newheader.h) donde quiera, como por ejemplo math.h. ¿Dónde debería ponerlo?
En segundo lugar, deseo que estos archivos estén disponibles para todos los usuarios. Tengo permisos de root. ¿Hay algún directorio especial en el que deba colocarlo? ¡Muchas gracias!
Respuesta1
Guárdalos en /usr/local/include
. Dehttp://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html, los elementos de este directorio están "... a salvo de ser sobrescritos cuando se actualiza el software del sistema", lo cual es importante ya que no desea que los archivos de encabezado que ha descargado se vean afectados por las actualizaciones del sistema, lo que podría suceder si los coloca en /usr/include
.
Respuesta2
En MI sistema, el /usr/local/include/
directorio existe y está vacío. El estándar de jerarquía de Filsystem dice (FHS 3.0) el directorio a utilizar es /usr/local/include
. Los archivos deben ser legibles en todo el mundo ( 0444
) y los directorios deben poder buscarse ( 0555
).
Respuesta3
La pregunta es ¿qué quieres lograr?
Generalmente tienes tres escenarios:
- desarrollo
- instalación local (en su
$HOME
) - instalación global
Para los primeros 2, probablemente deberías usar el -I
interruptor para dar una ruta a los encabezados. Lo primero sería probablemente -I../mylib/include
, lo segundo podría serlo -I/home/user/local_libs/somelib/include
.
La tercera es una instalación global, que debería ubicarlos en /usr/local/include
, pero gestionada por una herramienta como automake o cmake. Al empaquetar, el mantenedor debe adaptar la ruta de instalación y/o la ruta de inclusión para instalar los encabezados /usr/include
.
Al utilizar automake es posible que aparezcan avisos además del--prefix
parámetroEl valor predeterminado es /usr/local
para una instalación segura que no interfiere con los paquetes del sistema, mientras que los mantenedores de Debian ejecutan ./configure --prefix=/usr
sus scripts de paquetes. La ruta de inclusión se construye a partir de este prefijo, por lo que sigue la instalación del paquete.