Aprenda o gerenciamento de dependências usando o comando ldd para administrar melhor sua máquina Linux e os pacotes instalados.

O gerenciamento de dependências é parte integrante da manutenção do seu sistema Linux. O software é complexo e depende de uma infinidade de bibliotecas e arquivos compartilhados. Às vezes, torna-se difícil acompanhar os arquivos exigidos por um aplicativo.

É aqui que o comando ldd no Linux entra em ação. ldd é uma ferramenta de linha de comando engenhosa para acompanhar as dependências de objetos compartilhados exigidas por um aplicativo.

Vamos aprender como você pode usar o comando ldd a seu favor e se tornar um profissional no gerenciamento de dependências no Linux!

O que são dependências de pacote?

O software não é apenas um código-fonte autônomo, mas sim um amálgama de código-fonte nativo e código emprestado de bibliotecas externas. Quando essas bibliotecas e outros objetos compartilhados estão faltando em seu sistema, um aplicativo que depende deles pode funcionar mal ou se recusar a iniciar.

instagram viewer

Todos esses arquivos compartilhados, pacotes, bibliotecas, etc., são cumulativamente chamados de dependências no Linux. Embora essa definição curta dê uma ideia aproximada sobre dependências, a imagem real é um pouco mais complexa do que isso, e é por isso que é importante aprender quais são as dependências do pacote em profundidade.

O que é o comando ldd e como ele funciona?

ldd é uma abreviação de List Dynamic Dependencies. Como o nome sugere, o ldd lista todos os objetos compartilhados exigidos por um aplicativo.

Ele funciona invocando o vinculador dinâmico com configurações especialmente definidas variáveis ​​ambientais. Quando você executa ldd com a localização de um binário, ele retorna uma saída contendo a lista de dependências, sua localização e um valor hexadecimal representando onde na memória eles são carregados.

Encontrando dependências de objetos compartilhados com o comando ldd

Agora que você tem uma ideia clara do que é o ldd, vamos colocar a mão na massa e aprender como encontrar dependências de software com ele.

Antes de aprender a usar o ldd, primeiro confirme se você o possui instalado em seu sistema imprimindo a versão instalada do ldd:

ldd --versão

Se voltar um erro "comando não encontrado", você precisa primeiro instalar o ldd.

Em sistemas baseados em Ubuntu e Debian, execute:

sudo apt install libc-bin

Para distribuições baseadas em Arch:

sudo pacman -S glibc

No RHEL e Fedora:

sudo dnf install glibc-common

Com o ldd instalado, agora você pode se concentrar em aprender como usá-lo. Aqui está a sintaxe básica para o comando ldd:

ldd binary_location

Caso você não saiba a localização do binário, você pode usar um dos muitos operadores de linha de comando do Linux e combine a saída do comando which com ldd para encontrar as dependências do pacote:

ldd -flag $(qual binary_name)

O comando ldd oferece quatro opções diferentes para modificar a saída. Eles são:

  • -v: Imprime saída detalhada, incluindo informações adicionais, como informações de versão para cada dependência
  • -você: Imprime todas as dependências não utilizadas, ou seja, dependências carregadas, mas não implementadas
  • -d: Imprime objetos ausentes e realiza realocações
  • -r: Imprime objetos e funções ausentes e realiza realocações

Gerenciando Dependências de Pacotes no Linux

Com o ldd em seu arsenal de software, você poderá solucionar problemas relacionados à dependência de objetos compartilhados com seu aplicativo.

Além disso, como o ldd também mostra o local onde uma biblioteca é carregada, você poderá depurar um aplicativo e entender melhor como uma determinada biblioteca é implementada. O ldd também imprime as versões das bibliotecas compartilhadas usadas em um aplicativo.

Usando esse recurso, você pode auditar seus aplicativos em busca de possíveis vulnerabilidades associadas a uma versão desatualizada de uma biblioteca compartilhada.

O gerenciamento de dependência é uma habilidade essencial crucial para manter a integridade do sistema Linux. No entanto, às vezes, um pacote pode quebrar apesar de todas as suas dependências estarem íntegras. É importante que você saiba como encontrar e consertar pacotes quebrados.