Eu recebo este erro após a atualização

6

Recebi esta mensagem de erro após a atualização mais recente:

dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (<< 0.99ubuntu13.2.1~); however:
  Version of initramfs-tools-bin on system is 0.103ubuntu0.2.
 klibc-utils (2.0.1-1ubuntu2) breaks initramfs-tools (<< 0.103) and is installed.
  Version of initramfs-tools to be configured is 0.99ubuntu13.2.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of plymouth:
 plymouth depends on initramfs-tools; however:
  Package initramfs-tools is not configured yet.
dpkg: error processing plymouth (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mountall:
 mountall depends on plymouth; however:
  Package plymouth is not configured yet.
dpkg: error processing mountall (--configure):
 dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
                                                              No apport report written because MaxReports is reached already
      No apport report written because MaxReports is reached already
                                                                    dpkg: dependency problems prevent configuration of initscripts:
 initscripts depends on mountall (>= 2.28); however:
  Package mountall is not configured yet.
dpkg: error processing initscripts (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of upstart:
 upstart depends on initscripts; however:
  Package initscripts is not configured yet.
 upstart depends on mountall; however:
  Package mountall is not configured yet.
dpkg: error processing upstart (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of passwd:
 passwd depends on upstart-job; however:
  Package upstart-job is not installed.
  Package upstart which provides upstart-job is not configured yet.
dpkg: error processing passwd (--configure):
 dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
                                                              No apport report written because MaxReports is reached already
      No apport report written because MaxReports is reached already
                                                                    Errors were encountered while processing:
 initramfs-tools
 plymouth
 mountall
 initscripts
 upstart
 passwd
E: Sub-process /usr/bin/dpkg returned an error code (1)
    
por user203404 16.10.2013 / 23:05

2 respostas

5

Abra o terminal e execute estes comandos:

sudo apt-get autoremove
sudo apt-get --purge remove && sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg-reconfigure -a

O último comando levaria algum tempo depende dos pacotes instalados em seu sistema. Então, por favor, seja paciente. Se você não tiver nenhum pacote quebrado / residual, ele será executado silenciosamente sem nenhuma mensagem.

sudo apt-get update
sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo dpkg-reconfigure -a
sudo dpkg --configure -a
sudo update-initramfs -u

Em seguida, reinicie o seu sistema.

    
por Saurav Kumar 17.10.2013 / 00:07
2

Meu one-liner para remover kernels antigos (isso também libera espaço em disco):

dpkg --list | grep linux-image | awk '{ print  }' | sort -V | sed -n '/''uname -r''/q;p' | xargs sudo apt-get -y purge

Explicação (lembre-se, | usa a saída do comando anterior como entrada para a próxima)

  • dpkg --list lista todos os pacotes instalados
  • grep linux-image procura as imagens linux instaladas
  • awk '{ print }' apenas gera a segunda coluna (que é o nome do pacote)
  • sort -V coloca os itens em ordem pelo número da versão
  • sed -n '/''uname -r''/q;p' imprime as linhas antes do kernel atual
  • xargs sudo apt-get -y purge limpa os kernels encontrados

Desvinculando a invocação de sed :

  • -n informa sed para ficar quieto
  • 'uname -r' gera a versão atual do kernel instalado - nós a incluímos em backticks para que a saída seja incluída como parte do comando (você também pode ver isso como $(uname -r)
  • /something/q diz que parar quando você combina 'algo' (nesse caso, algo é resultado de uname -r ) - o / envolve uma expressão regular
  • p é impresso
  • o ; é o comando separtor, então /something/q;p diz quit quando você combina algo, senão imprime

ao todo, sed -n '/''uname -r''/q;p' é imprimir as linhas até corresponder ao nome atual do kernel.

Se você é paranóico (como eu), você pode fazer a última parte xargs echo sudo apt-get -y purge para que o comando para limpar os kernels antigos seja impresso, então você pode verificar se nada inesperado está incluído antes de executá-lo.

Versão modificada para remover cabeçalhos:

dpkg --list | grep 'linux-image' | awk '{ print  }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)//")"'/q;p' | xargs sudo apt-get -y purge
dpkg --list | grep 'linux-headers' | awk '{ print  }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)//")"'/q;p' | xargs sudo apt-get -y purge

Nota: a invocação sed é modificada. "$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)//")" extrai apenas a versão (por exemplo, "3.2.0-44"), sem "-genérico" ou semelhante de uname -r

Versão all-in-one para remover imagens e cabeçalhos (combina as duas versões acima):

echo $(dpkg --list | grep linux-image | awk '{ print  }' | sort -V | sed -n '/''uname -r''/q;p') $(dpkg --list | grep linux-headers | awk '{ print  }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)//")"'/q;p') | xargs sudo apt-get -y purge
    
por arukaen 24.10.2014 / 15:13

Tags