Como verificar se uma biblioteca está instalada no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma biblioteca específica está instalada no seu sistema Linux. Você explorará diferentes métodos para alcançar isso, começando por listar as bibliotecas compartilhadas disponíveis usando ldconfig -p para entender quais bibliotecas estão presentes e suas localizações.

Em seguida, você utilizará o comando dpkg -l para identificar o pacote associado a uma biblioteca específica, fornecendo informações sobre como as bibliotecas são gerenciadas dentro do gerenciador de pacotes do sistema. Finalmente, você aprenderá como inspecionar diretamente diretórios de bibliotecas comuns, como /usr/lib, para verificar manualmente a presença de arquivos de biblioteca.

Listar bibliotecas com ldconfig -p

Nesta etapa, você aprenderá como listar as bibliotecas compartilhadas disponíveis no seu sistema Linux usando o comando ldconfig.

Bibliotecas compartilhadas são coleções de código que múltiplos programas podem usar. Isso economiza espaço em disco e memória porque o código não precisa ser duplicado em cada programa.

O comando ldconfig é usado principalmente para configurar as ligações em tempo de execução do linker dinâmico. Quando usado com a opção -p, ele imprime a lista de diretórios e bibliotecas candidatas que estão em cache.

Abra seu terminal se ele ainda não estiver aberto. Você pode fazer isso clicando no ícone Xfce Terminal no lado esquerdo da sua área de trabalho.

Agora, digite o seguinte comando e pressione Enter:

ldconfig -p

Este comando exibirá uma longa lista de bibliotecas compartilhadas encontradas no seu sistema. A saída terá uma aparência semelhante a esta:

...
        libzstd.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libzstd.so.1
        libz.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libz.so.1
        libxml2.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so.2
        libxml2.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so
        libxslt.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxslt.so.1
...

A saída mostra o nome da biblioteca, a arquitetura para a qual ela foi construída (como x86-64) e o caminho para o arquivo da biblioteca no sistema.

Como a saída é muito longa, você pode querer redirecioná-la para um paginador como less para visualizá-la tela por tela. Para fazer isso, use o símbolo de pipe |:

ldconfig -p | less

Pressione a barra de espaço para rolar para baixo uma página, b para rolar para cima e q para sair do less.

Este comando é útil para ver quais bibliotecas estão disponíveis e onde elas estão localizadas.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar pacote da biblioteca com dpkg -l

Na etapa anterior, você listou bibliotecas compartilhadas. Agora, vamos aprender como descobrir a qual pacote uma biblioteca específica pertence usando o comando dpkg.

dpkg é o gerenciador de pacotes para sistemas baseados em Debian, como o Ubuntu. Ele é usado para instalar, remover e gerenciar pacotes .deb. A opção -l lista os pacotes instalados.

Para encontrar um pacote específico, podemos combinar dpkg -l com grep para filtrar a saída. Vamos procurar pacotes relacionados à biblioteca xml2 que vimos na saída de ldconfig -p.

Digite o seguinte comando no seu terminal e pressione Enter:

dpkg -l | grep xml2

Este comando lista todos os pacotes instalados (dpkg -l) e, em seguida, filtra essa lista para mostrar apenas as linhas que contêm "xml2" (grep xml2).

Você deve ver uma saída semelhante a esta:

ii  libxml2:amd64                      <version>                     amd64        GNOME XML library
ii  libxml2-dev:amd66                  <version>                     amd64        Development files for the GNOME XML library
...

A saída fornece informações sobre o pacote:

  • Os dois primeiros caracteres (ii) indicam o status do pacote (instalado).
  • O nome do pacote (por exemplo, libxml2:amd64).
  • O número da versão.
  • A arquitetura (por exemplo, amd64).
  • Uma breve descrição do pacote.

Esta é uma maneira poderosa de identificar qual pacote de software fornece um arquivo de biblioteca específico. Isso é muito útil para solucionar problemas ou entender dependências.

Clique em Continuar para prosseguir.

Inspecionar arquivos da biblioteca em /usr/lib

Nesta etapa final, vamos explorar o diretório onde muitas bibliotecas compartilhadas são armazenadas: /usr/lib.

O diretório /usr no Linux contém programas e dados em nível de usuário. O subdiretório /usr/lib contém especificamente bibliotecas compartilhadas que não são essenciais para a inicialização do sistema, mas são necessárias para aplicativos.

Primeiro, vamos mudar nosso diretório atual para /usr/lib. Usamos o comando cd para isso.

Digite o seguinte comando e pressione Enter:

cd /usr/lib

Agora você está dentro do diretório /usr/lib. Para ver o conteúdo deste diretório, use o comando ls. Como este diretório contém muitos arquivos, vamos novamente redirecionar a saída para less.

Digite o seguinte comando e pressione Enter:

ls | less

Você verá uma longa lista de arquivos e diretórios. Muitos dos arquivos que terminam com .so são bibliotecas compartilhadas. Você também pode ver diretórios como x86_64-linux-gnu, que contêm bibliotecas específicas da arquitetura.

Pressione a barra de espaço para rolar para baixo e q para sair do less.

Vamos procurar o arquivo da biblioteca libxml2 que discutimos nas etapas anteriores. Podemos usar ls com grep para encontrá-lo dentro do diretório atual (/usr/lib).

Digite o seguinte comando e pressione Enter:

ls | grep libxml2

Você deve ver uma saída semelhante a esta, mostrando os arquivos da biblioteca libxml2 e links simbólicos:

libxml2.so
libxml2.so.2
libxml2.so.2.<version>

Os arquivos .so são as bibliotecas compartilhadas reais, e os arquivos sem um número de versão (como libxml2.so) são frequentemente links simbólicos que apontam para o arquivo da biblioteca real com o número da versão.

Você pode usar o comando readlink para ver para onde um link simbólico aponta. Por exemplo:

readlink libxml2.so

Isso mostrará o arquivo real para o qual libxml2.so está vinculado, que inclui o número da versão completo.

libxml2.so.2

Esta etapa mostrou como navegar para um diretório de biblioteca comum e inspecionar seu conteúdo usando cd, ls e grep. Entender onde as bibliotecas são armazenadas é crucial para a administração e desenvolvimento do sistema.

Clique em Continuar para concluir o laboratório.

Resumo

Neste laboratório, você aprendeu como verificar se uma biblioteca está instalada no Linux usando vários métodos. Você começou listando as bibliotecas compartilhadas disponíveis e suas localizações usando o comando ldconfig -p, compreendendo seu papel no gerenciamento de ligações do vinculador dinâmico (dynamic linker).

Em seguida, você explorou como identificar o pacote ao qual uma biblioteca específica pertence usando o comando dpkg -l, que é uma ferramenta chave para gerenciar pacotes Debian. Finalmente, você aprendeu a inspecionar diretamente diretórios de bibliotecas comuns como /usr/lib para verificar manualmente a presença de arquivos de biblioteca. Essas etapas fornecem uma abordagem abrangente para determinar o status da instalação da biblioteca em um sistema Linux.