Fedora – Gerenciando pacotes com o DNF (Guia Básico)

fedora_128_1228Neste tópico, tentaremos mostrar de uma forma simples e direta, como estar realizando o gerenciamento de pacotes usando a mais nova ferramenta do Fedora, o DNF, que tomou o lugar do YUM.

Mas, o que é e o que faz o DNF?

DNF é o gerenciador de pacotes O Projeto Fedora. Ele é capaz de consultar informações sobre os pacotes, obter pacotes de repositórios, instalar e desinstalar pacotes usando resolução de dependências automática, atualizar um sistema inteiro com os últimos pacotes disponíveis. O DNF pode executar a resolução de dependências automática de pacotes a atualizar, instalar ou remover, e, portanto, é capaz de determinar automaticamente, buscar e instalar todos os pacotes dependentes disponíveis. DNF pode ser configurado com novos repositórios adicionais, ou fontes de pacotes, e também fornece muitos plug-ins que melhoram e ampliam suas capacidades. O DNF é capaz de executar muitas das mesmas tarefas que o RPM pode; Além disso, muitas das opções de linha de comando são semelhantes. Também existe a questão da segurança, onde você estará baixando pacotes assinados via GPG. O DNF fornece gerenciamento de pacotes seguro, permitindo GPG (GNU Privacy Guard, também conhecido como GnuPG) verificação de assinatura de pacotes assinados que devem ser ativados para todos os repositórios de pacotes (fontes do pacote), ou para repositórios individuais. Quando a verificação de assinatura é habilitada, o DNF se recusará a instalar quaisquer pacotes não assinados com a chave correta para esse repositório. Isso significa que você pode confiar que os pacotes RPM você baixar e instalar no seu sistema são de uma fonte confiável, como o Projeto Fedora, e não foram modificados durante a transferência.

PS: Você deve ter privilégios de super usuário para atualizar, instalar ou remover pacotes no sistema. Os exemplos a seguir utilizarão o sudo ou root, diretamente.

1 – Checando por atualizações:

# dnf check-update
Last metadata expiration check performed 1:34:33 ago on Thu Jul 14 07:14:59 2016.

NetworkManager-openvpn.x86_64 1:1.0.8-2.fc22 updates
NetworkManager-openvpn-gnome.x86_64 1:1.0.8-2.fc22 updates
expat.i686 2.1.1-2.fc22 updates
expat.x86_64 2.1.1-2.fc22 updates
expat-devel.x86_64 2.1.1-2.fc22 updates
findutils.x86_64 1:4.5.14-7.fc22 updates
gnumeric.x86_64 1:1.12.31-1.fc22 updates
krb5-devel.x86_64 1.13.2-15.fc22 updates
krb5-libs.i686 1.13.2-15.fc22 updates
krb5-libs.x86_64 1.13.2-15.fc22 updates
mate-themes.noarch 3.16.3-1.fc22 updates

(exemplo de saída acima)

2 – Atualizando pacotes:

# dnf upgrade

ou

# dnf update
Last metadata expiration check performed 1:38:15 ago on Thu Jul 14 07:14:59 2016.
Dependencies resolved.
========================================================================================================================================================================
Package Arq. Versão Repo Tam.
========================================================================================================================================================================
Instalando:
obs-studio-libs x86_64 0.15.0-1.fc22.R russianfedora-free-updates 564 k
Atualizando:
NetworkManager-openvpn x86_64 1:1.0.8-2.fc22 updates 193 k
NetworkManager-openvpn-gnome x86_64 1:1.0.8-2.fc22 updates 70 k
expat i686 2.1.1-2.fc22 updates 92 k
expat x86_64 2.1.1-2.fc22 updates 86 k
expat-devel x86_64 2.1.1-2.fc22 updates 63 k
findutils x86_64 1:4.5.14-7.fc22 updates 523 k
gnumeric x86_64 1:1.12.31-1.fc22 updates 13 M
krb5-devel x86_64 1.13.2-15.fc22 updates 648 k
krb5-libs i686 1.13.2-15.fc22 updates 855 k
krb5-libs x86_64 1.13.2-15.fc22 updates 840 k
mate-themes noarch 3.16.3-1.fc22 updates 5.2 M

(Exemplo de saída acima)

PS: A diferença entre os dois é que com o parâmetro “upgrade“, será realizada a atualização dos pacotes mesmo que haja dependências quebradas e com o parâmetro “update”, será realizada uma notificação caso existam dependências quebradas e a atualização não será realizada até que você realize algum outro procedimento visando solucionar tais dependências.

a) Para atualizar apenas um pacote por vez, você utiliza:

# dnf upgrade firefox

ou

# dnf update firefox

2 – Procurando pacotes:

# dnf search

Ex.

