Introdução ao gerenciamento de pacotes no Linux

Introdução ao gerenciamento de pacotes no Linux
Todos os sistemas operacionais dependem de um conjunto de aplicativos de software para realizar tarefas pretendidas pelo usuário. Nos primeiros dias, as inscrições foram testadas contra bugs antes da liberação para proporcionar uma melhor experiência do usuário. Agora, o aplicativo de software é lançado com a intenção de aplicar correções de bugs em novas versões. Além disso, cada aplicativo tem seu atualizador, ou o usuário teve que descobrir como obter a liberação de software atualizada.

O Linux adotou a prática oportuna de gerenciamento de software, criando formatos de embalagem, pacotes de software e ferramentas de instalação exclusivas. Este artigo discute como o processo de instalação do pacote de software atualizado da instalação do pacote Tarball para o gerenciamento de pacotes de Deb e RPM.

Tarball

A adição de software Linux Systems anterior exigiu que o usuário baixasse o código -fonte, compilasse -o em arquivos binários e adicione -o ao sistema. Às vezes, o software era disponibilizado por alguns usuários em uma forma compilada conhecida como Tarball. Um tarball contém vários arquivos, incluindo executáveis, arquivos de configuração, documentação e bibliotecas. De modo que todos os arquivos sejam compactados em um único arquivo para facilitar o armazenamento e distribuição.

Após a instalação do software, os arquivos espalhados pelo sistema em diretórios relevantes. No entanto, o método de criar tarball pode parecer fácil, mas o processo de instalação dificulta algumas tarefas, por exemplo:

Requer que o usuário rastreie independentemente/manualmente as dependências para o software de instalação, de modo que o próprio software dependente tenha algumas dependências.

Como a instalação do pacote de tarball espalha os arquivos, não será fácil localizar os arquivos de documentação e configuração do pacote, mesmo que o usuário saiba os comandos.

É difícil localizar arquivos para desinstalar o software.

A ausência de metadados em tarballs deixa os usuários confusos sobre os detalhes da versão após a instalação. Isso dificulta rastrear bugs e obter novas versões.

Para superar esses problemas, as embalagens de software nas distribuições Linux evoluíram em dois formatos de embalagem conhecidos como embalagens Deb e RPM.

Embalagem de deb

As distribuições Linux baseadas em Debian e Debian usam embalagem de software Deb-Base. O .Os arquivos Deb incluem todos os arquivos relevantes com metadados em um .formato de arquivamento AR. Os metadados contêm todos os detalhes relevantes do software envolvendo versão, descrição, dependências, licenças, etc. As distribuições do Debian oferecem várias interfaces gráficas e ferramentas baseadas em terminais para gerenciar .Arquivos Deb. Alguns deles incluem:

  • APT: Ferramenta de embalagem avançada do Ubuntu que fornece um comando apt-get para pesquisar e gerenciar a instalação do pacote.
  • aptidão: O comando é uma ferramenta de gerenciamento de pacotes que fornece uma interface baseada em texto para executar dentro do terminal. Ele executa a instalação, remoção e atualização do pacote usando teclas de seta e destacando a opção selecionada.
  • Ubuntu Software Center: É uma interface de usuário gráfica intuitiva para usuários iniciantes de Linux pesquisando e instalando pacotes.

Embora o Ubuntu Software Center seja intuitivo, o sistema avançado de gerenciamento de embalagens supera todos os outros PMs para embalagem de Deb.

Embalagem RPM

O RPM (.RPM) Formato de embalagem é a preferência de distribuições SUSE, Fedora e Red Hat e Linux baseadas em RHEL. O pacote RPM é o amálgama de arquivos para fornecer um visualizador de fotos, processador de texto ou outro software para usuários de distribuição de RHEL. Ele também contém arquivos de configuração, metadados e outros documentos necessários para criar o software.

O RPM Package Manager combina binários e todos os arquivos necessários disponíveis através de provedores de software upstream em um pacote de RPM. Antes de incluir pacotes no repositório, eles são assinados para que os usuários possam verificar sua validade. Agora, o usuário pode acessar esses pacotes para instalação a partir de repositórios colocados dentro de CDs ou diretórios via NFS ou servidores FTP.

