16.04 xenialにアップグレードしようとして以来、私は
$ apt
apt: 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
単にapt
を実行する場合。言うまでもなく、これにより何もすることが難しくなります。
ヒントはありますか?
犯人は buntu Toolchain UploadsのPPA(制限付き) からの残り物です。
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
これに対処する2つの可能性があります。
既にppa-purge
がインストールされています。それから
Sudo ppa-purge ppa:ubuntu-toolchain-r/test
問題を修正します。
Xenialの場合はlibstdc ++ 6 をダウンロードし、dpkg -i
を介してインストールすることにより、libstc ++をオーバーライドします。
UbuntuツールチェーンのPPAの問題が原因で同じ問題が発生しました。そのためにコンピューターが起動しません。彼の回答に対する@ w00kieのコメントに続いて、リンク でXenial
のパッケージlibstdc++6
のdebianを(ttyターミナルから)ダウンロードしましたhttps://packages.ubuntu.com/xenial/libstdc ++ 6 およびdpkg -i
を使用してインストール。これでコンピューターは正常に動作します。
wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_AMD64.deb
Sudo dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.10_AMD64.deb
# I also found this helpful
Sudo apt-get -f install
このエラーのため、コンプが正しく起動できませんでした。 Apt-getは動作しませんでした。Gnomeも動作しませんでした。これは、14.04から16.04にアップグレードした直後です。を入力してttyで解決しました
Sudo apt-add-repository --remove ppa:ubuntu-toolchain-r/test
この時点でapt-get
が再び機能し始め、そこからすべての問題を修正することができました。
Sudo apt-get clean
Sudo apt-get update
Sudo apt-get install -f
Sudo dpkg -a --configure
Sudo apt-get dist-upgrade
また、(更新コマンドの後に)Virtualboxをアンインストールして、後で再インストールする必要がありましたが、これは無関係だったと思います。
私は問題が私に固有のものであり、ダウンロードエラーが原因であると考えていました。
この議論は私に必要な手がかりを与えてくれました。基本的に、必要なのは、障害のあるシステムの/ usr/lib/x86_64-linux-gnuにあるlibstdc ++。so.6.0.22をlibstdc ++。so.6.0.21に置き換えることだけでした。 (新しいバージョンにはエラーがあるようです。)
これは、サムドライブから、または私の場合のように、スクラッチディスクから実行できます。
完全な詳細: https://answers.launchpad.net/ubuntu/+question/395832
ありがとうございます...
受け入れられた答えのdpkg -i
アプローチに従って、私の14.04-> 16.04アップグレードには1つではなく2つのパッケージが必要でした。
gcc-5-base_5.4.0-6ubuntu1~16.04.4_i386.deb
libstdc++6_5.4.0-6ubuntu1~16.04.4_i386.deb
この後、apt upgrade
は残りのパッケージをダウンロードし、インストールを完了することができました。
YakketyのSnappyで「conjure-up」スナップの最新バージョンがインストールされている場合、非常によく似たエラーでaptが破損します。
apt: relocation error: /usr/lib/x86_64-linux-gnu/libapt-private.so.0.0: symbol _ZN13pkgSourceList16AddVolatileFilesER11CommandLinePSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EE, version APTPKG_5.0 not defined in file libapt-pkg.so.5.0 with link time reference
このバグのため:
https://bugs.launchpad.net/snappy/+bug/1a677417
現在、私が知っている唯一の回避策は、conjure-upスナップを削除することです(以前にインストールされていた場合は、スナップを以前のバージョンに「スナップ復帰」することもできます)。
私のために働いた修正は、実際にUbuntuツールチェーンppaを追加することでした:
Sudo apt-add-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install -f
Sudo apt-get upgrade
UbuntuパッケージマネージャーのWebサイトからUbuntuのlibstdc ++ 6をダウンロードします。 (uname -a
を使用してh/wおよびs/wアーキテクチャを見つけます)。
走る
Sudo dpkg --install --auto-deconfigure libstdc++6...deb
リブート。 Ubuntuは起動するはずですが、aptは新しいパッケージをインストールしません。
依存関係を修正してシステムを最新の状態にするには、次のコマンドを実行します
Sudo apt-add-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install -f
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
Sudo apt-get autoclean && Sudo apt-get autoremove
次のように入力して修正できるはずです。
須藤apt-get -fインストール
パッケージを指定せずに。作業を行う必要があります。
I386システムでも同様の問題が発生する可能性があります。
この問題を解決するには、gcc-5-baseをバージョン5.4.1-2ubuntu1~12.04
から5.4.0-6ubuntu1~16.04.4
にダウングレードする必要もありました。
合理的なシステムへのアップグレードを完了するには、dpkg --purge on vituoso_nepomuk
とvirtualboxを使用して構成ファイルを削除する必要がありました。これは問題の原因でした(私にとって、VirtualBoxはパッケージvirtualbox-5.1で提供されますアップグレードによって無傷。)
重要なのは、dpkg --configure dbus
を機能させることでした。
Ttyタイプの画面でwgetを有効にするには、ユーザーがSudo dhclient eth0
を実行して有線イーサネット接続を有効にする必要がある場合もあります。
LinuxでUbuntuディストリビューションをアップグレードするときにこの問題が発生しました。
# ls /usr/lib/x86_64-linux-gnu/libstdc++.so.6*
libstdc++.so.6 -> libstdc++.so.6cd*
libstdc++.so.6.0.20*
libstdc++.so.6.0.21
libstdc++.so.6cd -> libstdc++.so.6.0.20*
libstdc ++。so.6-> libstdc ++。so.6cd-> libstdc ++。so.6.0.2
しかし、2つのファイルがありました:libstdc ++。so.6.0.21およびlibstdc ++。so.6.0.20
最新バージョンのlibstdc ++。so.6.0.21を指すようにシンボリックリンクを変更しました
cd /usr/lib/x86_64-linux-gnu
rm libstdc++.so.6cd
chmod +x libstdc++.so.6.0.21
ln -s libstdc++.so.6.0.21 libstdc++.so.6cd
結果:
libstdc++.so.6 -> libstdc++.so.6cd*
libstdc++.so.6.0.20*
libstdc++.so.6.0.21*
libstdc++.so.6cd -> libstdc++.so.6.0.21*
そしてすべてが正常に戻った