Reverter acidentalmente 'dpkg --clear-selections'

1

Eu queria "limpar" todos os pacotes que foram "removidos" apenas. Depois de percorrer a página manpage de dpkg , achei que o parâmetro --clear-selections faria o truque. Tão estúpida que eu digitei com sudo e depois verifiquei os estados de seleção novamente e fiquei chocado.

dpkg selecionou todos os pacotes instalados (não vitais) para serem desinstalados!

Isso foi, claro, minha culpa, mas definitivamente não intencional. Então, como reverter isso?

Ainda tenho a janela do terminal aberta, onde corri dpkg --get-selections | grep deinstall both antes (85 pacotes) e após (2614 pacotes) o comando acidental.

O que eu preciso agora é subtrair a primeira (antiga) lista de desinstalação da segunda (atual) e marcar todos os pacotes desejados novamente. Configurá-los para manual não será bom, pois isso afetaria centenas de bibliotecas que não fazem sentido se instaladas sem suas aplicações. Portanto, temos que configurá-lo como auto e, provavelmente, teremos que descobrir manualmente os pacotes de nível superior a serem selecionados como manual . Ou algo pode me ajudar lá?

Informações: Eu tenho dois arquivos de texto separados, um contendo o primeiro --get-selections de saída, um o segundo. Eles contêm apenas linhas com a sintaxe:

package-name         deinstall

em que package-name é, bem, o nome real do pacote e o espaço entre eles é um número indefinido de guias.

Atualização: Acabei de encontrar a saída de dpkg --get-selections antes do acidente sem qualquer filtragem grep ! Apenas dois pacotes foram instalados depois disso, posso corrigi-los manualmente mais tarde.

Por favor, ajude-me a restaurar minhas seleções de pacotes anteriores!

    
por Byte Commander 19.10.2015 / 13:31

1 resposta

1

Para definir todos os pacotes atualmente selecionados para deinstall de volta para install , você executa os dois comandos a seguir:

sudo dpkg --get-selections | awk '/deinstall/ {printf "%s\t%s\n",,"install"}' > packages
sudo dpkg --set-selections < packages

O primeiro comando encontra todos os pacotes marcados com deinstall e escreve uma lista de pacotes como este

package-name         install

O segundo comando corrige os pacotes.

Se a saída completa de dpkg --get-selections de antes do acidente for dada, você pode simplesmente restaurar todas as seleções com o comando

sudo dpkg --set-selections < packages

onde packages é o nome do arquivo que contém a saída antiga.

    
por A.B. 19.10.2015 / 14:38