Como corrigir o problema "Não é possível calcular a atualização" ao atualizar de 12.04 para 12.10?

20

Eu tenho tentado atualizar para 12.10 desde que foi lançado hoje, mas continuo encontrando este erro:

An unresolvable problem occurred while calculating the upgrade:
E:Unable to correct problems, you have held broken packages.
This can be caused by:  
 * Upgrading to a pre-release version of Ubuntu  
 * Running the current pre-release version of Ubuntu  
 * Unofficial software packages not provided by Ubuntu

Tentei atualizar todo o software atualmente instalado, remover todos os PPAs extras, fazer o downgrade dos arquivos instalados no ppa do xorg edgers, mas não consegui resolver o problema.

Vagrant232
fonte

Respostas:

7

Corrigi o meu removendo os pacotes ppa que eu tinha instalado usando o ppa-purge

Eu sabia que precisava fazer isso verificando os logs em / var / log / dist-upgrade / no final do arquivo apt.log, você verá o que estava confundindo. No meu, era um driver de vídeo e eu estava executando várias atualizações, então fiz:

sudo ppa-purge ppa:ubuntu-x-swat/x-updates
sudo ppa-purge ppa:unity-team/staging
sudo ppa-purge ppa:webapps/preview
sudo ppa-purge ppa:nilarimogard/webupd8
sudo ppa-purge ppa:scopes-packagers/ppa
sudo ppa-purge ppa:glasen/intel-driver

o último - o motorista do glasen - parece ter feito o truque para mim. A atualização está agora prosseguindo normalmente.

user92965
fonte
23

Conforme indicado aqui , a remoção de fontes do PPA nem sempre funciona.

Você precisa desinstalar pacotes incorretos. você pode encontrá-los com:

grep Broken /var/log/dist-upgrade/apt.log

O meu era um pacote xorg. Eu o removi com o comando:

sudo apt-get remove xserver-xorg-video-all

e a atualização pode continuar.

Massimo
fonte
4
Obrigado por apontar ONDE estavam os pacotes quebrados. Essa foi a chave da minha atualização bem-sucedida para 13.10.
DaShaun
Sim! Tudo foi feito com xserver-xorg- *. ( apt-get remove xserver-xorg-*)
K-Gun
11
Em vez de "quebrado", uma palavra-chave mais específica a ser usada na busca de pacotes incorretos é "não pode ser satisfeita".
ultrajohn
11
Eu recebo uma lista muito longa de cerca de 100 pacotes.
precisa saber é o seguinte
Eu tinha bem mais de 900, e até algumas horas de selecioná-las através do trabalho de detetive no apt.log me levaram a cerca de ~ 350. Sabendo que o problema no meu caso era tudo o que eu havia instalado manualmente ao longo dos anos, finalmente afivelei e simplesmente excluí todas as entradas "Instaladas (locais ou obsoletas)" listadas na guia "Status" da Synaptic. Sim, eu sabia que seria necessário fazer chroot do CD ao vivo para obter todas as coisas para obter um sistema operacional novamente - mas funcionou.
Plenus Franckly
16

Para uma atualização de versão "NonPainful".

  • Antes de continuar, verifique se a nova versão está disponível para atualização. Abra um terminal e dê este comando

    do-release-upgrade -c

Se sim, prossiga:

  • Remova todos os PPAs externos que você adicionou.

    No Centro de Software> Editar> Fontes de Software> Outro Software. Não apenas desmarque, mas exclua-os.

  • Em seguida, feche todos os aplicativos gráficos e abra apenas um terminal. (Tela cheia é melhor) Dê os comandos a seguir

    sudo apt-get update 
    sudo apt-get dist-upgrade
    
  • Em seguida, dê os comandos abaixo para fazer uma pequena limpeza

    sudo apt-get --purge autoremove
    sudo apt-get autoclean
    sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
    
  • Então você pode prosseguir com a atualização

    sudo do-release-upgrade
    

Não navegue ou abra janelas ou programas durante a atualização.

Seja paciente até a atualização terminar.

Amigável: Não corra (ou corra) para atualizar desde o primeiro dia. Upgrade a partir do dia dois ou três (melhor).

NickTux
fonte
Obrigado! Sua resposta é extremamente educativa! No entanto, corrigi meu problema antes de ler sua resposta. Eu tive que habilitar os PPAs conflitantes e depois eliminá-los para fazer o trabalho.
Vagrant232
o que sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')faz?
precisa saber é o seguinte
11
@whoKnows Desculpe pela resposta tardia. Isso irá procurar, encontrar e remover todas as sobras marcadas para remoção, mas elas ainda não foram removidas. É isso que 'rc' significa.
NickTux 26/09/15
Isto não funcionou para mim, mas a abaixo fez
John Small
3

Consegui resolver o problema sem remover nenhum pacote. Nas configurações do gerenciador de atualizações, desmarquei todas as opções do software Ubuntu, deixando apenas a primeira caixa marcada - "Software livre e de código aberto suportado pela Canonical (principal)".

macflav
fonte
Votei nesta resposta porque resolveu um problema. Foi o suficiente para desmarcar „Manutenção da comunidade ... (universo)“. Eu tive exatamente o mesmo problema descrito no tópico. Eu estava atualizando de 14.04 para 16.04.1 com o "Software Updater".
Maug Lee
Isso funcionou para mim, os comentários sobre a remoção de pacotes não.
John Small
2

Eu recebi esta mensagem de erro na atualização, embora entre versões diferentes - eu estava executando o 14.04 Trusty -> 16.04 Xenial - mas acho que essa dica pode ser útil para outras pessoas que recebem o mesmo erro, pois levei anos para descobrir e essa resposta aparece de maneira proeminente no Google.

É importante verificar se há algum erro /var/log/dist-upgrade/main.log- no meu caso, houve um erro dizendo que a postgresql-9.3-postgis-2.1lista negra foi removida e o processo de atualização estava tentando removê-la. Removendo esse pacote, deixe-me atualizar.

(nb /var/log/dist-upgrade/apt.logpode enganá-lo listando pacotes "Quebrados" que na verdade não bloqueiam a atualização.)

Isso também é apontado nesta pergunta e resposta semelhante: /ubuntu//a/541406/13868

Aliás, executando sudo ubuntu-bug ubuntu-release-upgrader-core após a falha na atualização pode realmente detectar esses problemas e abrir o relatório de erro correspondente no seu navegador da web - foi isso que me ajudou a encontrar o problema.

Mark Longair
fonte
-4
sudo sed -i 's/raring/saucy/' /etc/apt/sources.list
sudo apt-get dist-upgrade

isso funcionou para mim.

Jirobo
fonte