O problema é que o script bash usa o bash para que ele não seja executado, fazendo com que a reinstalação inteira falhe.
Existem várias maneiras de contornar isso:
1)
O bash prerm script em meus sistemas (Debian unstable & Debian stable) é incrivelmente simples e não precisa de bash para rodar. Portanto, basta editar /var/lib/dpkg/info/bash.prerm
e alterar a primeira linha de #! /bin/bash
para #! /bin/sh
. Certifique-se também de que /bin/sh
não esteja apontando para bash
( ls -l /bin/sh
). Se estiver, é provável que você tenha /bin/dash
instalado, portanto, tente editar o arquivo prerm para usá-lo.
2) Exclua o arquivo prerm e reinstale-o. O arquivo prerm não faz nada importante na versão 4.4-5 no Debian, então você pode se livrar do arquivo prerm e tentar reinstalar.
3) Você pode extrair /bin/bash
do arquivo .deb
já baixado. Você pode ver o caminho na sua saída: /var/cache/apt/archives/bash_4.4-5_amd64.deb
. Este é um arquivo ar(1)
contendo três arquivos:
-
debian-binary
-
control-tar.gz
-
data.tar.xz
Observe que o arquivo data.tar
pode não ser um arquivo xz
compactado - há outros formatos - gzip, bzip, etc. Suponho que seja um arquivo xz
, mas se não, você pode substituir esse sufixo e o programa zcat apropriadamente.
Você pode ver o conteúdo do arquivo .deb
executando:
$ ar t /var/cache/apt/archives/bash_4.4-5_amd64.deb
debian-binary
control.tar.gz
data.tar.xz
Você pode ver o conteúdo do arquivo data.tar.xz
executando:
$ ar p /var/cache/apt/archives/bash_4.4-5_amd64.deb data.tar.xz | xzcat | tar tvf -
...
./bin/bash
...
Você pode extrair /bin/bash
disso:
$ cd /tmp
$ ar p /var/cache/apt/archives/bash_4.4-5_amd64.deb data.tar.xz | xzcat | tar xvf - ./bin/bash
Desde que você fez isso de /tmp
. agora você terá o arquivo /tmp/bin/bash
. Você pode copiar isso de volta para /bin
e sobrescrever o bash novamente, mas desta vez com um bom conteúdo.
Existem ferramentas do dpkg que podem ser usadas para manipular arquivos .deb
, mas como são arquivos simples, acho mais fácil lembrar como usar ar(1)
e tar(1)
em oposição às opções específicas do dpkg.