Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#rpm
#rpm -qf
#/etc/exports
#package-query
Medium

Qual comando RPM retornará o nome do pacote que forneceu o arquivo /etc/exports?

A

rpm -F /etc/exports

B

rpm -qf /etc/exports

Correct
C

rpm -Kl /etc/exports

D

rpm -qp /etc/exports

E

rpm -qi /etc/exports

Official Explanation / Community Explanations

Resumo

A pergunta pede qual comando RPM identifica o pacote que forneceu um arquivo específico, /etc/exports. O RPM (Red Hat Package Manager) mantém um banco de dados dos pacotes instalados e seus arquivos. A opção -qf consulta o banco de dados para descobrir qual pacote forneceu um determinado arquivo. Esta é uma tarefa comum para administradores de sistema ao solucionar problemas ou auditar a propriedade de pacotes.

Como funciona

O RPM armazena metadados sobre pacotes instalados em um banco de dados local, geralmente em /var/lib/rpm/. Esse banco de dados inclui uma lista de todos os arquivos instalados por cada pacote, junto com checksums, permissões e timestamps. Quando você executa rpm -qf /caminho/para/arquivo, o RPM pesquisa no banco de dados o pacote que instalou aquele caminho de arquivo exato. Ele usa o caminho absoluto do arquivo para corresponder à lista de arquivos de cada pacote. A consulta retorna o nome do pacote (e versão) se encontrado, ou uma mensagem de erro se o arquivo não pertencer a nenhum pacote instalado.

Por que a resposta correta está certa

A opção B (rpm -qf /etc/exports) está correta. A flag -q significa consulta (query), e -f (ou --file) especifica que o argumento é um caminho de arquivo. Juntos, -qf instrui o RPM a consultar o pacote que possui o arquivo fornecido. Executar este comando produzirá algo como nfs-utils-1.3.3-12.el7.x86_64 (dependendo do sistema), indicando que o arquivo /etc/exports foi instalado pelo pacote nfs-utils.

Por que as outras opções estão incorretas

  • A (rpm -F /etc/exports): A opção -F é usada para atualizar pacotes (freshen) — atualiza apenas se uma versão mais antiga estiver instalada. Ela não consulta o banco de dados; espera arquivos de pacote como argumentos, não um caminho de arquivo. Isso falharia ou não faria nada.
  • C (rpm -Kl /etc/exports): A opção -K é para verificar assinaturas (ex.: GPG) de um arquivo de pacote. -l é para listar arquivos em um pacote. Combinados, -Kl é inválido; -K espera um arquivo de pacote, não um caminho de arquivo do sistema. Isso produziria um erro.
  • D (rpm -qp /etc/exports): -q é consulta, -p indica consultar um arquivo de pacote não instalado (um arquivo .rpm). O argumento deve ser um arquivo de pacote, não um arquivo do sistema. Isso falharia porque /etc/exports não é um arquivo de pacote.
  • E (rpm -qi /etc/exports): -q é consulta, -i é para informações do pacote (nome, versão, descrição, etc.). Isso espera um nome de pacote como argumento, não um caminho de arquivo. Executar isso tentaria consultar um pacote chamado /etc/exports, que não existe, resultando em erro.