SUPER PROMOÇÃO BLACK FRIDAY - SOMENTE HOJE - APROVEITE!

Clique Aqui

DlteC do Brasil

  • Home
  • Cursos
  • Ebooks
  • Blog
  • Preços
  • Entrar
Linux

LPIC-1: Gerenciando Pacotes do Linux com RPM e YUM

Leandro Siqueira - 12 de agosto de 2019

Nesse artigo vamos tratar de um assunto muito importante para quem está na trilha da certificação Linux LPIC-1 que é o gerenciamento de pacotes utilizando as ferramentas RPM e YUM.

Esse assunto sobre o RPM e YUM é cobrado mais especificamente na prova de certificação LPI-101, uma das duas provas que fazem parte da certificação Linux LPIC-1.

Antes de iniciarmos o conteúdo sobre RPM e YUM deixa eu avisar que esse artigo foi feito com base no curso do Portal da DlteC do Brasil chamado: “Instalação do Linux e Gerenciamento de Pacotes“.

Introdução aos Pacotes no Linux

A distribuição Red Hat (e baseadas) trabalham com um conjunto de pacotes agrupados – com extensão .rpm. Veja seguir a estrutura básica de um pacote binário .rpm:

No campo Arquitetura, caso o pacote apresente a informação “noarch“, significa que ele é independente de plataforma (poderá instalado em qualquer hardware). Por outro lado, caso mostre “src“, significa que se trata de um pacote de código-fonte.

Quando estudamos sobre os pacotes do Debian, vimos que o sistema armazena metadados sobre eles. Para os pacotes .rpm, a lógica também é essa: seus metadados são armazenados no diretório rpm, presente em /var/lib.

A gestão de pacotes .rpm pode ser realizada através de duas ferramentas: RPM (Red Hat Package Manager) e YUM (Yellow Dog Updater Modified).

Comando rpm

O gerenciador de pacotes rpm(man rpm) opera apenas sobre pacotes com extensão .rpm. Caso necessite de bibliotecas e dependências, estes deverão ser instalados manualmente.

Principais opções:

  • -h, –hash: Exibe um indicador de progresso para a instalação do pacote.
  • -v: Modo detalhado.
  • -i, –install: Instala um pacote .rpm.
  • -U, –update: Instala ou atualiza um pacote .rpm.
  • -q, –query: Lista informações sobre um pacote.
  • Opções que acompanham a opção -q:
  • -a, –all: Lista todos os pacotes instalados no sistema.
  • -i, –info: Exibe informações sobre um pacote instalado.
  • -d, –docfiles: Exibe documentos e páginas de manuais de um pacote instalado.
  • -f, –file: Determina qual pacote instalou o arquivo.
  • -l, –list: Lista os arquivos instalados por determinado pacote.
  • -R, –requires: Exibe as dependências do pacote.
  • –whatrequires: Exibe quais são os programas dependentes do pacote.
  • -p: Realiza consultas diretamente no arquivo .rpm.
  • -e, –erase: Remove o pacote.

Acompanhe alguns exemplos a seguir:

# Exibe todos os pacotes instalados no sistema

dltec@cap2:~# rpm –qa

# Verifica se o pacote BitTorrent já está instalado no sistema

dltec@cap2:~# rpm -q BitTorrent

# Exibe informações sobre o pacote .rpm

dltec@cap2:~# rpm -qip BitTorrent-5.2.2-1-Python2.4.noarch.rpm

# Exibe as dependências do pacote BitTorrent antes de instala-lo

dltec@cap2:~# rpm -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

# Exibe as dependências do pacote gedit (já instalado no sistema)

dltec@cap2:~# rpm -qR gedit

# Exibe todos os arquivos instalados pelo pacote BitTorrent

dltec@cap2:~# rpm -ql BitTorrent

# Exibe informações sobre um pacote instalado

dltec@cap2:~# rpm -qi BitTorrent

# Exibe as documentações instaladas por um pacote já presente no sistema

dltec@cap2:~# rpm –qdf /usr/bin/vmstat

