Ubuntu 18.4 libQt5Core.so.5:无法打开共享对象文件:没有此文件或目录

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

我怎样才能解决这个问题?

答案1

对我来说,该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 使用 renameat2 系统调用,该调用自内核 3.15 起才可用”。如果您想阅读很长的帖子,请看此处:

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)运行了

答案2

对于所有“未找到”的库,请像使用 apt-file 搜索 libQt5Gui.so.5 一样识别它们的包。然后使用 sudo apt-get install 安装包,例如:

sudo apt-get install libqt5gui5

软件包的安装应该将库放在正确的位置,以便找到它们。


如果文件不存在,则可能是它们安装在了错误的位置(手动强制到某处),或者是错误的体系结构(i386 而不是 amd64,因此应该在 /usr/lib/i386-linux-gnu 中),或者安装没有正常运行(使用以下命令检查软件包的状态:

dpkg -l | grep libqt5  

正确安装的软件包将具有状态“ii”。

如果文件位于系统的其他位置,您可以使用locate命令来查找它们,但是如果您安装了它们,那么这种可能性就不大。

答案3

尝试重新安装所有 libqt5 软件包。它在类似情况下对我有帮助:

sudo apt install --reinstall libqt5widgets5 libqt5gui5 libqt5dbus5 libqt5network5 libqt5core5a

重新安装后,ldd $(which qbittorrent)所有库 .so 文件均显示在各自的位置上。

答案4

我有可行的解决方案。从官方网站选择并下载适合您发行版的 .deb 包:https://wkhtmltopdf.org/downloads.html

接下来,我针对 Ubuntu 20.04 的步骤:

  1. 获得https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
  2. sudo apt--fix-broken 安装./wkhtmltox_0.12.6-1.focal_amd64.deb

相关内容