Ubuntu 12.04 Atualização do Libreoffice quebra atualização de software

2

Após aplicar as atualizações mais recentes hoje (16 de agosto de 2014), o Libreoffice-base não concluirá o upgrade devido ao erro "no diversion", que parece quebrar o script postrm e agora não posso atualizar, instalar ou remover pacotes.

Eu desliguei todos os repositórios do ppa, executei "sudo dpkg --configure - a", "sudo apt - get autoremove" assim como "sudo rm - fR / var / cache / apt" para criar uma ardósia limpa - mas sem sucesso. Eu também tentei renomear os arquivos ofensivos para .bak.

Alguma idéia?

Saída da última tentativa:

$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  iw crda wireless-crda wireless-regdb
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  libreoffice-base
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 6,748 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 221883 files and directories currently installed.)
Removing libreoffice-base ...
No diversion 'diversion of /usr/lib/libreoffice/share/basic/dialog.xlc to /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess by libreoffice-base', none removed.
No diversion 'diversion of /usr/lib/libreoffice/share/basic/script.xlc to /usr/lib/libreoffice/share/basic/script.xlc.noaccess by libreoffice-base', none removed.
/var/lib/dpkg/info/libreoffice-base.postrm: 31: /var/lib/dpkg/info/libreoffice-base.postrm: Syntax error: end of file unexpected (expecting "fi")
dpkg: error processing libreoffice-base (--remove):
 subprocess installed post-removal script returned error exit status 2
Errors were encountered while processing:
 libreoffice-base
E: Sub-process /usr/bin/dpkg returned an error code (1)
    
por mtb-cliff 16.08.2014 / 21:37

3 respostas

3

Este bug foi reportado aqui . Em suma, há um erro de sintaxe no script /var/lib/dpkg/info/libreoffice-base.postrm que o quebra.

Isso foi o que eu fiz para corrigir o problema em minha máquina - também foi sugerido por nadrach aqui . Abra esse script quebrado para edição:

sudo gedit /var/lib/dpkg/info/libreoffice-base.postrm

Edite o arquivo:

#!/bin/sh

set -e


if [ "" = remove -o "" = abort-install -o "" = disappear ]; then
dpkg-divert --package $DPKG_MAINTSCRIPT_PACKAGE --remove --rename \
--divert /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess \
/usr/lib/libreoffice/share/basic/dialog.xlc
dpkg-divert --package $DPKG_MAINTSCRIPT_PACKAGE --remove --rename \
--divert /usr/lib/libreoffice/share/basic/script.xlc.noaccess \
/usr/lib/libreoffice/share/basic/script.xlc
fi
if [ "" = abort-upgrade ] && dpkg --compare-versions "" lt dpkg --compare-versions "" lt 1:4.3.0~beta1-1; then
dpkg-divert --package $DPKG_MAINTSCRIPT_PACKAGE --remove --rename \
--divert /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess \
/usr/lib/libreoffice/share/basic/dialog.xlc
dpkg-divert --package $DPKG_MAINTSCRIPT_PACKAGE --remove --rename \
--divert /usr/lib/libreoffice/share/basic/script.xlc.noaccess \

COLOQUE ESTA LINHA AQUI:     /usr/lib/libreoffice/share/basic/script.xlc

fi

    # Automatically added by dh_installmenu

if [ -x "'which update-menus 2>/dev/null'" ]; then update-menus ; fi
# End automatically added section


exit 0

Salve o arquivo e execute suas atualizações. A correção não causou nenhum problema para mim ainda.

Como David apontou, talvez seja necessário corrigir pacotes quebrados depois de aplicar isso antes que tudo volte ao normal:

sudo apt-get -f install
    
por Tanel Mae 17.08.2014 / 08:41
0

Eu usei aptitude para resolvê-lo. Não tenho certeza se faz diferença usar aptitude , mas como está resolvido agora para mim não posso testar. Então, se você tiver instalado, ou pode instalá-lo por apt-get install aptitude , você pode tentar o que funcionou para mim:

Inicie o aptitude , atualize com u e instale todos os pacotes a serem instalados pressionando + em "Pacotes Atualizáveis" e, em seguida, g para mostrar o que será feito, e se isso parecer razoável, g novamente para fazer as mudanças. Houve um dos pacotes libreoffice deixados desinstalados, e com as ações descritas, ele foi instalado e o erro foi corrigido no caminho.

A saída do terminal onde o problema foi corrigido é esta:

Preparing to unpack .../libreoffice-base_1%3a4.3.0-3ubuntu1~trusty1_amd64.deb ...
Unpacking libreoffice-base (1:4.3.0-3ubuntu1~trusty1) over (1:4.3.0-0ubuntu1~trusty1) ...
/var/lib/dpkg/info/libreoffice-base.postrm: 28: /var/lib/dpkg/info/libreoffice-base.postrm: Syntax error: end of file unexpected (expecting "fi")
dpkg: warning: subprocess old post-removal script returned error exit status 2
dpkg: trying script from the new package instead ...
dpkg: ... it looks like that went OK
Preparing to unpack .../libreoffice-ogltrans_1%3a4.3.0-3ubuntu1~trusty1_amd64.deb ...
Unpacking libreoffice-ogltrans (1:4.3.0-3ubuntu1~trusty1) over (1:4.3.0-0ubuntu1~trusty1) ...
    
por Volker Siegel 16.08.2014 / 21:54
0

Consegui me livrar dos erros ofensivos, mas não tenho acesso ao libreoffice-base. Eu posso viver sem isso por agora, como eu costumo usar o MySql. A maneira que eu fiz foi abrir uma janela do nautilus como root 'gksu nautilus' e depois atravessar para o diretório onde o arquivo postrm residia '/ var / lib / dpkg / info' e então abrir 'libreoffice-base.postrm' em um texto editor e comentou o segundo bloco completamente (até o seu 'fi') - começa com 'if ["$ 1" = abort-upgrade] & amp; & amp; dpkg --compare-versions "$ 2" lt dpkg --compare-versions "$ 2" lt 1: 4.3.0 ~ beta1-1; então'. Salvei o arquivo e, em seguida, executei um 'sudo apt-get install libreoffice-base' que produziu o seguinte:

Lendo listas de pacotes ... Concluído Construindo árvore de dependências
Lendo informações de estado ... Concluído O libreoffice-base já é a versão mais recente. Os seguintes pacotes foram instalados automaticamente e não são mais necessários:   iw crda sem fio-crda sem fio-regdb Use 'apt-get autoremove' para removê-los. Os seguintes pacotes serão REMOVIDOS:   libreoffice-base 0 atualizado, 0 recém-instalado, 1 para remover e 0 não atualizado. 1 não totalmente instalado ou removido. Após esta operação, o espaço em disco de 6,748 kB será liberado. Você quer continuar [Y / n]? y (Lendo banco de dados ... 221883 arquivos e diretórios atualmente instalados.) Removendo o libreoffice-base ... Nenhum desvio de '/usr/lib/libreoffice/share/basic/dialog.xlc para /usr/lib/libreoffice/share/basic/dialog.xlc.noaccess por libreoffice-base', nenhum removido. Não há desvio de desvio de /usr/lib/libreoffice/share/basic/script.xlc para /usr/lib/libreoffice/share/basic/script.xlc.noaccess por libreoffice-base ', nenhum removido. Processando gatilhos para o menu ...

Quando tento reinstalar base, ele reclama de dependências, mas todos os arquivos identificados são da versão mais recente. esquisito. Mas pelo menos eu posso atualizar e instalar pacotes novamente.

    
por mtb-cliff 17.08.2014 / 00:09