Como posso remover um monte de pacotes antigos no debian?

3

Eu estou correndo sid, e no decurso de tentar cross-grade meu sistema de i386 a amd64 me deparei alguns pacotes antigos que eu não consegui remover. Alguns antecedentes: Eu tive esse sistema desde a batata, ou talvez antes.

Existem cerca de cem pacotes como este, por isso gostaria de uma resposta genérica ou de script. Aqui está um exemplo:

bminton:/var/cache/apt/archives# dpkg --purge libstdc++2.10-dev
(Reading database ... 1352516 files and directories currently installed.)
Removing libstdc++2.10-dev (1:2.95.4-27) ...
install-info: No dir file specified; try --help for more information.
dpkg: error processing package libstdc++2.10-dev (--purge):
 subprocess installed pre-removal script returned error exit status 1
Errors were encountered while processing:
 libstdc++2.10-dev

O script '/var/lib/dpkg/info/libstdc++2.10-dev.prerm do script prerm contém o seguinte:

#! /bin/sh -e



install-info --quiet --remove iostream-2.95

A execução manual de install-info --quiet --remove iostream-2.95 apresenta o seguinte erro:

install-info: No dir file specified; try --help for more information.
    
por Brian Minton 24.07.2014 / 16:42

3 respostas

3

Eu resolvi isso fazendo meu próprio comando install-info e colocando-o antes de /usr/bin in $PATH . O roteiro foi

#!/bin/sh
/usr/bin/install-info "$@" || true
    
por 24.07.2014 / 18:19
2

dpkg costumava ter seu próprio script install-info que foi usado no lugar do GNU. Um e-mail sobre a alteração oferece uma sugestão para pacotes (formatação adicionada):

These packages should just drop their info files in /usr/share/info, and call the update-info-dir script if present (postinst and prerm). They could suggest/recommend the info package.

Então, o que eu sugiro que você faça é editar (sim, editar) /var/lib/dpkg/info/libstdc++2.10-dev.prerm e comentar a linha install-info ... . Faça o mesmo com outros pacotes com essa falha. Quando terminar de limpar os pacotes, execute manualmente update-info-dir .

BTW: No futuro, depois de fazer uma atualização, você deve verificar a lista de pacotes obsoletos / locais em seu sistema e limpá-los se não for necessário. Caso contrário, você acaba com scripts de manutenção muito antigos deixados por aí.

    
por 24.07.2014 / 17:15
1

Sou novo no Linux, o que pode ser um péssimo conselho, mas a única coisa que funcionou para mim, depois de tentar soluções mais seguras (mudar o $ PATH etc) foi "remover" as antigas informações de instalação (renomeá-lo).

> which install-info
/usr/bin/install-info
> mv /usr/bin/install-info install-info.bak

Eu acho que isso o forçou a usar o novo.

A atualização foi super suave depois disso.

    
por 30.09.2015 / 10:39