web-dev-qa-db-ja.com

Ubuntu 18.4 libQt5Core.so.5:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません

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

どうすれば修正できますか?

3
jobycxa

すべての「見つからない」ライブラリについて、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コマンドを使用してファイルを見つけることができますが、それらをインストールした場合、その可能性はほとんどありません。

5
ubfan1

私にとっては、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)を動作させることができました

1
tolos

すべてのlibqt5パッケージを再インストールしてください。同様の場合に役立ちました:

Sudo apt install --reinstall libqt5widgets5 libqt5gui5 libqt5dbus5 libqt5network5 libqt5core5a

ldd $(which qbittorrent)を再インストールすると、すべてのライブラリ.soファイルがその場所に表示されます。

1
Envek