Dpkg falhou ao instalar o pacote, agora falha ao remover o pacote quebrado

0

Então eu tentei instalar o pacote dokuwiki no meu pi de framboesa, no entanto o pacote não foi instalado. Ao tentar remover o pacote, o dpkg também falha com o seguinte erro:

String found where operator expected at /usr/share/perl5/Debconf/Element/Noninteractive/Multiselect.pm line 2, at end of line
    (Missing semicolon on previous line?)
Can't locate object method "new" via package "Debconf::Element::Noninteractive::Multiselect" (perhaps you forgot to load "Debconf::Element::Noninteractive::Multiselect"?) at /usr/share/perl5/Debconf/FrontEnd.pm line 68, <GEN50> line 5.
(Reading database ... 132035 files and directories currently installed.)
Removing dokuwiki (0.0.20140505.a+dfsg-4) ...
dpkg: error processing package dokuwiki (--remove):
 subprocess installed post-removal script returned error exit status 10
Errors were encountered while processing:
 dokuwiki
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu pensei que poderia haver a possibilidade de um erro no arquivo 'Multiselect.pm', então dei uma olhada e encontrei algo muito estranho:

#!odsrisin= eris-wet Tems tsleTaasamreS(ocdeseth d.gnonsed"p!
Lipa")ag  De  on  :Eifmeod::isnileerthti 0::{
lt  el  t;  se  trort;trseg asthqw.gebChnfdVElueenod:Nisin0]ra
 iv  ;
  1

Eu posso ver porque o dpkg teria problemas para executar este arquivo. Até mesmo a primeira linha dizendo qual programa deve ser usado para rodar este arquivo é toda distorcida. Meu palpite é que esse arquivo foi ofuscado de alguma forma ou talvez use algo diferente de codificação UTF- *. Poderia ser corrompido também, eu acho.

Alguém tem alguma opinião sobre isso, e talvez como eu posso remover este pacote quebrado?

    
por Gogeta70 24.10.2016 / 20:14

1 resposta

1

Eu percebi isso. Eu não tenho certeza do que aconteceu com o arquivo original, mas eu simplesmente o substituí por outro executado em outro sistema Debian. No entanto, isso ainda não me permitiu remover o pacote dokuwiki.

Eu pensei em olhar os scripts de configuração do dokuwiki em / var / lib / dpkg / info / e encontrei o script que estava dando o erro: dokuwiki.postinst. A execução desse script sem nenhum argumento gerou um erro sobre um operador inválido, então adicionei o seguinte trecho de código ao cabeçalho do arquivo:

if [ -z $1 ]; then
    ./dokuwiki.postinst a
    return
fi

Ele simplesmente verifica se o script foi chamado com algum argumento e, caso contrário, chama a si mesmo com um argumento sem sentido (apenas 'a') e depois retorna.

Depois disso, eu corri

dpkg -r dokuwiki

e desinstalou sem problemas.

    
por 25.10.2016 / 02:01