error: rpmdb: BDB0113 Thread/process

error: rpmdb: BDB0113 Thread/process

Este erro error: rpmdb: BDB0113 Thread/process ocorre quando é executado dnf ou yum e indica que o banco de dados do seu gerenciador de pacotes RPM está bloqueado ou corrompido.

Isso geralmente acontece quando:

  • um processo de gerenciamento de pacotes (como yum, dnf ou o próprio rpm) é interrompido de forma inesperada — por exemplo, se o sistema travou, o processo foi finalizado à força (kill) ou houve uma queda de energia.
  • falta de espaço em disco.
  • outros..

Quando isso ocorre, arquivos de “lock” (travamento) podem ser deixados para trás, impedindo que qualquer outro processo de pacotes acesse o banco de dados.

Como Resolver (Passo a Passo)

Siga estes passos com atenção. Você precisará de permissões de superusuário (root) para executar os comandos. Use sudo antes de cada comando, se necessário.

Passo 1: Verifique se não há processos do YUM/DNF em execução

Antes de apagar qualquer arquivo, certifique-se de que nenhum gerenciador de pacotes esteja realmente rodando em segundo plano.

Se este comando retornar algo além do próprio comando grep, significa que um processo está ativo. Espere ele terminar ou, se tiver certeza de que está travado, finalize-o com kill <ID_DO_PROCESSO>. Se o comando não retornar nada, você pode prosseguir.

Passo 2: Remova os arquivos de lock do banco de dados

Os arquivos de lock são os causadores do bloqueio. Eles geralmente começam com __db no diretório do RPM.

Execute o seguinte comando como root:

O que este comando faz:

  • rm -f: Remove (rm) forçadamente (-f) os arquivos especificados, sem pedir confirmação.
  • /var/lib/rpm/__db.*: O caminho para os arquivos de lock do banco de dados RPM. O * garante que todos os arquivos que começam com __db. sejam removidos.

Passo 3: Reconstrua o banco de dados do RPM

Depois de remover os arquivos de lock, o banco de dados pode estar em um estado inconsistente. O próximo passo é reconstruí-lo para corrigir quaisquer problemas.

Execute o seguinte comando como root:

O que este comando faz:

  • rpm --rebuilddb: Lê os cabeçalhos de todos os pacotes que você tem instalados e cria, do zero, um novo banco de dados limpo e funcional. Este processo é seguro e não remove nenhum pacote instalado.

Passo 4: Limpe o cache do gerenciador de pacotes (Recomendado)

Para garantir que tudo funcione corretamente, é uma boa prática limpar o cache do seu gerenciador de pacotes (yum ou dnf).

Se você usa um sistema baseado em CentOS/RHEL 7 ou mais antigo (que usa yum):

Se você usa um sistema baseado em Fedora, CentOS/RHEL 8 ou mais novo (que usa dnf):

Resumo

Em 99% dos casos, a sequência de comandos abaixo, executada como root, resolverá o problema:

Após executar esses passos, tente usar o yum, dnf ou rpm novamente. O erro deverá ter desaparecido.