Não consigo atualizar o sistema - Package error

Saudações, camaradas;

Tentei instalar o Stremio no meu Pop!_Os há uns dias e não consegui. Então removi o programa com os comandos:

sudo rm -Rf /opt/stremio
sudo rm -Rf /usr/bin/stremio
sudo rm -Rf /usr/share/applications/stremio.desktop

E aparentemente não haviam rastros do programa. Porém não consegui mais atualizar o sistema com “sudo apt update” + “sudo apt full-upgrade” (nem apt-get upgrade), pois sempre recebo a seguinte mensagem:

E: The package stremio needs to be reinstalled, but I can’t find an archive for it.

O que fazer?

Reinstala ele e remove do jeito certo.

  1. Faz o download do pacote de novo stremioXXX.deb

  2. Instala:
    sudo dpkg --install stremioXXX.deb

  3. Se der erro dizendo que já está instalado, força a instalação
    sudo dpkg --install --force stremioXXX.deb

  4. Agora que instalou, remova do jeito certo:
    sudo apt purge stremio

  5. Atualize o sistema com apt update && apt upgrade

Os sistemas de pacotes do linux foram um grande avanço no modo que programas são distribuídos. O programa gestor (o apt ou dpkg num nível mais baixo) guarda registro de todos os arquivos que foram instalados e dos arquivos de configuração de cada pacote. Quando você manda remover pelo jeito certo, o gestor já faz toda a coleta de arquivos para apagá-los. Se vc apagou “na mão”, o gestor ficou perdido pois não achou parte do programa e gerou o erro.

Valeu pela resposta @Deleterium.
Então, ele não reconhece a opção --force pra este pacote:

Pois é… eu acho melhor a gente tentar recuperar os arquivos apagados e depois remover o pacote.

Pra isso a gente vai apenas extrair os arquivos do pacote:

sudo dpkg -x stremio-XXX.deb /tmp/diretorio

Agora vá na pasta e copie de novo as pastas que vc apagou para a localização correta:

cd /tmp/diretorio/opt
sudo cp -r stremio /opt
cd ../usr/bin
sudo cp stremio /usr/bin/stremio
cd ../share/applications/
sudo cp stremio.desktop /usr/share/applications/stremio.desktop

Daí tente remover o pacote de novo
apt purge stremio


EDIT:

Eu fiz o procedimento e só extrai a pasta opt. Então faça somente a primeira cópia e tente remover o pacote:

cd /tmp/diretorio/opt
sudo cp -r stremio /opt
apt purge stremio

Dá o mesmo erro “The package stremio needs to be reinstalled, but I can’t find an arquive for it.”

O f*da é que neste processo, copiei os arquivos do stremio pra diferentes diretórios, e a maioria deles está em read-only

Refiz todos esses passos descritos aqui e consegui chegar na solução. Está quase terminando!

Instala o pacote com o dpkg:
sudo dpkg -i stremioXXX.deb

Agora vai finalizar a instalação, daí pode remove-lo:
apt purge stremio
apt autoremove
apt update
apt upgrade

1 curtida

Ahhhhh, o glorioso " -i " !! Funcionou! Muito obrigado, Mestre! :penguin:

kinlai

1 curtida

Pois é! Antes de desinstalar tinha que reinstalar, afinal ele estava marcado como remoção incompleta.

Aprendi mais uma também!

O meu não desintalou nem com esse comando.
foi preciso executar:

sudo rm -i /var/lib/dpkg/info/stremio.*

sudo dpkg --remove --force-all stremio
1 curtida