libgcc-s1 または libstdc++6 をアップグレードできません... なぜでしょうか?

libgcc-s1 または libstdc++6 をアップグレードできません... なぜでしょうか?

最善を尽くしたにもかかわらず、アップグレードを拒否する 2 つのパッケージが私の (jammy) システムに残っています。

enie...:~$ sudo apt list --upgradable
Listing... Done
libgcc-s1/jammy 13.1.0-2ubuntu2~22.04 amd64 [upgradable from: 12.1.0-2ubuntu1~22.04]
libstdc++6/jammy 13.1.0-2ubuntu2~22.04 amd64 [upgradable from: 12.1.0-2ubuntu1~22.04]

私は適性検査に、状況について何を知っているかを尋ねました。

enie...:~$ sudo aptitude why-not libgcc-s1
i   libcanberra-gtk-module:i386 Depends libc6:i386 (>= 2.4)                 
i A libc6:i386                  Depends libgcc-s1:i386                      
i A libgcc-s1:i386              Breaks  libgcc-s1 (!= 12.1.0-2ubuntu1~22.04)

... そして

enie...:~$ sudo aptitude why-not libstdc++6
i   libxml2:i386    Depends libicu70:i386 (>= 70.1-1~)           
i A libicu70:i386   Depends libstdc++6:i386 (>= 5.2)             
i A libstdc++6:i386 Breaks  libstdc++6 (!= 12.1.0-2ubuntu1~22.04)

これらのパッケージがなぜ保留されているのか、私にはよく分かりません。誰か知っていますか?

これにより、gcc-13 をインストールできなくなり、困っています :'-(

答え1

問題の直接的な原因は、Ubuntu 以外のソースを多用しすぎていることです。Ubuntu 以外のソース A は、Ubuntu 以外のソース B のパッケージと互換性のないパッケージを提供しています。

問題の根本的な原因、つまりUbuntu以外のソースを大量に必要とする理由は、ニーズに合わないUbuntuのリリースを使用していることです。フランケンデビアン新しい非 Ubuntu ソフトウェアを古い LTS リリースにボルトで固定することによって、あなたは自分の巨大な創造物が火を恐れすぎてあなたの命令に従わないことを知りました。

LTS リリースは、新しいアプリケーション バージョンや依存関係に継続的に更新されるようには設計されていません。LTS リリースは、5 年間にわたって一貫したワークフロー (最小限の変更) を望むエンタープライズ ユーザーを対象としています。

代わりに、Ubuntu 23.04 または Ubuntu の他の 6 か月リリースをお試しください。これらのリリースでは、新しい更新バージョンと依存関係のスナップショットが作成されます。安定した 6 か月のプラットフォームが提供され、その後、次の 6 か月リリースでプラットフォーム全体が再度更新されます。

関連情報