Pesquisa de site

Gerenciamento de pacotes Linux com Yum, RPM, Apt, Dpkg, Aptitude e Zypper - Parte 9


Em agosto passado, a Linux Foundation anunciou a certificação LFCS (Linux Foundation Certified Sysadmin), uma excelente oportunidade para administradores de sistemas de todos os lugares demonstrarem, por meio de um exame baseado em desempenho, que eles são capazes de ter sucesso no suporte operacional geral para sistemas Linux. Um administrador de sistemas certificado pela Linux Foundation tem a experiência necessária para garantir suporte eficaz ao sistema, solução de problemas e monitoramento de primeiro nível, incluindo finalmente o escalonamento de problemas, quando necessário, para equipes de suporte de engenharia.

Assista ao vídeo a seguir que explica sobre o Programa de Certificação Linux Foundation.

Este artigo é a Parte 9 de uma longa série de 10 tutoriais. Hoje neste artigo iremos orientá-lo sobre o gerenciamento de pacotes Linux, que são necessários para o exame de certificação LFCS.

Gerenciamento de Pacotes

Em poucas palavras, gerenciamento de pacotes é um método de instalação e manutenção (que inclui atualização e provavelmente também remoção) de software no sistema.

Nos primeiros dias do Linux, os programas eram distribuídos apenas como código-fonte, juntamente com as páginas de manual necessárias, os arquivos de configuração necessários e muito mais. Hoje em dia, a maioria dos distribuidores Linux utilizam por padrão programas pré-construídos ou conjuntos de programas chamados pacotes, que são apresentados aos usuários prontos para instalação naquela distribuição. Porém, uma das maravilhas do Linux ainda é a possibilidade de obter o código-fonte de um programa para ser estudado, melhorado e compilado.

Como funcionam os sistemas de gerenciamento de pacotes

Se um determinado pacote requer um determinado recurso, como uma biblioteca compartilhada ou outro pacote, diz-se que ele possui uma dependência. Todos os sistemas modernos de gerenciamento de pacotes fornecem algum método de resolução de dependências para garantir que, quando um pacote for instalado, todas as suas dependências também sejam instaladas.

Sistemas de embalagem

Quase todo o software instalado em um sistema Linux moderno pode ser encontrado na Internet. Ele pode ser fornecido pelo fornecedor da distribuição por meio de repositórios centrais (que podem conter vários milhares de pacotes, cada um dos quais foi construído, testado e mantido especificamente para a distribuição) ou estar disponível em código-fonte que pode ser baixado e instalado manualmente. .

Porque diferentes famílias de distribuição usam diferentes sistemas de empacotamento (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm construído especialmente para openSUSE), um pacote destinado a uma distribuição não será compatível com outra distribuição. No entanto, a maioria das distribuições provavelmente se enquadrará em uma das três famílias de distribuição cobertas pela certificação LFCS.

Ferramentas de pacote de alto e baixo nível

Para executar a tarefa de gerenciamento de pacotes de forma eficaz, você precisa estar ciente de que terá dois tipos de utilitários disponíveis: ferramentas de baixo nível (que controlam no backend a instalação, atualização e remoção de arquivos de pacotes) e ferramentas de alto nível (que se encarregam de garantir que as tarefas de resolução de dependências e busca de metadados - ”dados sobre os dados”- sejam executadas).

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Vejamos a descrição das ferramentas de baixo e alto nível.

dpkg é um gerenciador de pacotes de baixo nível para sistemas baseados em Debian. Ele pode instalar, remover, fornecer informações e construir pacotes *.deb, mas não pode baixar e instalar automaticamente suas dependências correspondentes.

Leia mais: 15 exemplos de comandos dpkg

apt-get é um gerenciador de pacotes de alto nível para Debian e derivados, e fornece uma maneira simples de recuperar e instalar pacotes, incluindo resolução de dependências, de múltiplas fontes usando a linha de comando. Ao contrário do dpkg, o apt-get não funciona diretamente com arquivos *.deb, mas com o nome próprio do pacote.

Leia mais: 25 exemplos de comandos do apt-get

aptitude é outro gerenciador de pacotes de alto nível para sistemas baseados em Debian e pode ser usado para executar tarefas de gerenciamento (instalar, atualizar e remover pacotes, também lidando com a resolução de dependências automaticamente) de maneira rápida e fácil. . Ele fornece as mesmas funcionalidades do apt-get e outras adicionais, como oferecer acesso a diversas versões de um pacote.

rpm é o sistema de gerenciamento de pacotes usado pelas distribuições compatíveis com Linux Standard Base (LSB) para manipulação de pacotes em baixo nível. Assim como o dpkg, ele pode consultar, instalar, verificar, atualizar e remover pacotes e é usado com mais frequência por distribuições baseadas no Fedora, como RHEL e CentOS.

