web-dev-qa-db-ja.com

12.04から14.04にアップグレードするときにコマンドラインから「アップグレードを計算できません」の問題を修正する方法

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"
  • 私はPPAを追加していません
  • /etc/apt/sources.listに追加のソースを追加していません。 しかし、私はDigitalOceanミラーのみがリストされており、ubuntuデフォルトサーバーはリストされていないことに言及する必要があります。
  • 900を超えるパッケージが/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.

ロケールエラーが原因かどうかはわかりません。 LANGLANGUAGEおよび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.'

まだアップグレードはありません。

1
rightaway717

コメントでの長い議論の概要:

do-release-upgradelocalesパッケージが存在しなかったため、実行に失敗しました。したがって、解決策は、必須パッケージであるlocalesをインストールすることでした。

OPはaptitudeを代わりにapt-get installを使用してlocalesをインストールしようとすると、依存関係の問題を処理しました。これは、インストールを拒否するだけでなく、解決策を提案しました。

1