Introdução ao gerenciamento de pacotes RPM/YUM

Introdução ao gerenciamento de pacotes RPM/YUM
Red Hat Package Manager é o utilitário de gerenciamento de pacotes de código aberto padrão construído sob licença pública geral (GPU). O sistema de gerenciamento de pacotes é para todos os derivados Linux baseados em Red Hat, como Fedora, Rhel e Centos. RPM facilita os administradores do sistema com os cinco modos básicos de operações de gerenciamento de pacotes: instalação, atualização, remoção, consulta e verificação de pacotes.

Além disso, o YellowDog Updater Modified (YUM) é para RPM qual é a ferramenta de gerenciamento de pacotes apt para o utilitário dpkg no sistema de embalagens Debian: resolve os problemas de dependência do pacote do RPM. Neste guia, apresentaremos brevemente Yum. Considerando que teremos uma introdução aprofundada e antecedentes do sistema de embalagem RPM para distribuições Red Hat Linux.

Fundo

Nos dias anteriores do Linux, software/programas foram incluídos no sistema compilando o código -fonte em binários executados. Às vezes eles eram compilados na forma de um pacote conhecido como tarballs contendo vários arquivos. Após a instalação do software de um tarball, todos os arquivos executáveis, documentos, arquivos de configuração e bibliotecas se espalhariam pelo sistema em diretórios relevantes.

No entanto, essa maneira de inclusão de aplicativos tem suas limitações:

  • Incapacidade do usuário de encontrar documentos do programa e arquivos de configuração.
  • Dificuldade em encontrar as dependências necessárias do programa.
  • Requer que o usuário localize e remova cada arquivo de programa individualmente.
  • Não possuía metadados: portanto, após a instalação, os usuários desconheciam a versão do programa e outros detalhes.

Desde então, as distribuições Linux cobriam um longo caminho, fornecendo software em programas complexos pré -construídos conhecidos como pacotes. Portanto, todas as distribuições Linux seguiram dois formatos principais de embalagem, RPM e Deb. Neste artigo, estamos nos concentrando em um sistema de embalagem RPM.

Começando

Os sistemas de gerenciamento de pacotes RPM, YUM e DEB (para distribuições Debian Linux) têm muitas semelhanças. Todos eles podem atualizar, instalar, remover e atualizar pacotes com uma instalação de linha de comando.

No momento de qualquer instalação do Linux, uma grande seção de pacotes também é instalada, o que é relevante para o uso pretendido do sistema. No entanto, em algum momento, um usuário precisa adicionar novos pacotes para funcionalidade adicional, atualizar pacotes atuais ou remover pacotes que não são necessários em sistemas baseados em Red Hat.

Vamos descobrir como os gerentes de pacotes para as distribuições Red Hat Linux executam as tarefas acima, incluindo os desafios de encontrar detalhes do pacote ou os comandos que os pacotes contêm.

RPM

O RPM Package Manager oferece o comando principal chamado RPM, que oferece várias opções para permitir ao usuário encontrar todas as informações relacionadas ao pacote. As opções RPM As ofertas são agrupadas em três categorias principais:

  • Instale, atualize e remova os pacotes
  • Para consultar informações relacionadas ao pacote e verificar
  • para executar funções diversas

Neste artigo, discutiremos as duas primeiras opções de comando RPM. Embora possa executar as tarefas básicas relacionadas ao gerenciamento de pacotes, sendo a primeira ferramenta a lidar com a embalagem RPM, o RPM possui algumas limitações principais:

A instalação do pacote com RPM falha se a dependência do pacote não estiver disponível. Além disso, exige que o usuário pesquise qual pacote contém o componente, que possui algumas dependências. Além disso, os comandos RPM exigem que o usuário identifique o local do arquivo RPM.

Yum