Leia mais: Exemplos de comandos de 20 rpm

yum adiciona a funcionalidade de atualizações automáticas e gerenciamento de pacotes com gerenciamento de dependências para sistemas baseados em RPM. Como uma ferramenta de alto nível, como o apt-get ou o aptitude, o yum funciona com repositórios.

Leia mais: 20 exemplos de comandos yum

Uso comum de ferramentas de baixo nível

As tarefas mais frequentes que você realizará com ferramentas de baixo nível são as seguintes:

1. Instalando um pacote a partir de um arquivo compilado (*.deb ou *.rpm)

A desvantagem deste método de instalação é que nenhuma resolução de dependência é fornecida. Você provavelmente escolherá instalar um pacote a partir de um arquivo compilado quando tal pacote não estiver disponível nos repositórios da distribuição e, portanto, não puder ser baixado e instalado por meio de uma ferramenta de alto nível. Como as ferramentas de baixo nível não executam a resolução de dependências, elas sairão com um erro se tentarmos instalar um pacote com dependências não atendidas.

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

Nota: Não tente instalar no CentOS um arquivo *.rpm que foi construído para o openSUSE, ou vice-versa!

2. Atualizando um pacote de um arquivo compilado

Novamente, você só atualizará manualmente um pacote instalado quando ele não estiver disponível nos repositórios centrais.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Listando pacotes instalados

Quando você tiver um sistema já funcionando pela primeira vez, é provável que queira saber quais pacotes estão instalados.

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

Se você quiser saber se um pacote específico está instalado, você pode canalizar a saída dos comandos acima para grep, conforme explicado em manipulação de arquivos no Linux – Parte 1 desta série. Suponha que precisamos verificar se o pacote mysql-common está instalado em um sistema Ubuntu.

dpkg -l | grep mysql-common

Outra maneira de determinar se um pacote está instalado.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

Por exemplo, vamos descobrir se o pacote sysdig está instalado em nosso sistema.

rpm -qa | grep sysdig

4. Descobrir qual pacote instalou um arquivo
dpkg --search file_name
rpm -qf file_name

Por exemplo, qual pacote instalou pw_dict.hwm?

rpm -qf /usr/share/cracklib/pw_dict.hwm

Uso comum de ferramentas de alto nível

As tarefas mais frequentes que você realizará com ferramentas de alto nível são as seguintes.

1. Procurando um pacote

aptitude update atualizará a lista de pacotes disponíveis, e aptitude search realizará a pesquisa real por package_name.

aptitude update && aptitude search package_name 

Na opção pesquisar tudo, yum irá procurar por package_name não apenas nos nomes dos pacotes, mas também nas descrições dos pacotes.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

Suponhamos que precisamos de um arquivo cujo nome é sysdig. Para conhecer esse pacote que teremos que instalar, vamos correr.

yum whatprovides “*/sysdig”

whatprovides diz ao yum para pesquisar o pacote e fornecerá um arquivo que corresponda à expressão regular acima.

zypper refresh && zypper search package_name		[On openSUSE]
2. Instalando um pacote de um repositório

Ao instalar um pacote, você pode ser solicitado a confirmar a instalação depois que o gerenciador de pacotes resolver todas as dependências. Observe que executar update ou refresh (de acordo com o gerenciador de pacotes usado) não é estritamente necessário, mas manter os pacotes instalados atualizados é uma boa prática de administração de sistemas por motivos de segurança e dependência.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Removendo um pacote

A opção remover desinstalará o pacote, mas deixará os arquivos de configuração intactos, enquanto purge apagará todos os vestígios do programa do seu sistema.
# aptitude remove/purge package_name
# yum apagar nome_do_pacote

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

A maioria (se não todos) dos gerenciadores de pacotes perguntará, por padrão, se você tem certeza de prosseguir com a desinstalação antes de executá-la. Portanto, leia as mensagens na tela com atenção para evitar problemas desnecessários!

4. Exibindo informações sobre um pacote

O comando a seguir exibirá informações sobre o pacote birthday.

aptitude show birthday 
yum info birthday
zypper info birthday

Resumo

O gerenciamento de pacotes é algo que você simplesmente não pode varrer para debaixo do tapete como administrador de sistema. Você deve estar preparado para usar as ferramentas descritas neste artigo a qualquer momento. Esperamos que seja útil na sua preparação para o exame LFCS e nas suas tarefas diárias. Sinta-se à vontade para deixar seus comentários ou perguntas abaixo. Teremos o maior prazer em entrar em contato com você o mais breve possível.