Estou executando o Ubuntu 12.04 no servidor DigitalOcean.
Gostaria de atualizá-lo para versões posteriores (12.04- > 14.04- > 16.04), mas não o faço devido ao erro mencionado.
O DigitalOcean fornece um tutorial para atualização, mas não é útil porque não explica como resolver o problema.
Eu também tentei todas as respostas em questões semelhantes, que usam a linha de comando.
O problema é essencialmente o mesmo que aqui e aqui :
"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"
- Eu não tenho ppa adicionado
- Eu não adicionei nenhuma fonte extra a
/etc/apt/sources.list
. Mas devo mencionar que existem apenas espelhos DigitalOcean listados, sem servidores padrão ubuntu.
- eu tenho > 900 pacotes listados como quebrados em
/var/log/dist-upgrade/apt.log
. (Parece que todos eles estão quebrados)
- Eu tentei esses comandos (na ordem correta)
apt-get update, apt-get upgrade, apt-get dist-upgrade, apt-get --purge autoremove, apt-get autoclean, apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
, etc, que estão listados em respostas a perguntas semelhantes, mas eles não fazem nada, pois acham que está tudo bem.
Você tem mais alguma sugestão sobre como corrigir o problema?
UPDATE: achei que um problema com servidores DigitalOcean em sources.list poderia ser um problema, então eu os alterei para os originais do Ubuntu. Agora eu recebo apenas 2 erros no apt.log:
ERROR getting the encoding failed
Traceback (most recent call last):
File "/tmp/update-manager-cwZhf2/DistUpgrade/DistUpgradeView.py", line 40, in <module>
locale.setlocale(locale.LC_ALL, "")
File "/usr/lib/python2.7/locale.py", line 539, in setlocale
return _setlocale(category, locale)
Error: unsupported locale setting
ERROR Dist-upgrade failed: 'E:Unable to correct problems, you have held broken packages.
Não sei se o erro de localidade causa isso. Tentei corrigi-lo exportando LANG
, LANGUAGE
e LC_ALL
para "en_US.utf8"
, mas não ajudou. Vou tentar consertá-lo e atualizar a pergunta se isso ajudar.
UPDATE 2:
Saída do comando locale:
$locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
UPDATE 3:
Depois de definir a localidade como "C" (graças a Gunnar Hjalmarsson), o erro de localidade desapareceu de apt.log
, mas invocar do-release-upgrade
ainda leva a erro:
DEBUG /openCache(), new cache size 47033
DEBUG need_server_mode(): can not find a desktop meta package or key deps, running in server mode
DEBUG Installing 'locales' (priority in required set 'required' but not scheduled for install)
ERROR Dist-upgrade failed: 'E:Unable to correct problems, you have held broken packages.'
e ainda sem atualização.