Uma solução conveniente para os problemas acima é o YUM que automatiza a atualização e o gerenciamento de pacotes para o sistema RPM. Ele também fornece gerenciamento de dependência, considerando os pacotes de RPM, não como um software individual, mas como parte de um sistema de repositório.

Embalagem RPM

Pacote RPM é a combinação de arquivos de configuração, comandos e documentos para fornecer um recurso de software. Ele também contém metadados que contém conteúdo de pacote, de onde veio ou instalado, versão e detalhes de dependência com outras informações.

Antes de se aprofundar nos arquivos do pacote RPM, o próprio nome do pacote compartilha muitos detalhes sobre o software. Para encontrar detalhes de um pacote já instalado dentro do sistema, use o RPM comando com o -Qi Opção de informação de consulta:

[fedora@fedora] $ sudo rpm -qi nmap | menos
Nome: NMAP
Epoch: 3
Versão: 7.80
Lançamento: 11.FC34
Arquitetura: x86_64
Data de instalação: Ter 29 de junho de 2021 12:45:34 EDT
Grupo: não especificado
Tamanho: 24743073
..
Fonte RPM: NMAP-7.80-11.FC34.src.RPM
Data de construção: quinta -feira, 11 de março de 2021 12:34:34 AM EST
Build Host: BuildVM-X86-27.IAD2.FedoraProject.org
Packager: Projeto Fedora
..

A saída do comando acima compartilha detalhes de onde o programa foi baixado, diretamente do repositório YUM ou de qualquer meio de instalação. Da mesma forma, ele também compartilha detalhes ao longo das linhas de quando o programa foi instalado, que o construiu, seu tamanho e quando foi instalado.

O software para distribuições Linux vem de projetos de código aberto conhecido como provedores de software upstream. Eles disponibilizam o software com condições de licenciamento. As distribuições criam o código -fonte em binários e as consolidam com outros componentes relevantes em um pacote.

O pacote RPM consolidado é assinado para verificar sua integridade e adicionado ao repositório em correspondência à distribuição e arquitetura. Todos os pacotes de RPM vêm dos repositórios YUM disponíveis dentro de um diretório no servidor da web, um diretório de máquina local ou um médio como CD ou DVD ou um servidor FTP.

Localização do pacote

A localização dos arquivos do repositório está disponível no sistema do usuário dentro /etc/yum.Repos.d/ Diretório, é o local padrão para armazenar informações do repositório. No entanto, os usuários também podem encontrar ou especificar esses locais dentro do arquivo de configuração do Yum principal /etc/yum.conf.

[fedora@fedora] $ cat /etc /yum.repo.D/Fedora.repo | menos

Um arquivo de repositório contém várias cópias de pacotes de distribuição disponíveis em diferentes locais, também conhecidos como espelhos. Portanto, informa Yum sobre o local mais próximo do espelho para o download mais rápido. O arquivo de repositório possui três seções, contendo informações sobre os pacotes normais, depuração e de origem, por fim.

Assim como a embalagem Debian, RPM e Yum recebem detalhes sobre os pacotes instalados do banco de dados local. Os gerentes de pacotes recuperam metadados (de /var/cache/yum diretório) sobre os pacotes dentro do banco de dados local de repositórios ativados.

Baixe RPMs do repositório YUM

Para examinar o conteúdo do RPMS ou instalá-los em um ambiente não trabalhado, um usuário pode exigir para baixar o pacote. Pode ser possível com a ajuda do comando yumdownloader. Use o comando yumdownloader, com o nome do pacote para baixá -lo no diretório atual. Por exemplo, faça o download do editor de texto Vim da seguinte forma:

[fedora@fedora] $ yumdownloader vim

Ou use a opção -Resolve para baixar as dependências necessárias para o pacote.

[fedora@fedora] $ yumdownloader -Resolver vim
..
(4/6): Vim-Minimal-8.2.3046-1.FC34.x86_64.RPM 208 KB/S | 698 KB 00:03
(5/6): Vim-Common-8.2.3046-1.FC34.x86_64.RPM 727 KB/S | 6.6 MB 00:09
..