# Lista os programas que dependem do gedit

dltec@cap2:~# rpm -q –whatrequires gedit

# Instala o pacote sem as suas dependências (Mas os pacotes dependentes já #deverão estar instalados no sistema, caso contrário o programa poderá não funcionar adequadamente)

dltec@cap2:~# rpm -ivh –nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

# Instala o pacote libpcap (com suas dependências)

dltec@cap2:~# rpm -ivh libpcap-0.7.2-37.i586.rpm

# Atualiza o pacote (mantendo um backup do pacote mais antigo)

dltec@cap2:~# rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm

# Remove o pacote gedit

dltec@cap2:~# rpm -e gedit

# Lista qual pacote instalou o binário /usr/bin/gedit

dltec@cap2:~# rpm -qf /usr/bin/gedit

Comando yum

O gerenciador de pacotes yum (man yum), cujo arquivo de configuração é o yum.conf (localizado em /etc), é outra ferramenta utilizada para gerenciar pacotes rpm – uma espécie de equivalente do apt-get do Debian. Dessa forma, além de fazer o download dos pacotes a partir dos repositórios configurados, antes de instalá-los, são realizadas verificações relacionadas a eventuais dependências dos pacotes e, se for o caso, essas também são baixadas e instaladas.

Arquivos de configuração do YUM

O YUM é configurado através do arquivo /etc/yum.conf. Observe o seu conteúdo parcial:

dltec@cap2:~# cat /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release

Veja que, dentre as diretivas, podemos destacar o cachedir (representando o diretório de cache do yum – onde são realizados os downloads dos pacotes), debuglevel (nível de depuração do yum) e logfile (arquivo onde são armazenados os logs do yum).

No diretório /etc/yum.repos.d são encontrados arquivos .repo que contém informações sobre quais são os repositórios utilizados pelo yum para download e instalação dos pacotes. Por exemplo, observe a estrutura inicial do arquivo CentOS-Base.repo:

dltec@cap2:~# cat /etc/yum.repos.d/CentOS-Base.repo

[base]

name=CentOS-$releasever – Base

mirrorlist=http://mirrorlist.centos.org/?release=$release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/gpgcheck=1

Gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Para propósitos de exame, vamos comentar sobre as principais partes desta estrutura.

A identificação do repositório é indicada entre colchetes (neste caso, base).

Em seguida, encontramos name, representando a descrição do campo anterior.

Já a instrução mirrorlist representa o endereço do repositório – ou seja, a partir de onde sera efetuado o download dos pacotes (pode ser http, ftp ou file).

Comandos administrativos do YUM

# Lista informações do pacote gedit

dltec@cap2:~# yum info gedit

# Exibe qual pacote instalou o comando ou determinado arquivo de configuração

dltec@cap2:~# yum provides gedit

dltec@cap2:~# yum provides /usr/bin/gedit

Ou

dltec@cap2:~# yum whatprovides gedit

dltec@cap2:~# yum whatprovides/usr/bin/gedit

# Lista os repositórios dos pacotes instalados na máquina

dltec@cap2:~# yum list installed

# Lista os repositórios dos pacotes disponíveis para a instalação (mas ainda não #instalados)

dltec@cap2:~# yum list available

# Lista todos os pacotes disponíveis e instalados

dltec@cap2:~# yum list all

# Exibe quais são os repositórios do yum

dltec@cap2:~# yum repolist

# Busca o termo gedit no cache do yum

dltec@cap2:~# yum search gedit

# Instala o pacote gedit

dltec@cap2:~# yum install gedit

Todas as vezes em que arquivos forem instalados pelo yum, é gerada uma cópia para o seu diretório de cache. Sendo assim, é uma boa prática limpar esses arquivos:

dltec@cap2:~# yum clean all

# Remove o pacote gedit

dltec@cap2:~# yum remove gedit

ou

dltec@cap2:~# yum erase gedit

# Verifica quais são os pacotes que possuem atualizações disponibilizadas

