Diferenças entre as muitas pastas lib no Linux

14

Qual é a diferença entre as muitas bibliotecas no sistema Linux? (/ lib, / usr / lib, / var / lib, / usr / compartilhamento / lib, etc, etc).

Sei que é tratado automaticamente pelo synaptic sempre que instalo um aplicativo, mas, no caso de ser desenvolvedor de Linux, preciso saber onde colocar as bibliotecas de aplicativos no sistema.

Andreas Wong
fonte

Respostas:

10

Normalmente, o seu software será instalado em /, ou / usr ou / usr / local. Isso é chamado de "prefixo". / é normalmente reservado para os programas mais críticos do sistema operacional. / usr / está reservado para uso dos gerenciadores de pacotes. Portanto, quando você escreve um software, é muito educado configurá-lo para que o prefixo seja / usr / local. Isso pode ser substituído quando alguém o empacota para uma distribuição.

Observe que não estou falando especificamente de "lib". Existem vários subdiretórios comuns sob o prefixo, lib sendo apenas um deles. "bin" é usado para executáveis, "share" para arquivos de dados, "lib" para bibliotecas compartilhadas e assim por diante. Portanto, se o seu programa for uma biblioteca, você poderá instalá-lo por padrão em / usr / local / lib. Se for um programa normal, você pode instalá-lo em / usr / local / bin com seus arquivos de dados em / usr / local / share. O importante é que você faça com que o prefixo seja selecionável em tempo de compilação. Alguns podem preferir instalar em / usr em vez de / usr / local ou vice-versa.

Matthew Talbert
fonte
Então, o que você quer dizer é que os locais são mais uma diretriz do que um limite rígido?
Andreas Wong
1
É uma diretriz, mas deve ser seguida, e muitos aplicativos esperam determinados arquivos em determinados lugares.
21711 Jim Deville
@james point taken: D
Andreas Wong
8

Há também um padrão que descreve a hierarquia do sistema de arquivos linux / unix. Pode ser encontrado em: http://www.pathname.com/fhs/ . Isso se destina principalmente a desenvolvedores de distribuição, mas não vejo razão para que um usuário / desenvolvedor não deva estar ciente disso.

Ahe
fonte
0

/ bin e / sbin

  • binários usados ​​para administração do sistema e também no modo de usuário único. Seus arquivos de biblioteca estão localizados em / lib.

/ usr / bin e / usr / sbin

  • contêm binários não essenciais não essenciais usados ​​por todos os usuários e binários usados ​​para serviços de rede e tudo. Suas bibliotecas são colocadas em / usr / lib.

/ var / lib

  • contém arquivos que preservam informações sobre o estado de execução de programas ou instâncias de programas. O usuário não precisa alterar isso.

/ usr / compartilhamento / lib

  • Contém arquivos de dados independentes da arquitetura.
RahulKrishnan RA
fonte