RPMS Instalação

Mesmo que a RPM O comando pode fazer instalação e atualizações básicas, os usuários o utilizam apenas quando os arquivos de programas já estão no diretório atual e estão prontos para instalar. Como o vim já está disponível no diretório atual, instale -o via RPM comando com um -eu opção com o nome inteiro do pacote, como segue:

[Fedora@fedora] $ yumdownloader-Resolver NMAP-7.80-11.FC34.x86_64.RPM
[fedora@fedora] $ sudo rpm -i nmap -7.80-11.FC34.x86_64.RPM

Use o -você opção para atualizar o pacote com um -hv opção para imprimir os sinais de hash e saída detalhada detalhada. Observe que a opção -u instala o pacote ZSH mesmo quando já está instalado.

[fedora@fedora] $ sudo rpm -uhv nmap -7.80-11.FC34.x86_64.RPM
Verificação… ################################## [100%]
Preparando… ################################## [100%]
..

O RPM O comando oferece outro tipo de instalação com o -F (Freshen) opções que instalam um pacote apenas se existir uma versão anterior desse pacote. É útil em um cenário quando o usuário deseja atualizar todos os RPMs instalados em um diretório atual.

[fedora@fedora] $ rpm -fhv *.RPM

Os usuários podem adicionar mais opções a qualquer uma das opções de instalação, como -Substituapkgs a opção permite reinstalar um pacote se um componente dele for excluído por engano. De forma similar, -Oldpackage a opção permite a instalação de uma versão mais antiga do pacote.

[fedora@fedora] $ sudo rpm -uhv --replacepkgs emacs-common-24.4-3.FC21.x86_64.RPM
[fedora@fedora] $ sudo rpm -uhv --oldpackage zsh -4.3.10-7.EL6.x86_64.RPM

Remoção de RPM

Para remover pacotes de RPM, use o -e opção do comando rpm com apenas um nome de base do pacote. A saída para o seguinte comando exibe que, diferentemente da remoção de pacotes no sistema de embalagens do Debian, ele não mostra nenhuma dependência removida no processo.

[fedora@fedora] $ sudo rpm -e nmap

Observe que, diferentemente da instalação do pacote, ele não solicita antes da remoção do pacote. Mas se o pacote for uma dependência para outro programa, o usuário recebe uma mensagem de erro, pois o comando rpm falha ao removê -lo.

Consultando informações de RPM

Nesta seção, discutiremos várias maneiras de consultar informações através do RPM comando. Na seção de embalagem RPM, aprendemos a exibir informações sobre um pacote já instalado via -Qi Informação. Da mesma forma, o comando rpm também permite a exibição de arquivos, arquivos de configuração e outra documentação com a ajuda de -QL, -QC, e -QD Opções, da seguinte maneira:

[fedora@fedora] $ rpm -ql nmap
/usr/bin/nmap
/usr/bin/nping
/usr/lib/.Build-id
/usr/lib/.Build-ID/4E
..
[fedora@fedora] $ rpm -qc nmap
[fedora@fedora] $ rpm -qd nmap
/usr/share/doc/nmap/readme
/usr/share/doc/nmap/nmap.uso.TXT
/usr/share/man/de/man1/nmap.1.gz
/usr/share/man/es/man1/nmap.1.gz
..

Os pacotes de RPM incluem uma infinidade de informações que podem ser recuperadas com várias bandeiras. Por exemplo, um usuário pode usar a opção -Require para encontrar programas ou arquivos pré -requisitos para instalar um programa EMAC -Common.

[fedora@fedora] $ rpm -q -requisitos emacs -common
Da mesma forma, consulte as informações sobre scripts executadas antes e após a instalação ou remoção da RPM com a ajuda do --scripts opção.
[cc lang = "text" width = "100%" altura = "100%" escape = "true" tema = "Blackboard" Nowrap = "0"]
[fedora@fedora] $ rpm -q -scripts httpd