dltec@cap2:~# yum check-update

# Atualiza o pacote gedit

dltec@cap2:~# yum update gedit

# Atualiza todos os pacotes instalados no sistema

dltec@cap2:~# yum update

# Além de atualizar todos os pacotes instalados, o yum também remove os pacotes

# marcados como obsoletos.

# Normalmente, a opção upgrade é utilizada para atualizar a versão atual da

# distribuição.

dltec@cap2:~# yum upgrade

A opção –obsoletes  também poderá ser utilizada com o update para o mesmo propósito

# Lista os pacotes que são necessários para o funcionamento pleno do gedit

dltec@cap2:~# yum deplist gedit

Utilizando o yumdownloader

O yumdownloader é um programa que permite baixar pacotes RPM vindos de repositórios do yum.

As questões de dependências também são resolvidas ao utilizá-lo. Agora, atenção: o comando não irá instalar o pacote – e sim, apenas realizar o seu download.

Como trata-se de um comando disponibilizado pelo pacote yum-utils, será necessário instá-lo primeiramente.

# Instala o yumdownloader

dltec@cap2:~# yum install yum-utils -y

# Utiliza o yumdownloader

dltec@cap2:~# mkdir /opt/downloaded_rpms

dltec@cap2:~# yumdownloadersamba httpd –destdir /opt/downloaded_rpms –resolve

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirror.ventraip.net.au

 * extras: mirror.optus.net

* updates: mirror.optus.net

unbound-1.4.20-26.el7.x86_64.rpm

Comando rpm2cpio

O comando cpio é responsável por realizar backups de arquivos, de forma semelhante ao comando tar. Porém, em conjunto com o comando rpm2cpio, responsável por converter um arquivo .rpm para o formato cpio, torna-se possível operar com os arquivos dentro de um pacote .rpm.

# Determina os arquivos que encontram-se em um pacote .rpm

dltec@cap2:~# rpm2cpio nomedopacote.rpm | cpio -t

# Extrai os arquivos dentro do pacote .rpm para o diretório corrente

dltec@cap2:~# rpm2cpio nomedopacote.rpm | cpio -id

Por padrão, o comando envia a sua saída para a saída-padrão (STDOUT).

Com isso finalizamos o artigo sobre o RPM e YUM e se você ainda tiver alguma dúvida, sugestão ou até mesmo um elogio utilize a parte inferior do artigo, onde temos a área de perguntas para deixar sua mensagem!

Obrigado pela leitura e até uma próxima!

 0 1
Share Now

Leandro Siqueira

Graduado em Análise de Sistemas pela Universidade Salgado de Oliveira (UNIVERSO) e pós-graduado em Engenharia de Software pela Escola Politécnica da Universidade Federal do Rio de Janeiro (UFRJ). Certificado ITIL Foundations, ISO 20000 Foundation Bridge e LPIC-1. Atua profissionalmente na área de TI desde 2010 - com foco em desenvolvimento de sistemas de informação e ensino de tecnologia.

One Response

  • Anderson Inácio 15 de agosto de 2019 at 17:42

    Ótimo post! Sempre utilizo o apt-get no Linux mint e Ubuntu, mas é sempre bom conhecer um pouco mais do que o rpm pode fazer. Parabéns pelo artigo!

    Reply
  • Leave a Reply Cancel Reply

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

    Previous Post Novidades da Certificação CCNA 200-301: O que realmente tem de novo?
    Next Post O que é VLAN?

    Artigos Populares

    • Subrede IP: Máscaras possíveis para classes A, B e C
    • Qual a Diferença entre Modelo OSI e TCP/IP?
    • Passo a Passo para Resolver Problemas de Conectividade de Rede
    • Como descobrir o MAC de um host se eu tenho apenas o IP?
    • 5 Comandos do Cisco IOS que todo Network Admin deveria saber

    Entre para a lista vip

    Cursos Online Gratuitos com Opção de Certificado
    • Contato
    • Crie sua conta
    • Login

    DlteC do Brasil - Todos os direitos reservados