DNF - O Utilitário de Gerenciamento de Pacotes de Próxima Geração para Baseado em RPM
No mundo das distribuições baseadas em RPM, manter seus pacotes de software atualizados é crucial para manter a segurança e a estabilidade do sistema. Felizmente, o dnf fornece um utilitário de gerenciamento de pacotes poderoso e fácil de usar para gerenciar atualizações de software. Nesta postagem do blog, exploraremos os recursos do dnf e como ele melhora em relação ao seu antecessor, yum.
O que é DNF?
DNF é o utilitário de gerenciamento de pacotes de última geração para distribuições Linux baseadas em RPM. É um gerenciador de pacotes moderno e de código aberto projetado para facilitar aos usuários o gerenciamento de pacotes de software em seus sistemas. DNF significa “Dandified Yum”, que é uma referência ao seu antecessor, Yum.
O DNF foi introduzido pela primeira vez no Fedora 18 e, desde então, tornou-se o gerenciador de pacotes padrão para muitas distribuições Linux baseadas em RPM, incluindo Fedora, CentOS 8 e RHEL 8. O DNF é baseado na mesma base de código do Yum, mas com muitas melhorias , incluindo melhor desempenho, segurança aprimorada e uma interface mais amigável.
Por que o DNF é necessário?
Antes de mergulharmos nos detalhes técnicos do DNF, vamos entender por que ele foi criado. A resposta a essa pergunta está nas deficiências do antigo gerenciador de pacotes Yum.
Yum foi projetado em uma época em que as distribuições baseadas em RPM ainda estavam em sua infância. Era uma ferramenta simples que poderia ajudar os usuários a gerenciar pacotes de software em seus sistemas, mas tinha diversas limitações. Por exemplo, era lento, não lidava muito bem com dependências e estava sujeito a erros.
Com o tempo, à medida que as distribuições baseadas em RPM se tornaram mais populares e complexas, as limitações do Yum tornaram-se mais pronunciadas. Desenvolvedores e usuários começaram a procurar um gerenciador de pacotes melhor que pudesse resolver esses problemas.
É aí que entra o DNF. O DNF foi projetado desde o início para ser um gerenciador de pacotes moderno, confiável e fácil de usar. Ele usa o mesmo formato de pacote RPM do Yum, mas possui muitas melhorias que o tornam uma ferramenta superior.
Como funciona o DNF?
Agora que entendemos por que o DNF foi criado, vamos dar uma olhada em como ele funciona. Basicamente, DNF é uma ferramenta de linha de comando que permite aos usuários gerenciar pacotes de software em seus sistemas. Ele pode ser usado para instalar, atualizar e remover pacotes, bem como procurar pacotes e listar pacotes instalados.
Um dos principais recursos do DNF é o suporte a plug-ins. Plugins são módulos que podem estender a funcionalidade do DNF de várias maneiras. Por exemplo, existem plug-ins que podem ajudar com armazenamento em cache, ajuste de desempenho e depuração. Os plug-ins podem ser instalados e configurados usando o arquivo de configuração DNF.
Outra característica importante do DNF é o uso de repositórios modulares. Repositórios modulares são coleções de pacotes de software agrupados com base em sua funcionalidade. Por exemplo, pode haver um módulo para servidores web, um módulo para servidores de banco de dados e um módulo para ferramentas de desenvolvimento. Cada módulo contém um conjunto de pacotes que foram testados e verificados para funcionarem juntos.
Os repositórios modulares facilitam o gerenciamento dos pacotes de software pelos usuários, pois eles podem optar por ativar apenas os módulos necessários. Isso ajuda a reduzir o risco de conflitos e garante que os pacotes do sistema estejam atualizados e seguros.
Usando DNF
Agora que entendemos como funciona o DNF, vamos dar uma olhada em como usá-lo. O DNF pode ser usado na linha de comando ou por meio de uma interface gráfica, como o aplicativo GNOME Software.
Para instalar um pacote usando DNF, basta digitar o seguinte comando -
dnf install package_name
Por exemplo, para instalar o servidor web Apache, você digitaria -
dnf install httpd
O DNF irá então baixar e instalar o pacote e quaisquer dependências necessárias.
Para atualizar um pacote usando DNF, digite o seguinte comando -
dnf update package_name
Por exemplo, para atualizar o servidor web Apache, você digitaria -
dnf update httpd
O DNF irá então verificar se há atualizações e baixar e instalar as que estiverem disponíveis.
Para remover um pacote usando DNF, digite o seguinte comando -
dnf remove package_name
Por exemplo, para remover o servidor web Apache, você digitaria -
dnf remove httpd
O DNF removerá então o pacote e quaisquer dependências que não sejam mais necessárias.
O DNF também possui muitos outros comandos e opções que podem ser usados para gerenciar pacotes no sistema. Por exemplo, você pode usar o comando search para procurar pacotes, o comando info para obter informações sobre um pacote e o comando list para listar todos os pacotes instalados.
Como o DNF se compara a outros gerenciadores de pacotes
DNF é um dos vários gerenciadores de pacotes disponíveis para distribuições Linux baseadas em RPM. Yum, Zypper e Apt-RPM são outros gerenciadores de pacotes populares. Aqui estão algumas diferenças entre DNF e esses outros gerenciadores de pacotes -
Yum - Yum é o antecessor do DNF e existe há mais de uma década. O DNF foi criado para resolver algumas das limitações do Yum, como desempenho lento, falta de resolução de dependências e uma arquitetura de plugin limitada. Embora o Yum ainda seja usado em algumas versões mais antigas de distribuições baseadas em RPM, o DNF é o gerenciador de pacotes recomendado para versões mais recentes.
Zypper - Zypper é o gerenciador de pacotes padrão para distribuições SUSE Linux Enterprise e openSUSE. Assim como o DNF, possui uma arquitetura de plugins e suporta download paralelo de pacotes. No entanto, o DNF é geralmente considerado mais rápido e confiável que o Zypper, especialmente quando se trata de resolução de dependências.
-
Apt-RPM - Apt-RPM é uma versão do gerenciador de pacotes Debian (APT) para distribuições baseadas em RPM. Ele possui uma interface de linha de comando e sintaxe semelhantes ao APT, mas possui algumas limitações quando se trata de recursos específicos do RPM, como RPMs delta e assinatura de pacotes. DNF é geralmente considerado a melhor escolha para gerenciar distribuições baseadas em RPM.
No geral, o DNF é um gerenciador de pacotes moderno, confiável e fácil de usar que tem muitas vantagens sobre outros gerenciadores de pacotes.
Como instalar e configurar o DNF
Instalar e configurar o DNF é simples. Aqui estão as etapas -
Verifique os requisitos do sistema - DNF requer um mínimo de 1 GB de RAM e 10 GB de espaço livre em disco.
Install DNF - Para instalar o DNF em um sistema baseado em Fedora, execute o seguinte comando -
sudo dnf install dnf
Para instalar o DNF em um sistema Red Hat Enterprise Linux ou CentOS, você precisará primeiro habilitar o repositório EPEL -
sudo yum install epel-release
sudo yum install dnf
Configure DNF - O DNF é configurado por meio do arquivo /etc/dnf/dnf.conf. Aqui estão algumas opções básicas de configuração:
installonly_limit - Define o número máximo de versões antigas de pacotes para manter no sistema. O valor padrão é 3.
clean_requirements_on_remove - Remove dependências que não são mais necessárias quando um pacote é removido. O valor padrão é verdadeiro.
gpgcheck - Habilita ou desabilita a verificação de assinatura de pacote. O valor padrão é verdadeiro.
max_parallel_downloads - Define o número máximo de pacotes para download de uma vez. O valor padrão é 3.
Você também pode configurar repositórios individuais criando um arquivo no diretório /etc/yum.repos.d/. Aqui está um exemplo de arquivo de repositório para o repositório de atualizações do Fedora -
[fedora-updates]
name=Fedora $releasever - $basearch - Updates
metadata_expire=6h
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
Como criar seu próprio plug-in DNF
Criar seu próprio plugin DNF também é relativamente fácil. Aqui estão as etapas -
Crie um diretório de plugins - Crie um diretório para seu plugin em /usr/lib/dnf/plugins/ com um nome descritivo. Por exemplo -
sudo mkdir /usr/lib/dnf/plugins/myplugin
Crie um arquivo Python para seu plugin - Crie um arquivo Python no diretório do seu plugin com um nome descritivo e uma extensão .py. Por exemplo -
sudo nano /usr/lib/dnf/plugins/myplugin/myplugin.py
Defina sua classe de plugin - Em seu arquivo Python, defina uma classe para seu plugin que herda da classe dnf.Plugin. Aqui está um exemplo -
from dnf.plugins import Plugin
class MyPlugin(Plugin):
name = 'myplugin'
def __init__(self, base, cli):
super(MyPlugin, self).__init__(base, cli)
Implementar a lógica do seu plugin - Adicione métodos à sua classe que implementem a funcionalidade do seu plugin. Por exemplo -
def posttrans(self):
print("My plugin was called after a transaction was completed!")
Registre seu plugin - Em seu arquivo Python, adicione uma chamada à função dnf.plugin.register() para registrar seu plugin. Por exemplo -
from dnf.plugins import Plugin, plugin
class MyPlugin(Plugin):
name = 'myplugin'
def __init__(self, base, cli):
super(MyPlugin, self).__init__(base, cli)
def posttrans(self):
print("My plugin was called after a transaction was completed!")
plugin.register(MyPlugin)
Teste seu plugin - Execute DNF com as opções --verbose e --debugsolver para ver se seu plugin está sendo chamado. Por exemplo -
sudo dnf update --verbose --debugsolver
Você deverá ver seu plugin sendo carregado e chamado na saída.
Conclusão
DNF é o utilitário de gerenciamento de pacotes de próxima geração para distribuições Linux baseadas em RPM. Ele oferece muitas vantagens em relação aos gerenciadores de pacotes anteriores, como o Yum, incluindo desempenho mais rápido, melhor resolução de dependências e uma arquitetura de plugins mais flexível. Com o DNF, você pode facilmente instalar, atualizar e remover pacotes do seu sistema, bem como criar seus próprios plug-ins para estender sua funcionalidade.
Seguindo as etapas descritas nesta postagem do blog, você poderá instalar e configurar o DNF em seu sistema, bem como criar seu próprio plugin DNF. Quer você seja um administrador de sistema, um desenvolvedor ou um entusiasta do Linux, o DNF é uma ferramenta poderosa e versátil que pode ajudá-lo a gerenciar seu sistema de maneira mais eficaz.