Como corrigir pacote quebrado no Ubuntu e Linux Mint?
Correção de pacote quebrado no Ubuntu e Linux Mint: desinstale, configure, reinstale e libere espaço do disco
É comum encontrar pacotes quebrados no Linux e atrapalhar a instalação de um aplicativo pela falta daqueles. Alguns usuários leigos recorrem à formatação para deixar o sistema operacional novamente com padrão de fábrica.
Terminal do Linux Mint |
Não somente rupturas no software, incompatibilidade de versões entre pacote e sistema operacional podem acontecer. Neste segundo caso, a solução é conferir a lista de compatibilidade no site da desenvolvedora. Contudo, este texto é solucionar os pacotes quebrados.
Para facilitar o entendimento a palavra Linux representará o Linux Mint e o Ubuntu de modo a evitar redundâncias.
E o que é um pacote no Linux?
Podemos dizer que é um programa compilado e pronto para uso. Dentro do Linux, um pacote pode ser qualquer programa pronto para ser executado, mas pode ter scrpits que são roteiros de instrução para uma aplicação rodar e documentações, por exemplo.
Deste modo, o pacote é um programão cheio de programas complementares prontos para ajudar o programa principal a executar suas funções. Isso facilita a vida dos usuários.
No Windows não é diferente. Para navegar na internet com algum navegador como o Chrome, Firefox ou Edge também é necessário programas secundários como .NET Framework, DirectX e Java. Há mais de 10 anos atrás, instalava-se o Adobe Flash Player para assistir vídeos no Youtube.
A maioria dos usuários do Windows não percebem a necessidade desses programas complementares porque o técnico faz instalação após a formatação. E, geralmente, quem instala o Linux é o próprio usuário, por isso os iniciantes enfrentam mais dificuldades e julgam erroneamente ser mais complexo.
Outro exemplo no do Linux é a instalação do LAMP. O PHP é mais do que enviar informações por HTML, a edição e manipulação de imagens com a linguagem é necessário instalar a biblioteca PHP-GD.
Se ainda não entendeu, pense assim. No restaurante se vai para almoçar. É um pacote. A marmita tem arroz, feijão e carne. É o programa principal. A salada ou a carne extra são extras e entram como programas complementares.
Entenda os comandos
Depois de entender os pacotes e sua relação com os programas principais e complementares, agora é hora de entrar nos comandos: a parte mais legal do Linux.
Os comandos são códigos e digitados pelo usuário no terminal para solicitar ao sistema operacional a executação de uma ação. O terminal é uma tela preta na imagem do começo do texto e parecida com o Prompt do Windows.
Vamos usar o exemplo do restaurante. Veja abaixo:
Usuário = cliente
Comandos já existentes = cardápio
Terminal = pedido feito para o garçom
Sistema operacional = cozinha
Execução da ação = entrega da marmita
Agora bora para o terminal. Aperte tudo junto na área de trabalho: Ctrl + Alt + T. Surgirá a famigerada tela preta. Se já estiver com o terminal aberto, retorne para o início do diretório com o comando abaixo:
cd ~
Lembre-se que após cada comando digitado, é necessário digitar Enter e ter acesso à internet.
O ~ é para retornar no começo e cd vem de Change Directory: mudar de diretório. O cd pode ser usado para acessar outras pastas.
Diretório são as localizações das pastas. No Windows, o diretório principal é o famoso System32 que fica em C:\Windows\System32. No Linux, por exemplo, a área de trabalho pode ficar em /home/nome_do_usuario/Desktop.
Para resolver o problema de pacote quebrado, desinstale assim:
sudo apt-get remove --purge NOME_DO_PACOTE
O termo sudo vem de Super User Do e significa executar como super usuário. Ele libera o usuário a ter privilégios máximos dentro do Linux. É o mesmo no Windows com as instalações como Administrador. Se logado no sudo, pode-se instalar, modificar, mover e deletar qualquer arquivo, pasta ou programa e também alterar senhas. Algumas atualizações são possíveis apenas como super usuário. O sudo precisa da senha de acesso.
Já apt-get vem de advanced packing tool e o get, por não encontrar nenhuma informação oficial, é suposto que por ser uma palavra inglesa a tradução é obter. O apt-get serve para instalar, atualizar e remover pacotes. Você verá este comando mais vezes abaixo.
Se algum leitor souber o que é realmente o get do apt-get, por favor, deixe nos comentários que este texto será corrigido caso seja um equívoco o exposto acima.
O remove é para remover o pacote e o --purge, além de desinstalar o aplicativo, induz o sistema a remover os arquivos de configuração do Linux. Em nome_do_pacote coloque o nome do pacote a ser removido.
Se for um pacote que está instalado com diferentes versões, você pode incluir o número da versão seguido pelo ponto final e asterisco. Veja o exemplo para remover as versões 7.3 e 7.4 do PHP mutuamente:
sudo apt-get remove --purge php7.*
Pode sobrar algumas pastas ou arquivos do pacote que ficaram fora do diretório próprio ou podem ter sido copiadas para outros locais em uma tentativa do usuário de resolver o problema. Se isso aconteceu, use o comando abaixo para identificar no sistema onde elas estão.
whereis NOME_DO_PACOTE
O whereis mostrará arquivos e pastas do pacote ou que tenham relação com o pacote pesquisado.
Atenção! Delete apenas o que é do pacote. Cuidado para não excluir pastas indevidas. Para executar esta ação é recomendado experiência com Linux.
Em seguida, copie e cole os diretórios do pacote que deverão ser excluídos.
sudo rm -r DIRETÓRIOS_DO_PACOTE
O rm é a sigla de remove: remover. O -r é muito comum de proceder o rm porque remove a pasta e todo o seu conteúdo. Por exemplo, se existir um diretório assim /home/nome_do_usuario/Desktop/aula/programa/php/imagens/ e o comando executado for:
sudo rm -r /home/nome_do_usuario/Desktop/aula/
Todo conteúdo dentro de /aula/ será removido. O r é recursive e inglês de recursivo. Se tiver infinitas pastas e arquivos após /aula/, o comando iria apagar infinitamente tudo sem nunca cessar. O termo infinito é só um exemplo. Por isso, cuidado com as escolhas de diretórios após o whereis.
sudo apt autoremove
O autoremove é bastante verbosivo e dispensa explicações. No entanto, o autoremove retira os pacotes não mais utilizados dentro do repositório do Linux. Este comando é útil porque o pacote que causa problemas pode estar nesta lista de pacotes inutilizáveis e, assim sendo, será eliminado para evitar futuros conflitos.
O repositório é um servidor da distribuição Linux, ou seja, cada uma tem a sua. O Linux Mint tem um repositório próprio assim como o Ubuntu tem o seu. Todo o comando enviado pelo terminal é um pedido para o repositório autorizar o download e fazer a instalação. É o mesmo que a atualização do Windows, a diferença é que o Windows busca as atualizações nos servidores da Microsoft.
sudo apt-get clean
O clean é limpar na nossa língua e traz a vantagem remover pacotes depositados nas pastas temporárias e também arquivos e pastas não mais utilizáveis. Ele é mais útil para liberar espaço no disco.
Em suma, limpa o cache.
sudo apt-get autoclean
Análogo ao clean, o autoclean remove pacotes que não concluíram a instalação, ou seja, estão pendentes e/ou ultrapassados. Tem a mesma finalidade do clean.
sudo dpkg --configure -a
Surge uma nova palavra na lista dos comandos: dpkg. O dpkg permite alterações no banco de dados do pacote do sistema operacional. O exemplo a ser dado pode parecer muito surreal, mas o dpkg atinge configurações mais profundas que o apt. Pense nas cirurgias plásticas no rosto para deixar pessoas rejuvenescidas, esta é a tarefa do apt no Linux. O dpkg é uma cirurgia que modificaria o DNA da pessoa de modo que a herança do corpo retardaria o envelhecimento.
O dpkg lida diretamente com arquivos .deb que é o pacote de instalação do Debian. Em um resumo rápido para não perder o foco deste texto, o Linux Mint e o Ubuntu foram baseados no Debian, outra distribuição Linux. Na verdade, a hierarquia é assim:
- Linux Mint baseado no Ubuntu
- Ubuntu baseado no Debian
- Debian baseado no Linux/GNU
Pense no Debian como uma casa já construída. Esta casa foi vendida para uma família e reformou com ampliações e melhorias dos cômodos. Nasceu assim a casa Ubuntu. Novamente vendida, o terceiro proprietário fez novas modificações e surgiu a casa Linux Mint. Apesar de todas as modificações, as fundações estruturais como baldrames e sapatas que sustentam a casa ainda são as mesmas.
Como o dpkg é a base do Debian e gerencia os pacotes da referida distribuição, o nome dpkg é Debian Package: Pacote Debian. Por ser de baixo nível, ou seja, se aproximar mais da linguagem da máquina do que a humana, o dpkg é um programa e no comando acima é associado ao --configure -a porque o --configure lida com pacotes já extraídos, mas não configurados dentro do sistema operacional. Ou seja, se há algum pacote extraído que algum modo não permitiu criar usuário e senha como um banco de dados, após a execução do comando, estará apto para tal.
A última parte -a é all e no português é tudo, isto é, todos os pacotes não instalados ou descompactados serão configurados. Pode usar --pending no lugar do -a.
O comando sudo dpkg --configure -a é mais útil para usuários avançados de Linux, principalmente quando fizeram alguma configuração na raiz de um pacote ou aplicativo como a localização da pasta armanezamento em uma aplicação PHP de uma loja virtual.
sudo apt update
O update é atualizar e serve para atualizar os repositórios dos softwares do sistema operacional. O comando acima é útil, logicamente, para o sistema operacional identificar o que precisa ser atualizado.
sudo apt upgrade
Aprimorar é a palavra mais apropriada para upgrade. O update mostrou o que precisa ser feito, é a lista do supermercado. O comando upgade faz as compras. É o momento que o sistema operacional faz o download e instalação das atualizações.
sudo apt install NOME_DO_PACOTE
Com o comando acima irá instalar o pacote. Install é instalar.
sudo apt-get install -f NOME_DO_PACOTE
A leta -f é de fix-broken é resolver algo quebrado e é a tentativa de instalar o pacote que não deu certo com sudo apt install NOME_DO_PACOTE e de modo a reparar dependências quebradas dentro do gerenciador de pacotes.
Por fim, esvazie a lixeira.
Se este tutorial não resolver o problema, é necessário entrar em fóruns e buscar auxílio de usuários mais avançados.
Uma coisa pode ficar tranquilo: tudo é resolvível.
Este é um blog da Info Usado que divulga informações e conhecimento sobre informática. A Info Usado comercializa peças usadas para informática.
Márcio Baldo
Texto muito útil!
ResponderExcluirOlá, Shmuel. Tudo bem? Agradeço o comentário. Att. José
Excluir