Diferencias entre las muchas carpetas lib en Linux

14

¿Cuál es la diferencia entre las muchas bibliotecas en el sistema Linux? (/ lib, / usr / lib, / var / lib, / usr / share / lib, etc.).

Sé que se maneja automáticamente por synaptic cada vez que instalo una aplicación, pero en caso de que quiera ser un desarrollador de Linux, seguramente necesito saber dónde colocar las bibliotecas de mi aplicación en el sistema.

Andreas Wong
fuente

Respuestas:

10

Por lo general, su software se instalará en /, o / usr, o / usr / local. Esto se llama el "prefijo". / normalmente está reservado para los programas más críticos del sistema operativo. / usr / está reservado para uso de los administradores de paquetes. Por lo tanto, cuando escribe software, es más cortés configurarlo para que el prefijo sea / usr / local. Entonces esto se puede anular cuando alguien lo empaqueta para una distribución.

Tenga en cuenta que no estoy hablando específicamente de "lib". Hay varios subdirectores comunes bajo el prefijo, lib es solo uno de ellos. "bin" se usa para archivos ejecutables, "compartir" para archivos de datos, "lib" para bibliotecas compartidas, etc. Entonces, si su programa es una biblioteca, puede instalarlo de forma predeterminada en / usr / local / lib. Si es un programa normal, puede instalarlo en / usr / local / bin con sus archivos de datos en / usr / local / share. Lo importante es que lo hagas para que el prefijo sea seleccionable en tiempo de compilación. Algunos pueden preferir instalar a / usr en lugar de / usr / local o viceversa.

Matthew Talbert
fuente
¿Entonces su punto es que las ubicaciones son más una guía que un límite estricto?
Andreas Wong el
1
Es una guía, pero DEBE seguirse, y muchas aplicaciones esperan ciertos archivos en ciertos lugares.
Jim Deville el
@james punto tomado: D
Andreas Wong
8

También hay un estándar que describe la jerarquía del sistema de archivos Linux / Unix. Se puede encontrar en: http://www.pathname.com/fhs/ . Esto está destinado principalmente a los desarrolladores de distribución, pero no veo ninguna razón por la que un usuario / desarrollador no debería ser consciente de ello.

Ahe
fuente
0

/ bin y / sbin

  • binarios utilizados para la administración del sistema y también en modo de usuario único. Sus archivos de la biblioteca se encuentran en / lib.

/ usr / bin y / usr / sbin

  • contienen binarios no esenciales no esenciales utilizados por todos los usuarios y binarios utilizados para servicios de red y todos. Sus bibliotecas se encuentran en / usr / lib.

/ var / lib

  • contienen archivos que conservan información sobre el estado de los programas en ejecución o instancias de programas .user no necesita cambiar esto.

/ usr / share / lib

  • Contiene archivos de datos independientes de la arquitectura.
RahulKrishnan RA
fuente