# dnf search webcam
Last metadata expiration check performed 1:42:21 ago on Thu Jul 14 07:14:59 2016.
========================================================================= N/S Matched: webcam ==========================================================================
fswebcam.x86_64 : Tiny and flexible webcam program
gallery2-webcam.noarch : Webcam module for Gallery 2
libwebcam-devel.i686 : Development libraries and headers for libwebcam
libwebcam-devel.x86_64 : Development libraries and headers for libwebcam
libwebcam.i686 : A library for user-space configuration of the uvcvideo driver
libwebcam.x86_64 : A library for user-space configuration of the uvcvideo driver
camorama.x86_64 : Gnome webcam viewer
cheese-camera-service.x86_64 : Webcam D-Bus service
cheese-libs.x86_64 : Webcam display and capture widgets
cheese-libs.i686 : Webcam display and capture widgets
uvcdynctrl.x86_64 : Command line interface to libwebcam
gyachi.x86_64 : A Yahoo! chat client with Webcam and voice support
cheese.x86_64 : Application for taking pictures and movies from a webcam
kamoso.x86_64 : Application for taking pictures and videos from a webcam
camE.x86_64 : Rewrite of the xawtv webcam app, which adds imlib2 support

(exemplo de saída acima)

a) Também pode ser realizada a busca por mais de um termo ou pacote:

# dnf search webcam dvd
========================================================================= N/S Matched: webcam ==========================================================================
libwebcam.i686 : A library for user-space configuration of the uvcvideo driver
libwebcam.x86_64 : A library for user-space configuration of the uvcvideo driver
=========================================================================== N/S Matched: dvd ===========================================================================
radvd.x86_64 : A Router Advertisement daemon
ladvd.x86_64 : CDP/LLDP sender for UNIX
texlive-advdate.noarch : Print a date relative to "today"
========================================================================= N/S Matched: webcam ==========================================================================
camorama.x86_64 : Gnome webcam viewer
cheese-camera-service.x86_64 : Webcam D-Bus service
cheese-libs.x86_64 : Webcam display and capture widgets
cheese-libs.i686 : Webcam display and capture widgets
uvcdynctrl.x86_64 : Command line interface to libwebcam
gyachi.x86_64 : A Yahoo! chat client with Webcam and voice support
cheese.x86_64 : Application for taking pictures and movies from a webcam
kamoso.x86_64 : Application for taking pictures and videos from a webcam
camE.x86_64 : Rewrite of the xawtv webcam app, which adds imlib2 support
=========================================================================== N/S Matched: dvd ===========================================================================

(exemplo de saída acima)

3 – Listando pacotes:
Para isso, utilizamos o parâmetro “list” ou relacionados. Inclusive utilizando caracteres coringa
Exemplos:

a) Listando todos os pacotes através de uma “glob expression”

# dnf list fedora-\*
Last metadata expiration check performed 0:24:00 ago on Thu Jul 14 09:14:48 2016.
Pacotes instalados
fedora-icon-theme.noarch 1.0.0-16.fc21 @koji-override-0
fedora-logos.x86_64 22.0.0-1.fc22 @koji-override-0
fedora-release.noarch 22-1 @koji-override-1
fedora-release-notes.noarch 22.02-1.fc22 @koji-override-0
fedora-repos.noarch 22-2 @updates

b) Listando todos os pacotes instalados e disponíveis

# dnf list all
Last metadata expiration check performed 0:27:36 ago on Thu Jul 14 09:14:48 2016.
Pacotes instalados
Cg.x86_64 3.1.0013-4.fc22 @rpmfusion-nonfree
GConf2.x86_64 3.2.6-11.fc22 @koji-override-0
GeoIP.x86_64 1.6.5-1.fc22 @fedora
GeoIP-GeoLite-data.noarch 2016.04-1.fc22 @updates
GraphicsMagick.x86_64 1.3.24-1.fc22 @updates
ImageMagick.x86_64 6.8.8.10-9.fc22 @fedora
ImageMagick-c++.x86_64 6.8.8.10-9.fc22 @fedora
ImageMagick-libs.x86_64 6.8.8.10-9.fc22 @fedora

(exemplo de saída acima)

c) Listando grupos de pacotes

# dnf group list
Last metadata expiration check performed 0:33:06 ago on Thu Jul 14 09:14:48 2016.
Available environment groups:
Instalação Mínima
Servidor Fedora
Estação de trabalho Fedora
Servidor Fedora Cloud
Ambiente de trabalho KDE Plasma
Ambiente de Trabalho Xfce
Ambiente de trabalho LXDE
Ambiente de trabalho LXQt

d) Listando os repositórios com o ID, nome e o número de pacotes que são providos por cada repositório

# dnf repolist
Last metadata expiration check performed 0:34:44 ago on Thu Jul 14 09:14:48 2016.
id do repo nome do repo status
adobe-linux-x86_64 Adobe Systems Incorporated 2
*fedora Fedora 22 - x86_64 44.762
fedora-steam negativo17 - Steam 21
google-chrome google-chrome 3
google-talkplugin google-talkplugin 1
insync insync repo 122
intellinuxgraphics Intel Graphics for Linux 27

