Introdução
Neste laboratório, você adquirirá experiência prática no gerenciamento de pacotes de software em sistemas Red Hat Enterprise Linux (RHEL) usando o DNF. Você começará compreendendo o comando subscription-manager para registro de suporte da Red Hat, mesmo em um ambiente simulado. Em seguida, explorará como recuperar e interpretar informações de pacotes RPM e dominará a instalação e remoção de pacotes de software usando o DNF.
Além disso, este laboratório o guiará pelo gerenciamento de repositórios de software do DNF, incluindo adição, habilitação e desabilitação deles. Por fim, você aprenderá como visualizar e entender o histórico de transações do DNF, obtendo uma visão geral abrangente das operações de gerenciamento de pacotes.
Nota: Este laboratório requer conectividade de rede para baixar pacotes e acessar repositórios. Ele está disponível apenas para usuários do LabEx Pro.
Registrar Seu Sistema para Suporte da Red Hat
Nesta etapa, você aprenderá como registrar seu sistema para receber suporte da Red Hat usando o comando subscription-manager. Embora uma assinatura completa da Red Hat não esteja disponível neste ambiente simulado, compreender o comando subscription-manager é fundamental para gerenciar softwares em sistemas Red Hat Enterprise Linux. Esse comando permite registrar seu sistema na Red Hat, vincular assinaturas e acessar a rede de entrega de conteúdo da Red Hat para pacotes de software e atualizações.
Primeiro, vamos tentar registrar o sistema usando um nome de usuário genérico (placeholder). Isso demonstrará o uso do comando, embora o registro real exija credenciais válidas da Red Hat.
sudo subscription-manager register --username labex --password labex 2>&1 | tee ~/project/subscription-register.txt
Este laboratório usa credenciais fictícias para que o comando possa ser executado de forma não interativa. O comando falhará na autenticação, o que é esperado neste ambiente, e a saída é salva em ~/project/subscription-register.txt para revisão.
Registering to: subscription.rhsm.redhat.com:443/subscription
Password:
Invalid username or password. To create a login, please visit https://www.redhat.com/wapps/ugc/register.html (HTTP error code 401: Unauthorized)
Finalmente, vamos ver quais repositórios estariam disponíveis através de assinaturas da Red Hat em um sistema registrado.
sudo subscription-manager repos --list 2>&1 | tee ~/project/subscription-repos.txt
Como o sistema não está registrado, você verá uma mensagem indicando que nenhum repositório suportado por assinatura está disponível.
This system has no repositories available through subscriptions.
Em seguida, vamos verificar o status atual da assinatura para este sistema. Esta é uma maneira prática de confirmar que o sistema ainda não está registrado antes de você trabalhar com o conteúdo de assinatura da Red Hat.
sudo subscription-manager status 2>&1 | tee ~/project/subscription-status.txt
Como o sistema não está registrado, o comando relatará Not registered (Não registrado) ou Unknown (Desconhecido), dependendo da versão do subscription-manager. Neste ambiente simulado, Unknown ainda indica que o sistema não possui um status de assinatura ativo após a falha na tentativa de registro.
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Unknown
System Purpose Status: Unknown
Este exercício demonstra o uso básico do subscription-manager para registro e verificações de status. Embora a funcionalidade completa seja limitada neste ambiente simulado, esses comandos são fundamentais para compreender o acesso a softwares em sistemas RHEL.
Explorar Informações de Pacotes RPM
Nesta etapa, você aprenderá a usar o comando rpm para inspecionar pacotes de software. O RPM (Red Hat Package Manager) é o principal sistema de gerenciamento de pacotes utilizado pelo Red Hat Enterprise Linux. Embora o dnf (que você explorará mais tarde) seja uma ferramenta de nível superior para gerenciar pacotes a partir de repositórios, o rpm permite consultar, verificar, instalar e desinstalar arquivos .rpm individuais.
Primeiro, vamos listar todos os pacotes RPM instalados em seu sistema. Isso pode gerar uma lista muito longa, então vamos redirecionar a saída para o head para ver apenas o início.
rpm -qa | head > ~/project/rpm-installed.txt
cat ~/project/rpm-installed.txt
Você verá uma lista de nomes de pacotes, versões e arquiteturas. Por exemplo:
libgcc-11.4.1-3.el9.x86_64
crypto-policies-20240202-1.git283706d.el9.noarch
tzdata-2024a-1.el9.noarch
subscription-manager-rhsm-certificates-20220623-1.el9.noarch
redhat-release-9.4-0.4.el9.x86_64
setup-2.13.7-10.el9.noarch
filesystem-3.16-2.el9.noarch
basesystem-11-13.el9.noarch
pcre2-syntax-10.40-5.el9.noarch
ncurses-base-6.2-10.20210508.el9.noarch
Em seguida, vamos descobrir qual pacote fornece um arquivo específico. Usaremos /etc/yum.repos.d como exemplo, que é um diretório contendo arquivos de configuração de repositório do DNF.
rpm -qf /etc/yum.repos.d
A saída mostrará o pacote ao qual este diretório pertence.
redhat-release-9.4-0.4.el9.x86_64
Agora, vamos obter informações detalhadas sobre o pacote que fornece o comando dnf.
DNF_PACKAGE=$(rpm -qf /usr/bin/dnf)
rpm -qi "$DNF_PACKAGE" > ~/project/dnf-package-info.txt
cat ~/project/dnf-package-info.txt
Esses comandos primeiro identificam qual RPM possui /usr/bin/dnf e, em seguida, exibem metadados detalhados do pacote, incluindo versão, liberação (release), arquitetura, licença e resumo.
Name : dnf
Version : 4.14.0
Release : 9.el9
Architecture: noarch
Install Date: Thu Jul 18 15:50:10 2024
Group : Unspecified
Size : 2425281
License : GPLv2+
Signature : RSA/SHA256, Fri Nov 10 10:14:09 2023, Key ID 199e2f91fd431d51
Source RPM : dnf-4.14.0-9.el9.src.rpm
Build Date : Thu Oct 26 05:20:14 2023
Build Host : x86-64-01.build.eng.rdu2.redhat.com
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor : Red Hat, Inc.
URL : https://github.com/rpm-software-management/dnf
Summary : Package manager
Description :
Utility that allows users to manage packages on their systems.
It supports RPMs, modules and comps groups & environments.
Você também pode listar todos os arquivos instalados por um pacote. Isso pode ser útil para entender o que um pacote adiciona ao seu sistema.
rpm -ql dnf | head -n 10
Isso mostrará os primeiros 10 arquivos instalados pelo pacote dnf.
/usr/bin/dnf
/usr/lib/systemd/system/dnf-makecache.service
/usr/lib/systemd/system/dnf-makecache.timer
/usr/share/bash-completion
/usr/share/bash-completion/completions
/usr/share/bash-completion/completions/dnf
/usr/share/locale/ar/LC_MESSAGES/dnf.mo
/usr/share/locale/bg/LC_MESSAGES/dnf.mo
/usr/share/locale/bn/LC_MESSAGES/dnf.mo
/usr/share/locale/bn_IN/LC_MESSAGES/dnf.mo
Para ver apenas os arquivos de configuração instalados por um pacote, use a opção -qc. Vamos verificar o pacote openssh-clients.
rpm -qc openssh-clients
Isso listará os arquivos de configuração relacionados aos clientes SSH.
/etc/ssh/ssh_config
/etc/ssh/ssh_config.d/50-redhat.conf
Por fim, para visualizar as informações de changelog (histórico de alterações) de um pacote, use --changelog. Isso pode fornecer insights sobre o histórico de atualizações e correções de um pacote. Vamos examinar o pacote audit.
rpm -q --changelog audit | head -n 5
Se o pacote não estiver instalado, você verá uma mensagem de erro:
package audit is not installed
Em vez disso, você pode tentar com um pacote instalado. Por exemplo, com o pacote setup:
rpm -q --changelog setup | head -n 5
Esses comandos rpm são ferramentas poderosas para entender os pacotes instalados em seu sistema e os arquivos que eles contêm.
Instalar e Remover Pacotes de Software com o DNF
Nesta etapa, você aprenderá a usar o dnf (Dandified YUM) para gerenciar pacotes de software. O dnf é o gerenciador de pacotes padrão no Red Hat Enterprise Linux 9 e é utilizado para instalar, atualizar e remover pacotes de software, além de gerenciar repositórios de software. Ele lida automaticamente com dependências, tornando o gerenciamento de software muito mais fácil do que apenas com o rpm.
Primeiro, vamos listar todos os pacotes disponíveis e instalados que contêm "http" em seu nome. Isso lhe dará uma ideia de quais pacotes estão relacionados a serviços HTTP.
sudo dnf list 'http*'
Você verá uma lista de pacotes, indicando se eles estão instalados ou disponíveis para instalação.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
http-parser.i686 2.9.4-6.el9 rhel-9-for-x86_64-appstream-rpms
http-parser.x86_64 2.9.4-6.el9 rhel-9-for-x86_64-appstream-rpms
httpcomponents-client.noarch 4.5.13-2.el9 rhel-9-for-x86_64-appstream-rpms
httpcomponents-core.noarch 4.4.13-6.el9 rhel-9-for-x86_64-appstream-rpms
httpd.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-devel.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-filesystem.noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-manual.noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
httpd-tools.x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
Agora, vamos procurar por pacotes que contenham "web server" em seu nome, resumo ou descrição. A opção search all é útil para uma busca mais ampla.
sudo dnf search all 'web server'
Este comando retornará uma lista de pacotes que correspondem aos termos de busca.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
================== Summary & Description Matched: web server ===================
nginx.x86_64 : A high performance web server and reverse proxy server
pcp-pmda-weblog.x86_64 : Performance Co-Pilot (PCP) metrics from web server logs
========================= Summary Matched: web server ==========================
libcurl.x86_64 : A library for getting files from web servers
libcurl.i686 : A library for getting files from web servers
======================= Description Matched: web server ========================
freeradius.x86_64 : High-performance and highly configurable free RADIUS server
git-instaweb.noarch : Repository browser in gitweb
http-parser.i686 : HTTP request/response parser for C
http-parser.x86_64 : HTTP request/response parser for C
httpd.x86_64 : Apache HTTP Server
mod_auth_openidc.x86_64 : OpenID Connect auth module for Apache HTTP Server
mod_jk.x86_64 : Tomcat mod_jk connector for Apache
mod_security.x86_64 : Security module for the Apache HTTP Server
varnish.i686 : High-performance HTTP accelerator
varnish.x86_64 : High-performance HTTP accelerator
Vamos obter informações detalhadas sobre o pacote httpd, que é o Servidor HTTP Apache.
sudo dnf info httpd
Isso exibirá detalhes abrangentes sobre o pacote, incluindo seu tamanho, licença e descrição.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Available Packages
Name : httpd
Version : 2.4.51
Release : 5.el9
Architecture : x86_64
Size : 1.5 M
Source : httpd-2.4.51-5.el9.src.rpm
Repository : rhel-9-for-x86_64-appstream-rpms
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Agora, vamos instalar o pacote httpd. Você precisará de privilégios de sudo para esta operação.
sudo dnf install httpd -y | tee ~/project/httpd-install.txt
A flag -y responde automaticamente "yes" (sim) a quaisquer prompts, o que é útil para scripts, mas deve ser usada com cautela em ambientes de produção.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
1.5 M
Installing dependencies:
apr x86_64 1.7.0-11.el9 rhel-9-for-x86_64-appstream-rpms
126 k
apr-util x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
106 k
apr-util-bdb x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
13 k
apr-util-openssl x86_64 1.6.1-20.el9 rhel-9-for-x86_64-appstream-rpms
15 k
httpd-filesystem noarch 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
14 k
httpd-tools x86_64 2.4.51-5.el9 rhel-9-for-x86_64-appstream-rpms
100 k
mailcap noarch 2.1.49-5.el9 rhel-9-for-x86_64-baseos-rpms
36 k
mod_http2 x86_64 1.15.7-5.el9 rhel-9-for-x86_64-appstream-rpms
150 k
redhat-logos-httpd noarch 90.4-1.el9 rhel-9-for-x86_64-appstream-rpms
20 k
Transaction Summary
================================================================================
Install 10 Packages
Total download size: 2.1 M
Installed size: 6.9 M
Downloading Packages:
... (downloading package details omitted) ...
Running transaction
... (installation progress omitted) ...
Installed:
apr-1.7.0-11.el9.x86_64
apr-util-1.6.1-20.el9.x86_64
apr-util-bdb-1.6.1-20.el9.x86_64
apr-util-openssl-1.6.1-20.el9.x86_64
httpd-2.4.51-5.el9.x86_64
httpd-filesystem-2.4.51-5.el9.noarch
httpd-tools-2.4.51-5.el9.x86_64
mailcap-2.1.49-5.el9.noarch
mod_http2-1.15.7-5.el9.x86_64
redhat-logos-httpd-90.4-1.el9.noarch
Complete!
Você pode verificar se o httpd está instalado consultando o rpm:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Agora, vamos remover o pacote httpd.
sudo dnf remove httpd -y | tee ~/project/httpd-remove.txt
Isso removerá o pacote httpd e quaisquer dependências que não sejam mais necessárias para outros pacotes instalados.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Removing:
httpd x86_64 2.4.51-5.el9 @appstream 4.7 M
Removing dependent packages:
apr-util-bdb x86_64 1.6.1-20.el9 @appstream 13 k
apr-util-openssl x86_64 1.6.1-20.el9 @appstream 15 k
httpd-filesystem noarch 2.4.51-5.el9 @appstream 14 k
mod_http2 x86_64 1.15.7-5.el9 @appstream 150 k
redhat-logos-httpd noarch 90.4-1.el9 @appstream 20 k
Transaction Summary
================================================================================
Remove 6 Packages
Freed space: 4.9 M
... (transaction progress omitted) ...
Removed:
apr-util-bdb-1.6.1-20.el9.x86_64
apr-util-openssl-1.6.1-20.el9.x86_64
httpd-2.4.51-5.el9.x86_64
httpd-filesystem-2.4.51-5.el9.noarch
mod_http2-1.15.7-5.el9.x86_64
redhat-logos-httpd-90.4-1.el9.noarch
Complete!
Você pode confirmar sua remoção:
rpm -q httpd
package httpd is not installed
Isto demonstra os comandos básicos do dnf para instalar e remover pacotes de software.
Gerenciar Repositórios de Software do DNF
Nesta etapa, você aprenderá a gerenciar repositórios de software do DNF. Repositórios são locais onde os pacotes de software são armazenados e de onde o dnf os recupera. Compreender como listar, habilitar, desabilitar e adicionar repositórios é crucial para controlar qual software está disponível em seu sistema.
Primeiro, vamos listar todos os repositórios do DNF configurados e seus status (habilitados ou desabilitados).
sudo dnf repolist all > ~/project/dnf-repolist.txt
cat ~/project/dnf-repolist.txt
Você verá uma lista de IDs de repositórios, nomes e seus status atuais. Os nomes exatos dos repositórios dependem da imagem utilizada para o laboratório.
repo id repo name status
rhui-rhel-10-for-x86_64-appstream-rhui-rpms Red Hat Enterprise enabled
rhui-rhel-10-for-x86_64-baseos-rhui-rpms Red Hat Enterprise enabled
rhui-rhel-10-for-x86_64-appstream-rhui-debug-rpms Red Hat Enterprise disabled
O comando dnf config-manager é uma ferramenta poderosa para gerenciar configurações de repositório. Você pode usá-lo para habilitar ou desabilitar repositórios. Por exemplo, vamos tentar habilitar um repositório de depuração (debug) hipotético. Embora este repositório específico possa não existir ou não estar acessível neste ambiente de laboratório, o comando demonstra a sintaxe.
sudo dnf config-manager --enable rhel-9-server-debug-rpms 2>&1 | tee ~/project/dnf-enable-debug.txt
Você verá mensagens sobre o gerenciamento de assinaturas e um erro indicando que o repositório não foi encontrado, o que é esperado neste ambiente.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-server-debug-rpms.
Agora, vamos tentar desabilitar um repositório. Usaremos rhel-9-for-x86_64-appstream-rpms como exemplo. Nota: Este nome de repositório específico não existe na imagem atual do laboratório, mas o comando demonstra a sintaxe.
sudo dnf config-manager --disable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-disable-appstream.txt
Você verá mensagens de gerenciamento de assinatura e um erro indicando que o repositório não existe neste ambiente.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.
Vamos verificar se este nome de repositório não existe no sistema atual:
sudo dnf repolist all | grep rhel-9-for-x86_64-appstream-rpms
Como esperado, não haverá saída, uma vez que este repositório não existe na imagem atual do laboratório.
(no output)
Vamos tentar o mesmo comando de habilitação para confirmar que o repositório não existe:
sudo dnf config-manager --enable rhel-9-for-x86_64-appstream-rpms 2>&1 | tee ~/project/dnf-enable-appstream.txt
Novamente, você verá a mesma mensagem de erro:
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Error: No matching repo to modify: rhel-9-for-x86_64-appstream-rpms.
O comando dnf config-manager --add-repo também pode ser usado para adicionar novos repositórios especificando uma URL. Para fins de demonstração, tentaremos adicionar a URL de um repositório EPEL (Extra Packages for Enterprise Linux) comum. Embora isso possa não configurar totalmente o repositório (pois geralmente requer uma chave GPG e um arquivo .repo específico), mostra a capacidade do comando.
sudo dnf config-manager --add-repo="https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/" 2>&1 | tee ~/project/dnf-add-repo.txt
Você verá uma saída indicando que um novo arquivo .repo foi criado.
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Adding repo from: https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
Você pode inspecionar o arquivo .repo recém-criado em /etc/yum.repos.d/. O nome do arquivo será derivado da URL.
ls /etc/yum.repos.d/
Você deverá ver um arquivo como dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo juntamente com os arquivos de repositório existentes.
dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo redhat.repo ubi.repo
Por fim, vamos remover o arquivo de configuração do repositório que acabamos de adicionar para fazer a limpeza.
sudo rm /etc/yum.repos.d/dl.fedoraproject.org_pub_epel_9_Everything_x86_64_.repo
Esta etapa mostrou como listar, habilitar, desabilitar e adicionar repositórios do DNF, que são habilidades essenciais para gerenciar fontes de software no RHEL.
Visualizar o Histórico de Transações do DNF
Nesta etapa, você aprenderá a visualizar o histórico de transações das operações do DNF. O dnf mantém um registro detalhado de todas as instalações, remoções e atualizações de pacotes. Este histórico é inestimável para solução de problemas (troubleshooting), auditoria e até mesmo para reverter alterações, se necessário.
Primeiro, vamos visualizar o resumo de todas as transações do DNF que ocorreram em seu sistema.
sudo dnf history | tee ~/project/dnf-history.txt
Você verá uma tabela listando cada transação com um ID, a linha de comando utilizada, a data e hora, a(s) ação(ões) realizada(s) e o número de pacotes alterados.
ID | Command line | Date and time | Action(s) | Altered
--------------------------------------------------------------------------------
3 | install httpd | 2024-04-22 08:00 | Install | 10
2 | remove httpd | 2024-04-22 08:01 | Remove | 6
1 | | 2024-04-22 07:50 | Install | 767 EE
A coluna ID é particularmente importante, pois permite que você se refira a transações específicas. Neste laboratório, você pode capturar o ID da transação de remoção do httpd a partir da saída do histórico e reutilizá-lo nos próximos comandos.
HTTPD_REMOVE_ID=$(sudo dnf history | awk '/remove httpd/ && $1 ~ /^[0-9]+$/ {print $1; exit}')
echo "$HTTPD_REMOVE_ID"
sudo dnf history info "$HTTPD_REMOVE_ID" | tee ~/project/dnf-history-info.txt
Este comando fornece um detalhamento abrangente da transação selecionada, incluindo os pacotes que foram removidos, suas versões e o motivo da ação.
Transaction ID : 2
Begin time : Mon Apr 22 08:01:00 2024
Begin rpmdb : 777:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
End time : Mon Apr 22 08:01:05 2024 (5 seconds)
End rpmdb : 771:a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f3
User : labex <labex>
Return Code : Success
Command Line : dnf remove httpd -y
Packages Altered:
Removed apr-util-bdb-1.6.1-20.el9.x86_64
Removed apr-util-openssl-1.6.1-20.el9.x86_64
Removed httpd-2.4.51-5.el9.x86_64
Removed httpd-filesystem-2.4.51-5.el9.noarch
Removed mod_http2-1.15.7-5.el9.x86_64
Removed redhat-logos-httpd-90.4-1.el9.noarch
Um dos recursos mais poderosos do histórico do DNF é a capacidade de desfazer (undo) ou refazer (redo) transações. Vamos desfazer a transação de remoção do httpd reutilizando o valor HTTPD_REMOVE_ID que você acabou de capturar.
sudo dnf history undo "$HTTPD_REMOVE_ID" -y | tee ~/project/dnf-history-undo.txt
Este comando reinstalará o pacote httpd e suas dependências que foram removidas naquela transação específica.
Last metadata expiration check: 0:00:00 ago on Mon Apr 22 08:00:00 2024.
Undoing transaction 2, from Mon Apr 22 08:01:00 2024
Removed apr-util-bdb-1.6.1-20.el9.x86_64
Removed apr-util-openssl-1.6.1-20.el9.x86_64
Removed httpd-2.4.51-5.el9.x86_64
Removed httpd-filesystem-2.4.51-5.el9.noarch
Removed mod_http2-1.15.7-5.el9.x86_64
Removed redhat-logos-httpd-90.4-1.el9.noarch
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
httpd x86_64 2.4.51-5.el9 ubi-9-appstream-rpms 1.5 M
Installing dependencies:
apr x86_64 1.7.0-11.el9 ubi-9-appstream-rpms 126 k
apr-util x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 106 k
apr-util-bdb x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 13 k
apr-util-openssl x86_64 1.6.1-20.el9 ubi-9-appstream-rpms 15 k
httpd-filesystem noarch 2.4.51-5.el9 ubi-9-appstream-rpms 14 k
httpd-tools x86_64 2.4.51-5.el9 ubi-9-appstream-rpms 100 k
mailcap noarch 2.1.49-5.el9 ubi-9-baseos-rpms 36 k
mod_http2 x86_64 1.15.7-5.el9 ubi-9-appstream-rpms 150 k
redhat-logos-httpd noarch 90.4-1.el9 ubi-9-appstream-rpms 20 k
Transaction Summary
================================================================================
Install 10 Packages
Total download size: 2.1 M
Installed size: 6.9 M
... (installation progress omitted) ...
Complete!
Você pode verificar se o httpd está instalado novamente:
rpm -q httpd
httpd-2.4.51-5.el9.x86_64
Por fim, vamos remover o httpd novamente para deixar o sistema em um estado limpo para futuros laboratórios.
sudo dnf remove httpd -y | tee ~/project/dnf-history-final-remove.txt
... (output omitted) ...
Complete!
Esta etapa demonstrou como usar o dnf history para visualizar, inspecionar e até mesmo reverter transações do DNF, fornecendo recursos poderosos para o gerenciamento do sistema.
Resumo
Neste laboratório, aprendemos habilidades essenciais para gerenciar pacotes de software no Red Hat Enterprise Linux usando o DNF. Começamos compreendendo o comando subscription-manager, crucial para registrar sistemas na Red Hat e acessar sua rede de entrega de conteúdo, mesmo que o registro completo não fosse possível no ambiente simulado.
Em seguida, exploramos como consultar informações de pacotes RPM, instalar e remover softwares usando o DNF, gerenciar repositórios de software do DNF e visualizar o histórico de transações do DNF. Essas etapas forneceram uma visão geral abrangente das capacidades do DNF para um gerenciamento eficiente de software.



