Como posso resolver a dependência do dpkg?


32
administrator@zlounes:~$ sudo apt-get dist-upgrade
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:
 linux-server : Depends: linux-headers-server (= 3.2.0.37.44) but 3.2.0.37.45 is installed
E: Unmet dependencies. Try using -f.
administrator@zlounes:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-image-server linux-server
The following packages will be upgraded:
  linux-image-server linux-server
2 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
4 not fully installed or removed.
Need to get 0 B/4,458 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-image-server'
Setting up initramfs-tools (0.99ubuntu13.1) ...
update-initramfs: deferring update (trigger activated)
Setting up linux-image-3.2.0-37-generic (3.2.0-37.58) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.2.0-37-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-37-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-37-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postinst line 1010.
dpkg: error processing linux-image-3.2.0-37-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-server:
 linux-image-server depends on linux-image-3.2.0-37-generic; however:
  Package linux-image-3.2.0-37-generic is not configured yet.
dpkg: error processing linux-image-server (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Package linux-image-server is not configured yet.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-36-generic
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup error from a previous failure.

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-36-generic with 1.
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 linux-image-3.2.0-37-generic
 linux-image-server
 linux-server
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu tentei muito e não consigo fazer isso funcionar. Acho que interrompi uma instalação e isso estragou tudo. Pesquisei no Google e tentei várias correções.

EDIT (Após limpar minha pasta / boot):

administrator@zlounes:/boot$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-server
The following packages will be upgraded:
  linux-server
1 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,734 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-server'
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          E: Sub-process /usr/bin/dpkg returned an error code (1)
administrator@zlounes:/boot$

1
por que você assume um problema com dependências de pacotes quando o erro declara gzip: stdout: No space left on device? Parece-me que as dependências NÃO estão instaladas porque você não tem espaço para instalar o software.
Rinzwind

Por favor, adicione os resultados de df. Eu acho que sua /bootpartição está cheia.
Rinzwind

Obrigado :). Tenho de limpar minha pasta / boot, mas eu tenho de novo o mesmo erro (Eu editei o meu primeiro post com erro de código), agradeço antecipadamente e desculpe pelo meu inglês pobre
zlounes

Ao "limpar minha pasta de inicialização", você quer dizer que excluiu arquivos nessa pasta? Você provavelmente não vai gostar dos resultados de fazer isso.
Jack

Nenhum arquivo é bom, eu ter selecionado;)
zlounes

Respostas:


65

Uma boa tentativa de garantir que seu sistema esteja em boas condições e não tenha problemas com a instalação interrompida é chamar

  dpkg --configure -a 

Assegure-se de que a lista de pacotes esteja atualizada e nenhum problema seja mostrado em:

 apt-get update

Opcionalmente, você pode remover todos os dados antigos antes da atualização com:

 find /var/lib/apt/lists -type f  |xargs rm -f >/dev/null \

O próximo passo para resolver o problema é remover o pacote linux-server por um tempo. Isso pode ser feito porque não possui conteúdo real e apenas introduz uma dependência:

Este pacote sempre dependerá do kernel completo do Linux mais recente disponível para equipamento de servidor.

 dpkg --remove linux-server

Após esta etapa, verifique se todas as dependências atuais estão instaladas:

apt-get install -f

Se estiver tudo bem, agora você pode instalar o linux-server novamente:

apt-get install linux-server

Post Scriptum

O servidor linux está obsoleto no 12.04 . Também para equipamentos de servidor, o kernel genérico é usado. Vejoapt-cache show linux-image-server

Pacote: linux-image-server ...

Seção: metapacotes

....

Depende: linux-image-3.2.0-23- genérico , linux-firmware


Muito obrigado. Eu pensei que eu seria passar um dia re-instalar o servidor ..
uncletall

8

Estou regularmente tendo que limpar o / boot das minhas máquinas e, geralmente, estar muito cheio interrompe a atualização - não tenho certeza qual é a solução definitiva, mas o processo que uso parece funcionar:

Comece com um sudo su

Então vá para / boot e faça um ls -lSrh- os que estão na parte inferior são os maiores - o rmsuficiente dos mais antigos para liberar espaço suficiente.

Em seguida, tente o seguinte (conforme extraído um pouco de cima):

  1. sudo apt-get remove linux-server
  2. dpkg --configure -a
  3. apt-get update
  4. apt-get install -f
  5. apt-get autoremove
  6. dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;done
  7. apt-get install linux-image-server linux-server
  8. reboot

Se alguma coisa falhar, faça um comentário aqui e verei qual será o problema.

Vi esse tipo de coisa funcionar para os problemas do pacote postgresql-9.1 ao usar o Pitti PPA também.

Uma vez, quando executei o procedimento, tive um problema com o grub. Fazendo um apt-get install --reinstall grubconserto.

Obrigado pelo liner único: http://ubuntuforums.org/showpost.php?p=12180959&postcount=7

Boa sorte!


Parece que a etapa 6 foi cortada: dpkg --get-selections | grep 'linux-image *' | awk '{print $ 1}' | egrep -v "linux-image - $ (uname -r) | linux-image -generic "| enquanto lê n; faça o apt-get -y remove $ n; pronto
Tom Swifty

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.