e) Listando pacotes de um repositório específico

# dnf repository-packages marmotte list
Last metadata expiration check performed 0:37:06 ago on Thu Jul 14 09:14:48 2016.
Pacotes instalados
emulationstation.x86_64 2.0.1a-1.fc22 @marmotte
libretro-bnes.x86_64 1-2.86b2aafbda.fc21 @marmotte
libretro-genesis_plus_gx.x86_64 1.7.4-2.c61817699d.fc21 @marmotte
libretro-mame.x86_64 0.155-2.5074d3c409.fc21 @marmotte
libretro-mupen64plus.x86_64 2.0-2.114ddec34a.fc21 @marmotte
libretro-scummvm.x86_64 1.7.0-2.228def6913.fc21 @marmotte
libretro-snes9x.x86_64 1.53-2.85ceb4bf4a.fc21 @marmotte
libretro-snes9x_next.x86_64 1.52-2.d2aba49db2.fc21 @marmotte
retroarch.x86_64 1.0.0.3-0.1.8b41762639.fc21 @marmotte
retroarch-joypad-autoconfig.x86_64 0-0.2.34af70c2bb.fc21 @marmotte

4 – Exibindo informações sobre um pacote

# dnf info camorama
Last metadata expiration check performed 0:40:04 ago on Thu Jul 14 09:14:48 2016.
Pacotes disponíveis
Name : camorama
Arq. : x86_64
Epoch : 0
Versão : 0.19
Release : 18.fc22
Tam. : 178 k
Repo : updates
Summary : Gnome webcam viewer
URL : https://github.com/alessio/camorama
License : GPLv2+
Description : A simple Gnome webcam viewer, with the ability to apply some video effects.

5 – Instalando pacotes

a) Instalado um pacote ou mais pacotes individualmente

# dnf install yakuake
Last metadata expiration check performed 0:43:57 ago on Thu Jul 14 09:14:48 2016.
Dependencies resolved.
========================================================================================================================================================================
Package Arq. Versão Repo Tam.
========================================================================================================================================================================
Instalando:
attica x86_64 0.4.2-4.fc22 fedora 235 k
docbook-dtds noarch 1.0-63.fc21 fedora 376 k
docbook-style-xsl noarch 1.78.1-3.fc21 fedora 2.0 M
exiv2-libs x86_64 0.24-5.fc22 updates 981 k
herqq x86_64 1.0.0-8.fc22 fedora 358 k
kate4-part x86_64 4.14.3-14.fc22 updates 1.9 M
kde-apps-rpm-macros noarch 6:4.14.17-1.fc22 updates 11 k
kde-baseapps-common noarch 15.04.3-2.fc22 updates 27 k
kde-l10n noarch 14.12.3-10.fc22 updates 8.6 k
kdelibs x86_64 6:4.14.17-1.fc22 updates 12 M
kdelibs-common x86_64 6:4.14.17-1.fc22 updates 1.9 M
kdelibs-ktexteditor x86_64 6:4.14.17-1.fc22 updates 81 k
kdelibs-webkit x86_64 6:4.14.17-1.fc22 updates 64 k
konsole-part x86_64 4.14.3-10.fc22 updates 422 k
libiodbc x86_64 3.52.7-8.fc22 fedora 187 k
libkonq x86_64 15.04.3-2.fc22 updates 140 k
polkit-qt x86_64 0.112.0-3.fc22 fedora 77 k
qtsoap x86_64 2.7-9.fc22 fedora 80 k
redland-virtuoso x86_64 1.0.17-3.fc22 fedora 33 k
sgml-common noarch 0.6.3-42.fc22 fedora 59 k
shared-desktop-ontologies noarch 0.11.0-3.fc21 fedora 113 k
soprano x86_64 2.9.4-5.fc22 fedora 619 k
strigi-libs x86_64 0.7.8-7.fc22 fedora 464 k
yakuake x86_64 2.9.9-9.fc22 fedora 410 k

Resumo da transação
========================================================================================================================================================================
Instalar 24 Packages

Tamanho total do download: 22 M
Tamanho depois de instalado: 93 M
Correto? [s/N]:

b) Instalando grupos de pacotes:

# dnf group install "Aplicativos Médicos"

ou

# dnf group install medical

ou ainda

# dnf install @medical

6 – Removendo pacotes

a) Pacote individuais

# dnf remove soundconverter terminator

b) Grupos de pacotes

# dnf group remove "Aplicativos Médicos"

ou

# dnf group remove medical

ou ainda

# dnf remove @medical

Para ver mais opções e vê-las em ação, deixo abaixo um vídeo publicado em nosso canal no YouTube. Até o próximo!

Referências: https://docs.fedoraproject.org/en-US/Fedora/24/html/System_Administrators_Guide/ch-DNF.html