Outra característica importante que RPM OFERTAS é a -QueryFormat opção que nos permite consultar informações como tags e saída em qualquer formato que o usuário prefira. Execute o seguinte comando para exibir todas as tags disponíveis:

[fedora@fedora] $ rpm --querytags | menos
ARCO
Arquivamento
Nomes de bases
Bugurl
Buildarchs
BuildHost
TEMPO DE CONSTRUÇÃO
..

Por exemplo, para exibir o nome, tamanho e número de liberação da tag Binutils, Use o seguinte comando:

[fedora@fedora] $ rpm -q binutils --QueryFormat "O pacote é %nome, \ e seu tamanho é %size \ n".

O pacote é binutils, seu tamanho é 31814958 e o lançamento é 41.FC34

Por fim, adicione o -p Sinalize a opção de consulta para ajudar a investigar RPMs compartilhados por alguém antes da instalação.

[Fedora@fedora] $ yumdownloader emac-common
[fedora@fedora] $ rpm -qip emacs-common-27.2-3.FC34.x86_64.RPM
..

Este pacote contém todos os arquivos comuns necessários para o Emacs, Emacs-Lucid ou Emacs-NOX.

Verificação de RPM

O banco de dados RPM contém impressões digitais para cada arquivo de pacote que permite ao usuário verificar sua integridade. O comando rpm oferece um -V recurso para verificar quaisquer alterações feitas nos componentes de pacotes instalados. No entanto, é importante observar que as alterações ocorrem no arquivo de configuração após a instalação, mas as mudanças nos binários são um problema.

Instale o pacote Emac-Common e faça alterações em seus arquivos. Mas lembre -se de remover e reinstalar o pacote após a experimentação.

[fedora@fedora] $ rpm -i zsh -5.8-5.FC34.x86_64.RPM
[Fedora@fedora] $ sudo -i
[root@fedora ~]# eco fedora> /bin /zsh
[root@fedora ~]# rm /etc /zshrc
RM: Remova o arquivo regular '/etc/zshrc'? y
[fedora@fedora] $ rpm -v vim
ausente c /etc /zshrc
S.5… T. /usr/bin/zsh

A saída acima exibe alterações feitas no / etc / arquivo, enquanto o arquivo / etc / é removido. As letras ou números na saída acima representam quaisquer alterações feitas nos arquivos do pacote. Essas cartas substituem os pontos após a manipulação do arquivo, alguns dos indicadores são os seguintes:

  • S: o tamanho do arquivo difere
  • D: incompatibilidade de número maior/menor do dispositivo
  • M: o modo de arquivo difere
  • P: os recursos diferem
  • U: A propriedade do usuário difere
  • 5: MD5 Sum difere
  • T: Tempo de modificação

Você pode encontrar mais detalhes sobre os indicadores de verificação da documentação oficial.

A saída acima ajuda a interpretar mudanças no tamanho do arquivo, alterações no md5sum em relação à impressão digital do arquivo e tempo de modificação. O RPM O comando oferece a -Substituapkgs opção para restaurar o estado do pacote. Verifique novamente com a opção de verificação: nenhuma saída não exibe alterações.

[fedora@fedora] $ rpm -i --replacepkgs zsh -5.0.2-7.EL7.x86_64.RPM
[fedora@fedora] $ rpm -v vim

A prática ideal é manter um backup do banco de dados /var/lib/rpm para um meio somente leitura. Ajuda a verificar a integridade do pacote com a garantia se não é verificado em um banco de dados temperado/rachado.

Conclusão

O artigo detalha a história e a evolução do sistema de embalagem para a distribuição Red Hat Linux. Ele também fornece detalhes sobre a embalagem RPM e sua localização dentro do sistema. Por fim, o artigo fornece detalhes detalhados sobre as cinco operações básicas do RPM.