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
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.
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 theupdate-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í.
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.