apt python error me impede de resolver problemas de dependência para o apt-get install

5

No Debian 6 servidores problemas de dependência estão me impedindo de instalar o nis (ou qualquer pacote). Quando tento resolver esse problema, recebo um erro de python. Como faço para superar este problema e recuperar a capacidade de instalar pacotes?

Eu pesquisei e encontrei algumas pessoas relatando a mesma mensagem de erro, mas ninguém tinha uma solução. Eu também verifiquei SE sem sucesso. Isso está afetando 10s de servidores na minha empresa.

root 7 # apt-get install nis
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libglib2.0-dev : Depends: libglib2.0-0 (= 2.24.2-1) but 2.40.0-2 is to be installed
 nis : Depends: libdbus-glib-1-2 (>= 0.78) but it is not going to be installed
       Depends: libslp1 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Então tentei resolver isso seguindo a sugestão:

root 8 # apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  xfonts-encodings ttf-dejavu-core xfonts-utils libxfont1 libpango1.0-common libdb5.1 libxcb-render-util0
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  libglib2.0-dev
Suggested packages:
  libglib2.0-doc
The following packages will be upgraded:
  libglib2.0-dev
1 upgraded, 0 newly installed, 0 to remove and 559 not upgraded.
42 not fully installed or removed.
Need to get 0 B/2642 kB of archives.
After this operation, 3982 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: error processing /var/cache/apt/archives/libglib2.0-dev_2.40.0-2_amd64.deb (--unpack):
 parse error, in file '/var/lib/dpkg/tmp.ci/control' near line 7 package 'libglib2.0-dev':
 'Depends' field, invalid package name 'python:any': character ':' not allowed (only letters, digits and characters '-+._')
configured to not write apport reports
                                      Errors were encountered while processing:
 /var/cache/apt/archives/libglib2.0-dev_2.40.0-2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

root 9 # 

Eu também tentei

apt-get autoremove

mas isso apenas me disse para fazer

apt-get -f install

novamente.

Eu tentei olhar para o arquivo ofensivo, mas percebi isso:

root 11 # cat /var/lib/dpkg/tmp.ci/control
/var/lib/dpkg/tmp.ci/control: No such file or directory

Conforme solicitado:

root 14 # apt-cache policy nis libglib2.0-dev libglib2.0-0 libdbus-glib-1-2 libslp1 
libglib2.0-0:
  Installed: 2.40.0-2
  Candidate: 2.40.0-2
  Version table:
 *** 2.40.0-2 0
        500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
        100 /var/lib/dpkg/status
libdbus-glib-1-2:
  Installed: (none)
  Candidate: 0.102-1
  Version table:
     0.102-1 0
        500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
libglib2.0-dev:
  Installed: 2.24.2-1
  Candidate: 2.40.0-2
  Version table:
     2.40.0-2 0
        500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
 *** 2.24.2-1 0
        100 /var/lib/dpkg/status
nis:
  Installed: (none)
  Candidate: 3.17-33
  Version table:
     3.17-33 0
        500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
libslp1:
  Installed: (none)
  Candidate: 1.2.1-9
  Version table:
     1.2.1-9 0
        500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages

conforme solicitado:

apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://security.debian.org/ stable/updates/main Translation-en
 500 http://security.debian.org/ stable/updates/main amd64 Packages
     release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=main
     origin security.debian.org
 500 http://ftp.us.debian.org/debian/ unstable/main Translation-en
 500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
     release o=Debian,a=unstable,n=sid,l=Debian,c=main
     origin ftp.us.debian.org
Pinned packages:
    
por MERM 17.04.2014 / 22:16

1 resposta

6

Isso foi interessante. O cartaz tentava consertar uma máquina que era acessível remotamente por ssh. Esta máquina foi parcialmente atualizada para instável, incluindo libc6. No entanto, as partes ainda estavam estáveis, e o apt estava na versão squeeze. O cartaz queria a máquina completamente estável.

Eu andei no cartaz consertando sua máquina. A sessão de chat começou no link

Resumo:

  1. O sources.list tem apenas fontes instáveis. Adicionado estáveis. Também adicionamos algumas sub-rotinas em /etc/apt/preferences para definir o número de prioridade. para testes e instável para 50.
  2. Atualizado para a versão estável.
  3. Instalou apt-show-versions e executou apt-show-versions | grep unstable em obter informações sobre quais pacotes eram instáveis.
  4. Removidos todos os pacotes instáveis, exceto libc6 .
  5. Comentou fontes instáveis. NOTA: removendo fontes instáveis antes de você executar apt-show-versions teria tornado apt-show-versions incapaz de diga quais pacotes eram instáveis.
  6. Downgrade libc6 da instável para a estável.
  7. Ran apt-get upgrade seguido por apt-get dist-upgrade .
  8. Removidos os pacotes do kernel 2.6.

Considerações finais: provavelmente há uma maneira melhor de identificar quais pacotes são instáveis do que usar apt-show-versions , mas atualmente não sei de um. Se você fizer isso, por favor, comente.

    
por 19.04.2014 / 22:24