過去のある時点で手動のgcc
アップデートで何かを台無しにしてしまったようですが、これは14.04から16.04にアップグレードした今日まで問題になりませんでした。つまり、システムはlibstdc++6
バージョンは問題ないが、apt
(および他の多くのプログラム)はそうではないと文句を言うようです(共有ライブラリのバージョンが間違っているため)。
Sudo apt-get install --fix-broken --fix-missing
apt-get: relocation error: /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0: symbol _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
システムはグラフィカルモードを開始しません。上記の出力は非グラフィカルコンソール(Ctrl-Alt-F6
を使用)を使用して取得されたものであり、apt
自体はまったく使用できないため、私は何もできません。再インストールのような。
パッケージの管理に使用しているプログラム自体が影響を受けて使用できない場合、これらのパッケージを修正して再インストールする方法を教えてください。
最初は、ライブUSBスティックから libstdc++.so.6.0.21
をその場所に手動でコピーし、libstdc++.so.6
からリンクを作成することで、グラフィカルログインシェルを取得できました。このバージョンを使用したのは、Ubuntu 16.04のデフォルトであると思われ、エラーメッセージに記載されている「21」(「バージョンGLIBCXX_3.4.21」)も含まれているためです。
これはグラフィックススタックを満足させるように見えましたが、apt
およびlibstdc ++ 6に依存する他のプログラムでも同じエラーが残りました。いくつかの試みの後、次の手順で全体を解決できました。dpkg
を使用して、手動で(アン)インストールします。
16.04の適切なバージョンのdebファイルをダウンロードします。
wget http://mirrors.kernel.org/ubuntu/pool/main/a/apt/apt_1.2.10ubuntu1_AMD64.deb http://mirrors.kernel.org/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.4_AMD64.deb
この特定のバージョンを削除すると、正しいlibstdc ++ 6のインストールがブロックされました。
Sudo dpkg --force-depends -r libstdc++6:i386
次に、ファイルから「良い」バージョンをインストールします。
Sudo dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.4_AMD64.deb apt_1.2.10ubuntu1_AMD64.deb
そして最後に、更新と試行中に残した混乱を修正します。
Sudo apt-get install -f