O nome do pacote RPM fala muito sobre o software. Por exemplo, digite o seguinte comando para descobrir os detalhes do pacote RPM atualmente instalado do Firefox:

[fedora@fedora] $ rpm -q firefox
Firefox-87.0-12.FC34.x86_64
  • 87.0: representa um número de lançamento atribuído pelo projeto Mozilla
  • 12: Representa o número de vezes que o Red Hat reconstrói o pacote no mesmo número de lançamento.
  • FC34.x86_64: representa que o pacote é construído e compilado para a arquitetura Fedora Linux e X86 de 64 bits.

Para encontrar mais detalhes do pacote, consulte o banco de dados local do RPM usando o comando rpm com a opção -qi:

[fedora@fedora] $ rpm -qi firefox
Nome: Firefox
Versão: 87.0
Lançamento: 12.FC34
Arquitetura: x86_64
Data de instalação: sex 23 de abril de 2021 06:58:19 AM EDT
Grupo: não especificado
Tamanho: 261285879
Licença: MPLV1.1 ou GPLV2+ ou LGPLV2+
Assinatura: RSA/SHA256, Ter 13 de abril de 2021 04:59:11 AM EDT, ID da chave 1161e6945719a39
Fonte RPM: Firefox-87.0-12.FC34.src.RPM
Data de construção: Seg 12 de abril de 2021 04:56:26 AM EDT
Build Host: BuildHW-X86-10.IAD2.FedoraProject.org
Packager: Projeto Fedora
Fornecedor: Projeto Fedora
URL: https: // www.Mozilla.org/firefox/
URL do bug: https: // bugz.FedoraProject.org/firefox
Resumo: Navegador da Web Mozilla Firefox
Descrição :
Mozilla Firefox é um navegador da web de código aberto projetado para padrões
conformidade, desempenho e portabilidade.

A saída acima agora representa o pacote construído e as datas de instalação, tamanho, licenciamento do Firefox Package Group e muitos outros detalhes. Embora o RPM tenha sido o primeiro comando da ferramenta de embalagem RPM para atualização de instalação, consulta, remoção de pacotes, etc., tem algumas desvantagens fundamentais.

Dependência Inferno: A instalação do pacote RPM falha na ausência de dependências ao contar sobre os componentes necessários. Além disso, o próprio pacote dependente tem algumas dependências necessárias para realizar o trabalho.

RPMS Localização: O RPM Package Manager espera receber o local do pacote antes da instalação. Se o pacote estiver disponível na pasta atual, exigirá uma entrada do Firefox-87.0-12.FC34.x86_64.RPM, se estiver no servidor, requer http: // exemplo.com/firefox-87.0-12.FC34.x86_64.RPM.

Considerando que, naquela época, a embalagem de software baseada em Deb poderia resolver automaticamente o problema de dependências. No entanto, após a crescente popularidade dos pacotes de RPM, os problemas foram resolvidos com a instalação YUM.

Projeto Yum

A instalação Modificada de Updater YellowDog (YUM) foi introduzida para gerenciar dependências de pacotes de RPM, considerando cada pacote de RPM como parte de um grande repositório de software. De modo que o problema de lidar com as dependências é para a distribuição Linux ou software de terceiros.

Ele resolve os problemas com o conceito de que os repositórios podem construir um sobre o outro. Por exemplo, se um usuário instalar algum pacote a partir da rpmfusion.Org repositório, que requer um comando/ferramenta do principal repositório do Fedora, também tem acesso a isso. Portanto, será baixado e instalado nesse meio tempo.

Conclusão

Os artigos fornecem uma breve história de como o sistema de gerenciamento de embalagens Linux evoluiu. Nós discutimos .Deb e .Sistemas de embalagem de software baseados em RPM para distribuições Linux baseadas em Debian e Rhel, suas ferramentas mais usadas. Também discutimos a evolução dos sistemas de gerenciamento de pacotes dos problemas enfrentados durante os estágios iniciais do desenvolvimento.