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
Как я могу это исправить?
5 ответов
Для меня 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 (яблочко) 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) работать
Для всех "не найденных" библиотек определите их пакет, как вы выполнили поиск в apt-файле для 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 для поиска файлов, если они находятся где-то еще в системе, но если вы их установили, такая возможность маловероятна.
Попробуйте переустановить все пакеты libqt5. Это помогло мне в подобном случае:
sudo apt install --reinstall libqt5widgets5 libqt5gui5 libqt5dbus5 libqt5network5 libqt5core5a
После переустановки ldd $(which qbittorrent)
отображены все библиотеки.so файлы на своих местах.
Установлена зависимость для устранения этой проблемы.
Вы можете захотеть бежать
sudo apt --fix-broken install
чтобы исправить эти ошибки:
The following packages have unmet dependencies:
virtualbox-6.1 : Depends: libqt5opengl5 (>= 5.0.2) but it is not going to be installed
Depends: libqt5x11extras5 (>= 5.6.0) but it is not going to be installed
Depends: libsdl1.2debian (>= 1.2.11) but it is not going to be installed
Recommends: libsdl-ttf2.0-0 but it is not going to be installed
У меня есть рабочее решение. Выберите и загрузите пакет .deb для своего дистрибутива с официального сайта: https://wkhtmltopdf.org/downloads.html
Далее мои шаги для Ubuntu 20.04:
- wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
- sudo apt --fix-broken install ./wkhtmltox_0.12.6-1.focal_amd64.deb