[TUTORIAL] Gerenciamento de pacotes com DNF para o dia a dia
Olá a todos!
Esse tutorial é para quem deseja realizar tarefas básicas de gerenciamento de pacotes usando o comando DNF, do tipo instalar, remover e atualizar programas e o sistema todo.
Não vou descrever todo o manual do DNF aqui, apenas os comandos mais comuns no dia a dia.
INSTALAÇÃO DE PACOTES
Para instalar programas usando o comando dnf, você precisa estar logado como root ou usar o comando sudo, isso é necessário pois o pacote que será instalado, colocará arquivos em locais protegidos do sistema, irei utilizar o sudo nesse tutorial.
Neste exemplo vou instalar um editor de texto simples chamado leafpad, para instalar um pacote/programa é bem simples, basta você usar o comando sudo dnf install nome_do_programa e se tudo correr bem o dnf vai baixar o programa verificar as dependências e instalar o software na sua maquina, veja o exemplo abaixo.
sudo dnf install leafpad
Se você rodar esse comando, vai notar que o pacote não será instalado automaticamente, o dnf por padrão irá perguntar se você realmente deseja instalar o pacote e solicitar que você pressione a tecla "S" e enter para confirmar, isso é útil para você ter uma noção das dependências que serão instadas e se ocorrer algum problema o dnf também mostrará o erro, então prefira essa maneira para instalar programas. Mas se você deseja que ele instale o pacote automaticamente sem perguntar nada, pode usar a opção "-y" de "yes".
sudo dnf install leafpad -y
Com o dnf você também pode instalar pacotes que estão fora do repositório, por exemplo, se você baixou o pacote rpm do google-chrome no site oficial, você pode usar o dnf para instalar, basta você navegar no terminal até a pasta e passar o nome do pacote, essa opção é útil, pois o dnf vai resolver todas as dependências que o pacote precisa.
sudo dnf install ./google-chrome-stable_current_x86_64.rpm
Com o dnf você também pode passar um link do pacote, sem precisar baixar na sua maquina, por exemplo, vou instalar o leafpad de a partir de um link:
sudo dnf install http://fedora.c3sl.ufpr.br/linux/releases/34/Everything/x86_64/os/Packages/l/leafpad-0.8.18.1-27.fc34.x86_64.rpm
Quando você instala pacotes com o dnf pode aparecer uma lista de "dependências fracas", dependências fracas são pacotes extras que o pacote que você quer precisa para estender funcionalidades, por exemplo, ao instalar o gerenciador de arquivo thunar, ele tem uma dependência fraca o pacote thunar-google-drive, que serve para você ter o google-drive direto no thunar, apesar de ser interessante esse pacote, ele não é necessário para o funcionamento do thunar, é útil apenas para quem deseja essa funcionalidade, se você não quer que essas dependências fracas sejam instaladas, use o comando abaixo.
(Utilize esse comando quando você conhece o software e tem certeza do que não quer, na maioria dos casos o que dnf sugere na instalação será útil de alguma forma.)
(O exemplo do thunar é apenas uma ilustração, não existe pacote thunar-google-drive.)
sudo dnf install NOME_PACOTE --setopt=install_weak_deps=False
REMOÇÃO DE PACOTES.
Para remover pacotes usando o dnf é muito simples, basta usar o sudo dnf remove nome_do_pacote, veja o exemplo abaixo para remover o programa leafpad que eu tinha instalado.
sudo dnf remove leafpad
Você também pode usar a opção "-y" de yes para remover automaticamente sem realizar perguntas.
sudo dnf remove leafpad -y
PESQUISANDO PACOTES
Pesquisando pacotes no repositório, você pode usar a opção "list" do dnf, para pesquisar pacotes.
Pesquisar pelo pacote synapse que é um launcher de aplicativos, por exemplo:
dnf list synapse Pacotes disponíveis synapse.x86_64 0.2.99.4-7.fc34
Pacotes disponíveis, mostra que o pacote está disponível no repositório, mas não está instalado na máquina.
Pesquisando por pacotes instalados na máquina, por exemplo, pesquisar por um pacote chamado tree.
dnf list --installed tree Pacotes instalados tree.x86_64 1.8.0-6.fc34 @anaconda
13:11:34.
Pesquisando utilizando utilitário grep, por exemplo, pesquisar todos os pacotes instalados na minha máquina que tenham "tree" no nome.
dnf list --installed | grep tree ostree.x86_64 2021.1-2.fc34 @fedora ostree-libs.x86_64 2021.1-2.fc34 @fedora tree.x86_64 1.8.0-6.fc34 @anaconda
Poderia ser feito dessa maneira o dnf suporta globbing.
dnf list --installed '*tree*' Pacotes instalados ostree.x86_64 2021.1-2.fc34 @fedora ostree-libs.x86_64 2021.1-2.fc34 @fedora tree.x86_64 1.8.0-6.fc34 @anaconda
Se você não tem o nome correto do software talvez o list não mostre o nome do pacote, se você quiser pesquisar uma "string" e ver todos os pacotes que cotenham a "string" pesquisada na sua busca, use a opção "search"
dnf search synapse
Vai buscar todos os pacotes que tenham "synapese" no seu nome.
ATUALIZAÇÃO DO SISTEMA
Você pode atualizar todo o sistema com o dnf, fazendo a atualização pelo terminal, você pode analisar o que vai ser instalado no sistema e também pode verificar melhor se algum erro ocorrer, o comando para atualizar todo o sistema é:
sudo dnf upgrade
Você também pode atualizar apenas um programa específico, passando seu nome para a opção upgrade, por exemplo para atualizar o editor de texto leafpad.
sudo dnf upgrade leafpad
Às vezes problemas com dependências acorrem, por exemplo, durante uma atualização o dnf queira instalar o gimp no sistema, porém você não usa esse programa na máquina, você pode pedir para o dnf upgrade atualizar tudo, mas não instalar o gimp na máquina, com a opção "--exclude". (essa situação com gimp realmente ocorreu no dia 16/06/2021 e foi relata por usuários no grupo da Comunidade Fedora Brasil no Telegram, veja a saída da atualziação:https://pastebin.com/raw/vMfxaA6s
sudo dnf upgrade --exclude gimp
Outra situação comum é ocorrer um erro durante a atualização e dnf não conseguir obter o pacote do reposítorio, isso pode ocorrer por varios fatores, você pode usar a opção "--refresh" para o dnf sincronizar os metadados do repositório antes de fazer o upgrade.
sudo dnf upgrade --refresh
Para verificar se há upgrades disponíveis na sua máquina, use o comando abaixo.
dnf check-upgrade
TRABALHANDO COM GRUPOS
Grupo de pacotes são uma maneira do desenvolvedor configurar um ambiente completo, por exemplo, a área de trabalho do XFCE, não é composta por um único pacote, o XFCE é composto por vários pacotes, como o thunar (gerenciador de arquivos), xfce4-panel (painel da área de trabalho) e xfce4-screenshooter (aplicativo para screenshots da tela) dentre tantos... Imagine que para você instalar área de trabalho completa no sistema você precise lembrar o nome de cada pacote, isso seria muito dispendioso, pois são muitos pacotes. É aí que entra o grupo, basicamente é um pacote virtual que contém como dependências todos os componentes do ambiente, então quando você instala o grupo "Ambiente de Trabalho Xfce" vai instalar todos os pacotes que compoẽm o ambiente XFCE.
Para listar todos os grupos disponíveis no sistema, use o comando abaixo. (Geralmente comando de pesquisa que não modificam o sistema não necessita do uso do sudo ou root).
dnf group list -v Ambiente de trabalho KDE Plasma (kde-desktop-environment) Ambiente de trabalho LXDE (lxde-desktop-environment) Ambiente de trabalho LXQt (lxqt-desktop-environment) Ambiente de trabalho Cinnamon (cinnamon-desktop-environment) Ambiente de trabalho MATE (mate-desktop-environment) Ambiente de trabalho Sugar (sugar-desktop-environment) Área de trabalho deepin (deepin-desktop-environment)
Na saída deste comando é possível vários grupos de ambientes de desktop como o MATE, KDE, LXDE e LXQt, esses grupos quando instalado fornecem o ambiente completo.
Para instalar o grupo de pacote "Ambiente de trabalho MATE" você deve pegar o nome do grupo que está entre parenteses (mate-desktop-environment) no exemplo vou instalar o MATE usando o comando abaixo.
sudo dnf group install mate-desktop-environment
Ver informações do grupo.
dnf group info mate-desktop-environment
Você também pode remover um grupo já instalado no sistema, por exemplo, remover o ambiente mate instalado.
sudo dnf group remove mate-desktop-environment
Verificar quais grupos estão instalados no seu sistema.
dnf group list --installed -v
Atualizar um grupo instalado na sua maquina, exemplo você tem o KDE Desktop na versão estável no Fedora e gostaria de atualizá-lo para a versão testing, basta habilitar os repositórios testing no sistema e atualizar o grupo "Ambiente de trabalho KDE Plasma"
dnf group upgrade kde-desktop-environment
DESATUALIZANDO PACOTES (DOWNGRADE)
Imagine que você atualize um pacote para uma nova versão e note que ela não está funcionando corretamente, e pesquisando descobre que há uma bug nessa nova versão de pacote que você atualizou, isso é frustrante e é comum de ocorrer, mas existe uma opção do comando dnf que reverte esse pacote para uma versão mais baixa, onde o problema não ocorra, ou seja, você desatualiza o pacote. Exemplo revertendo uma versão do kernel.
sudo dnf downgrade kernel
REINSTALAÇÃO DE PACOTES
Reinstalar um pacote pode ser útil nos casos em que você apagou um arquivo desse pacote, por exemplo, um arquivo de configuração em /etc/ ou o software está apresentando algum comportamente estranho, para reinstar um pacote com o dnf é bem fácil, vou reinstalar o leafpad.
sudo dnf reinstall leafpad
HABILITANDO E DESABILITANDO REPOSITÓRIOS
O dnf busca os pacotes em repositórios e por padrão vem com alguns configurados, durante o gerenciamento de pacotes pode ser necessário que você ative ou desative um repositório.
Ver todos os repositórios configurados na sua maquina e a situção, se estão "habilitados" ou "desabilitados"
dnf repolist --all
Para habilitar um repositóri, você usar o comando "sudo dnf config-manager --set-enabled", neste exemplo vou habilitar os reposítorios testing (esse repositório tem pacotes pouco testados que podem conter bugs, utilize com cuidado).
sudo dnf config-manager --set-enabled updates-testing sudo dnf config-manager --set-enabled updates-testing-modular
Para desabilitar, neste exemplo vou desabilitar os repositórios testing.
sudo dnf config-manager --set-disabled updates-testing sudo dnf config-manager --set-disabled updates-testing-modular
Referências
Insalação
Remoção
Pesquisando
Atualizando
Grupos
Downgrade
Reinstalação
Repositórios
Comentários
-
Sensacional! Parabéns pelo ótimo post!
0 -
Show!! muito bom!
0
Salas de discussão
- 721 Todas as salas de discussão
- 5 Eventos
- 402 Fedora
- 7 CoreOS
- 137 Spins
- 11 CINNAMON
- 28 GNOME
- 63 KDE
- 10 LXDE
- 4 LXQT
- 13 MATE
- SOAS
- 3 XFCE
- 13 Server
- 84 Workstation
- 33 SilverBlue
- Atomic
- 3 Labs
- ARM®
- 3 Segurança
- 7 Servidores
- 222 Tutoriais
- 6 Críticas e Sugestões
- 16 Novidades e anuncios
- 5 CentOS
- 18 Games
- 31 Hardware
- 8 Linguagens de programação