Não consigo resolver este erro no My Ubuntu 12.04 '/ var / lib / dpkg / status' próximo ao pacote da linha 1050 'swish ++'

1

Quando tentei atualizar meu sistema e instalar novo programa. Ele falhou por causa do erro a seguir. Eu tentei remover o Swish ++, mas isso também falhou. Então, atualmente eu não sou capaz de atualizar / atualizar / instalar / desinstalar / remover quaisquer pacotes do meu sistema. Eu tentei o F-Install, mas isso também não está funcionando.

gentilmente guia para resolver este problema.

 'Depends' field, reference to 'libc6':
     implicit exact match on version number, suggest using '=' instead
    dpkg: warning: parsing file '/var/lib/dpkg/status' near line 1050 package 'swish++':
     'Depends' field, reference to 'libc6':
     version value starts with non-alphanumeric, suggest adding a space
    dpkg: error: parsing file '/var/lib/dpkg/status' near line 1050 package 'swish++':
     'Depends' field, reference to 'libc6': version contains ' '
    E: Sub-process /usr/bin/dpkg returned an error code (2)
    A package failed to install.  Trying to recover:
    dpkg: warning: parsing file '/var/lib/dpkg/status' near line 1050 package 'swish++':
     'Depends' field, reference to 'libc6':
     implicit exact match on version number, suggest using '=' instead
    dpkg: warning: parsing file '/var/lib/dpkg/status' near line 1050 package 'swish++':
     'Depends' field, reference to 'libc6':
     version value starts with non-alphanumeric, suggest adding a space
    dpkg: error: parsing file '/var/lib/dpkg/status' near line 1050 package 'swish++':
     'Depends' field, reference to 'libc6': version contains ' '

Resultado solicitado do comentário:

arif@arif-desktop:~$ head -n 1050 /var/lib/dpkg/status | tail -n 1
Depends: libc6 (.= 2.7), libstdc++6 (>= 4.6), zlib1g (>= 1:1.1.4), perl5 
    
por Arif Kapadia 18.12.2012 / 16:45

1 resposta

1

Como a saída sugere, seu arquivo /var/lib/dpkg/status tem um erro. A linha 1050 imprime

Depends: libc6 (.= 2.7)

O ponto deve ser maior que o sinal ( > ). Os vários comandos do pacote ( dpkg , apt-get etc.) não entendem para que serve o ponto. Eles são bastante rígidos em sua sintaxe. Você deve mudar isso para o valor correto.

Portanto, abra o arquivo como usuário root e altere o valor. Você pode usar o editor vim :

sudo vim /var/lib/dpkg/status

e insira a sequência 1050Gf.r>:wq . Essa sequência vai para a linha 1050 ( 1050G ), procura por um dit ( f. ), substitui por > ( r> ) e salva / fecha o arquivo ( :wq ).

Outra maneira seria sed :

sudo sed -i.bak 's,^\(Depends: *libc6 *(\.\),,' /var/lib/dpkg/status

No entanto, você também pode usar qualquer editor gráfico, como Geany, Gedit ou outros. Supondo que você esteja usando Geany :

  1. gksu geany +1050 /var/lib/dpkg/status
    Este comando primeiro pedirá sua senha de usuário e depois abrirá o arquivo na linha 1050. A linha deve começar com Depends e você encontrará o ponto após o braket de abertura.
  2. Mova o cursor para o ponto e altere-o para > . Para que ele leia libc6 (>= 2.7)
  3. Salve ( Ctrl - S ) e feche o arquivo.
  4. Atualize os pacotes com o centro sináptico ou de software. Agora tudo deve estar funcionando como esperado.
por qbi 23.12.2012 / 22:04