Ubuntu – Ubuntu 18.4 libQt5Core.so.5: cannot open shared object file: No such file or directory

18.04qt5virtualbox

I have Ubuntu 18.04.

While launching virtual box I am getting an error

$ 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

The system has libqt5* packages but I cannot list some of them using

$ 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

How can I fix this?

Best Answer

  • For me, the libqt5gui5 package was already installed. I tried reinstalling like in the other answer, but still got the error:

    ...
    ImportError: libQt5Core.so.5: cannot open shared object file: No such file or directory
    

    I found a similar problem at https://github.com/dnschneid/crouton/wiki/Fix-error-while-loading-shared-libraries:-libQt5Core.so.5

    The kernel needs to be at least 3.15 for a very real but (to me) esoteric reason: "Qt 5.10 uses the renameat2 system call which is only available since kernel 3.15". If you want to read a very long thread, look here:

    https://bbs.archlinux.org/viewtopic.php?id=232682

    ...

    sudo strip --remove-section=.note.ABI-tag /usr/lib64/libQt5Core.so.5
    

    The above command "strips out" a piece of code which is looking in the kernel for something not there, and allows the module to load.

    I'm actually running Debian testing (bullseye) 3.12-1-amd64. The path to my library is /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 so the command in my case is

    strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
    

    After that, I was able to get the app (Electrum) working