DigitalOceanサーバーでUbuntu 12.04を実行しています。
後のリリース(12.04-> 14.04-> 16.04)にアップグレードしたいのですが、上記の間違いによりアップグレードできません。 DigitalOceanにはアップグレードのチュートリアルが用意されていますが、問題の解決方法が説明されていないため、役に立ちません。コマンドラインを使用して、同様の質問のすべての回答も試しました。問題は本質的に here および here と同じです。
"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"
/etc/apt/sources.list
に追加のソースを追加していません。 しかし、私はDigitalOceanミラーのみがリストされており、ubuntuデフォルトサーバーはリストされていないことに言及する必要があります。/var/log/dist-upgrade/apt.log
で壊れていると記載されています。 (それらはすべて壊れているようです)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 }')
などを試してみましたが、すべてが大丈夫だと思っているため、何もしません。問題を修正する方法について他に提案はありますか?
UPDATE:sources.listのDigitalOceanサーバーの問題が問題であると考えたため、元のUbuntuサーバーに変更しました。現在、apt.logに2つのエラーのみが記録されています。
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.
ロケールエラーが原因かどうかはわかりません。 LANG
、LANGUAGE
およびLC_ALL
を"en_US.utf8"
にエクスポートして修正しようとしましたが、役に立ちませんでした。私はそれを修正し、それが役立つ場合は質問を更新しようとします。
UPDATE 2:ロケールコマンドの出力:
$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:ロケールを「C」に設定した後(Gunnar Hjalmarssonに感謝)、ロケールエラーはapt.log
からなくなりましたが、do-release-upgrade
を呼び出してもまだエラー:
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.'
まだアップグレードはありません。
コメントでの長い議論の概要:
do-release-upgrade
locales
パッケージが存在しなかったため、実行に失敗しました。したがって、解決策は、必須パッケージであるlocales
をインストールすることでした。
OPはaptitudeを代わりにapt-get installを使用してlocales
をインストールしようとすると、依存関係の問題を処理しました。これは、インストールを拒否するだけでなく、解決策を提案しました。