Ao tentar instalar ou atualizar pacotes no Arch Linux ou em distros derivadas como EndeavourOS, ArcoLinux, CachyOS ou XeroLinux, você pode se deparar com a seguinte mensagem de erro:

error: failed to init transaction (unable to lock database)


Esse erro acontece quando o gerenciador de pacotes pacman não consegue acessar a base de dados porque ela está bloqueada por algum motivo. Mas fique tranquilo — a solução é rápida e fácil!

❗ Causas do Erro

O erro pode ocorrer por alguns motivos:

  • 🔄 Outro processo usando o pacman: Quando uma instalação, atualização ou sincronização está em andamento, o pacman trava a base de dados. Se você tentar rodar outro comando ao mesmo tempo, verá esse erro.

  • 🧱 Arquivos de bloqueio não removidos: Após uma falha (como queda de energia, travamento ou interrupção manual), o arquivo /var/lib/pacman/db.lck pode ficar preso no sistema, impedindo novos comandos.

🛠️ Como Resolver o Problema

1️⃣ Verifique se há outro processo usando o pacman

Abra o terminal e digite:

ps aux | grep pacman

Se você encontrar algum processo pacman rodando que não deveria estar, pode finalizá-lo com:

sudo killall pacman

⚠️ Importante: só mate o processo se tiver certeza de que ele não está executando uma instalação legítima. Interromper pacotes no meio pode quebrar o sistema.

2️⃣ Remova manualmente o arquivo de bloqueio

Se não houver nenhum processo ativo e o erro continuar, o problema está no arquivo de bloqueio. Para resolver:

sudo rm /var/lib/pacman/db.lck

Esse comando remove o cadeado que impede o pacman de funcionar corretamente.

3️⃣ Tente novamente a operação

Depois disso, rode novamente o comando que estava tentando usar, por exemplo:

sudo pacman -Syu

Se tudo estiver certo, o erro não aparecerá mais e o pacman voltará a funcionar normalmente.

✅ Conclusão

O erro “unable to lock database” pode assustar, mas é simples de resolver. Na maioria dos casos, basta verificar se o pacman está em uso e, se necessário, remover o arquivo de bloqueio. Com isso, seu sistema Arch ou baseado em Arch volta a funcionar normalmente.