Rocky Linux / Consultar pacotes instalados com DNF e RPM
Para listar os pacotes instalados no Rocky Linux, use dnf list --installed ou rpm -qa. O DNF organiza informações de pacotes e repositórios; o RPM consulta diretamente o banco local de pacotes e identifica qual pacote fornece um arquivo.
Os exemplos de DNF seguem a interface DNF 4. Confira a implementação com dnf --version e a ajuda local antes de adaptar comandos a outra versão. As consultas básicas normalmente dispensam privilégios administrativos; a verificação de arquivos protegidos abaixo usa sudo.
Listar e filtrar os pacotes instalados
DNF é o gerenciador de pacotes da distribuição. A lista instalada apresenta nome e arquitetura, versão e a informação de origem disponível ao gerenciador. Não confunda essa indicação com uma comprovação independente da procedência de cada arquivo.
dnf list --installed
RPM significa RPM Package Manager. Para consultar seu banco local e ordenar as entradas, use:
rpm -qa | sort
-q seleciona a consulta e -a inclui todos os pacotes. A saída padrão contém nome, versão, release e arquitetura, não apenas o nome. Para uma lista só de nomes, use rpm -qa --qf '%{NAME}\n' | sort; versões ou arquiteturas diferentes do mesmo nome podem gerar linhas repetidas.
Use less para percorrer uma lista longa e pressione q para sair. O segundo comando procura a expressão postgresql nas linhas, sem distinguir maiúsculas de minúsculas.
rpm -qa | sort | less
rpm -qa | grep -i postgresql
Uma busca sem correspondências não prova que uma função esteja ausente: o executável pode pertencer a um pacote com outro nome. Essa consulta também não inventaria aplicativos instalados fora do RPM, como ambientes Python, Flatpaks ou programas compilados manualmente.
Consultar um pacote ou identificar o pacote de um arquivo
Quando o nome do pacote é conhecido
Substitua curl pelo pacote desejado. Se estiver instalado, rpm -q mostra sua identificação; se não estiver, informa a ausência e retorna um código de saída diferente de zero. A consulta DNF acrescenta detalhes descritivos do pacote instalado.
rpm -q curl
dnf info --installed curl
Estar instalado não significa que um serviço esteja ativo, configurado ou escutando na rede. Essa confirmação exige consultar o serviço e a configuração correspondentes.
Quando você conhece o comando ou o caminho
rpm -qf consulta o pacote ao qual um caminho pertence. O exemplo com Python resolve um link simbólico antes de consultar o arquivo de destino:
rpm -qf /usr/bin/curl
rpm -qf "$(readlink -f "$(command -v python3)")"
Confira primeiro se command -v python3 retorna um caminho e se readlink -f consegue resolvê-lo. Um alias, uma função de shell, um ambiente virtual ou um arquivo instalado manualmente pode exigir outra investigação. A ausência de um pacote proprietário no RPM não significa, sozinha, que o arquivo seja inválido.
Para pesquisar qual pacote fornece um arquivo nos repositórios conhecidos, inclusive quando ele ainda não está instalado, use dnf provides:
dnf provides '*/semanage'
As aspas preservam o padrão */semanage para o DNF, impedindo que o shell o expanda antes da consulta. O resultado depende dos repositórios habilitados e de seus metadados; uma falha de acesso ao repositório é diferente de uma pesquisa concluída sem correspondências. Essa busca não instala o pacote encontrado.
Exibir versão, arquitetura e instalação recente
O formato de consulta do RPM permite escolher campos. A linha seguinte separa nome, epoch:versão-release e arquitetura por tabulações. Epoch é um componente numérico usado na comparação de versões; o release identifica a revisão do pacote.
rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort
Os marcadores entre %{…} são substituídos pelos dados de cada pacote. As sequências \t e \n representam tabulação e quebra de linha no formato, conforme o manual do formato de consulta RPM.
Para ver até 30 entradas ordenadas pelo horário de instalação, das mais recentes para as mais antigas:
rpm -qa --last | head -n 30
O horário é o registrado para a versão atualmente instalada; não deve ser interpretado automaticamente como a primeira instalação histórica do programa. Para relacionar uma atualização ou remoção a uma operação do gerenciador, consulte o histórico do DNF.
| Objetivo | Comando |
|---|---|
| Listar pacotes instalados | dnf list --installed ou rpm -qa |
| Consultar um pacote | rpm -q nome-do-pacote |
| Ver detalhes | dnf info --installed nome-do-pacote |
| Identificar o pacote de um arquivo | rpm -qf /caminho/do/arquivo |
| Pesquisar quem fornece um arquivo | dnf provides '*/nome-do-arquivo' |
| Ordenar por instalação recente | rpm -qa --last |
Na tabela, substitua nome-do-pacote, /caminho/do/arquivo e nome-do-arquivo pelos valores reais.
Consultar motivos de instalação e histórico do DNF
Pacotes classificados como instalados pelo usuário
A classificação userinstalled ajuda a distinguir pacotes mantidos explicitamente daqueles presentes apenas como dependências. Ela também pode incluir instalações por grupos ou perfis de módulos e pacotes instalados fora do DNF, conforme a referência oficial de comandos DNF.
dnf history userinstalled
Portanto, o resultado não é uma lista exata de comandos executados manualmente por uma pessoa. Migrações ou alterações nos motivos de instalação também afetam sua interpretação. Antes de remover qualquer pacote, confira sua função, os serviços e as dependências; não transforme a lista em uma ordem de exclusão automática.
Histórico de transações
Consulte primeiro a lista de operações. Depois substitua transaction_ID pelo número real da transação que deseja examinar; esse texto é um marcador, não um ID pronto para execução.
dnf history
dnf history info transaction_ID
Leia a operação, o resultado e os pacotes alterados para relacionar o evento à manutenção do servidor. O histórico depende dos registros disponíveis e não constitui uma auditoria completa de toda alteração feita fora do DNF. Os subcomandos de consulta history e history info não desfazem transações.
Verificar arquivos instalados e configurações
rpm -V compara arquivos com os metadados registrados no banco RPM, incluindo tamanho, resumo de conteúdo, permissões e proprietário. Para verificar o pacote do servidor OpenSSH:
sudo rpm -V openssh-server
Se a consulta terminar com sucesso e sem mensagens, nenhuma divergência foi apontada nos itens verificados. Um erro, um arquivo ilegível ou a ausência do pacote exigem análise; o silêncio não é uma certificação geral de segurança. A documentação do RPM explica os indicadores: por exemplo, S para tamanho, 5 para resumo do conteúdo e M para modo ou permissões; ? indica um teste que não pôde ser realizado.
Configurações em /etc podem aparecer como diferentes após uma alteração administrativa legítima. Compare o arquivo, o registro de mudança e o backup antes de restaurar algo. A verificação pode executar um %verifyscript definido pelo pacote; quando a intenção for impedir esse script, acrescente --noscripts. Verificar não é uma instrução para reinstalar o pacote nem apagar suas configurações.
Guardar um inventário em arquivo
Salvar nome, versão e arquitetura permite comparar o inventário entre duas datas ou dois servidores. Execute em um diretório no qual você possa gravar:
rpm -qa --qf '%{NAME}\t%{EPOCHNUM}:%{VERSION}-%{RELEASE}\t%{ARCH}\n' | sort > installed-packages.tsv
A saída é um arquivo TSV, com colunas separadas por tabulação. Abra-o com less installed-packages.tsv para conferir as três colunas. O operador > substitui um arquivo existente com esse nome; escolha outro nome antes da execução se precisar conservar um inventário anterior.
Esse inventário registra os pacotes presentes, mas não contém dados das aplicações, configurações nem todos os detalhes necessários para reconstruir o servidor. Diferenças de versão principal do Rocky Linux, repositórios e fluxos de módulos, quando aplicáveis, podem impedir a obtenção das mesmas versões. A recuperação precisa de backups e de um procedimento próprio, previamente conferido.
Resolver diferenças e falhas de consulta
- Comando ou subcomando inexistente: confira a versão e
dnf help. Algumas funções dependem de plugins; identifique o componente necessário antes de instalar algo. - Nome inesperado: o nome do executável pode diferir do nome do pacote. Pesquise o caminho com
rpm -qfoudnf provides. - Listas diferentes: confirme que ambas as consultas usam o mesmo sistema ou contêiner. Filtros de exclusão do DNF podem afetar a lista; no DNF 4,
dnf --disableexcludes=all list --installedpermite comparar sem esses filtros. O RPM consulta o banco local, enquanto o DNF também interpreta suas configurações e metadados. - Erro no banco ou bloqueio: verifique se outra operação de pacotes está em andamento. Não apague o banco ou os arquivos de bloqueio para forçar a consulta; registre a mensagem e investigue antes de reparar o ambiente.




