Confira as descrições dos pacotes; para libc6
:
Contains the standard libraries that are used by nearly all programs on the system. This package includes shared versions of the standard C library and the standard math library, as well as many others.
e para libc6-dev
:
Contains the symlinks, headers, and object files needed to compile and link programs which use the standard C library.
libc6
fornece a funcionalidade implementada pela biblioteca C, na forma de várias bibliotecas compartilhadas ( libc.so.6
etc.). libc6-dev
fornece arquivos extras que são necessários para construir o software usando a biblioteca C; esses arquivos extras são diferentes do conteúdo das bibliotecas compartilhadas.
Outra maneira de pensar sobre isso é que libc6
fornece os arquivos necessários em tempo de execução, para programas que usam a biblioteca C e libc6-dev
fornece os arquivos necessários no momento da criação, em cima da própria biblioteca (por isso libc6-dev
depende de libc6
- você precisa de ambos para criar software). libc6
contém arquivos usados pelo vinculador dinâmico para executar o software construído com a biblioteca C, libc6-dev
contém arquivos usados pelo compilador e pelo vinculador de tempo de construção para construir o software usando a biblioteca C.
A mesma distinção se aplica à maioria dos pacotes de biblioteca; você encontrará um pacote de tempo de execução e um pacote -dev
de tempo de compilação.