Ubuntu 18.04があります。
仮想ボックスの起動中にエラーが発生します
$ virtualbox
VirtualBox: supR3HardenedMainGetTrustedMain: dlopen("/usr/lib/virtualbox/VirtualBox.so",) failed: libQt5Core.so.5: cannot open shared object file: No such file or directory
$ ldd /usr/lib/virtualbox/VirtualBox.so | grep Qt
libQt5X11Extras.so.5 => /usr/lib/x86_64-linux-gnu/libQt5X11Extras.so.5 (0x00007f7dcec8e000)
libQt5Core.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Widgets.so.5 => not found
libQt5PrintSupport.so.5 => /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so.5 (0x00007f7dcea1f000)
libQt5OpenGL.so.5 => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 (0x00007f7dce7c8000)
libQt5Gui.so.5 => not found
libQt5Core.so.5 => not found
libQt5Widgets.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Core.so.5 => not found
libQt5Widgets.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Core.so.5 => not found
$ apt-file search libQt5Gui.so.5
libqt5gui5: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
libqt5gui5: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.9
libqt5gui5: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5.9.5
システムにはlibqt5 *パッケージがありますが、使用してそれらのいくつかをリストできません
$ ls /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
ls: cannot access '/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5': No such file or directory
どうすれば修正できますか?
すべての「見つからない」ライブラリについて、libQt5Gui.so.5のaptファイル検索で行ったように、それらのパッケージを識別します。次に、Sudo apt-get installを使用してパッケージをインストールします。次に例を示します。
Sudo apt-get install libqt5gui5
パッケージをインストールすると、ライブラリが適切な場所に配置され、ライブラリが検出されます。
ファイルが存在しない場合、間違った場所にインストールされた(手動で強制された)か、間違ったアーキテクチャ(AMD64ではなくi386であるため、/ usr/lib/i386-linux-gnuにある)またはインストール正しく実行されませんでした(コマンドでパッケージのステータスを確認します:
dpkg -l | grep libqt5
適切にインストールされたパッケージのステータスは「ii」になります。
システム上の別の場所にある場合は、locateコマンドを使用してファイルを見つけることができますが、それらをインストールした場合、その可能性はほとんどありません。
私にとっては、libqt5gui5
パッケージはすでにインストールされています。私は他の答えのように再インストールしようとしましたが、まだエラーが発生しました:
...
ImportError: libQt5Core.so.5: cannot open shared object file: No such file or directory
https://github.com/dnschneid/crouton/wiki/Fix-error-while-loading-shared-libraries:-libQt5Core.so.5 で同様の問題を見つけました
カーネルは非常に現実的ですが(私には)難解な理由のために少なくとも3.15である必要があります:「Qt 5.10は、カーネル3.15以降でのみ使用可能なrenameat2システムコールを使用します」。非常に長いスレッドを読みたい場合は、こちらをご覧ください。
https://bbs.archlinux.org/viewtopic.php?id=232682
...
Sudo strip --remove-section=.note.ABI-tag /usr/lib64/libQt5Core.so.5
上記のコマンドは、カーネル内で存在しないものを探しているコードを「取り除き」、モジュールをロードできるようにします。
実際にDebianテスト(bullseye)3.12-1-AMD64を実行しています。ライブラリへのパスは/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
なので、私の場合のコマンドは
strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
その後、アプリ(Electrum)を動作させることができました
すべてのlibqt5パッケージを再インストールしてください。同様の場合に役立ちました:
Sudo apt install --reinstall libqt5widgets5 libqt5gui5 libqt5dbus5 libqt5network5 libqt5core5a
ldd $(which qbittorrent)
を再インストールすると、すべてのライブラリ.soファイルがその場所に表示されます。