ЕС
Евгений Сальников25 травня 2020 р. 02:50

Отсутствие драйвера SQLite в пакете Qt 4 на Linux

Qt, Linux, SQLite

Дорого времени суток, работаю на Astra-linux, возникла необходимость в SQLite, драйвер которой ,вроде как, стандартный при установке Qt. Мною были установлены пакеты qt4-default и qtcreator, и в итоге драйвера там не оказалось, но вместе с этими двумя пакетами подтянулся и пакет qt5-default в котором есть данный драйвер. Узнал при помощи QLibraryInfo что qt ищет плагины по следующему пути: usr/lib/x86_64_linux_gnu/qt4/plugins, после этого пытался закинуть туда драйвер из пакета qt5, но безуспешно, qtcreator не видит этот драйвер. Сам qt5 в котором уже есть необходимый драйвер использовать не могу в силу требований. Кто нибудь сталкивался с такой проблемой? Или может кто знает пути решения?. Что я уже перепробовал: закинуть драйвер который лежит в qt5/plugins/sqldrivers/ во все возможные другие папки (например - в корень проекта или usr/lib и т. д.), изменить путь где происходит поиск плагинов использую команды как setLibraryPath и addLibraryPath.

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

15
Evgenii Legotckoi
  • 25 травня 2020 р. 02:58

Добрый день.
Ищите, где скачать Qt 4 отдельно.
Из репозитория никто Qt не устанавливает, постоянно какие-то проблемы вылазят вроде ваших.

    Andrei Yankovich
    • 25 травня 2020 р. 03:01
    • (відредаговано)

    Решение 1 самое правельно.
    Избавится от Astra-linux (она не безопасна и не допилина).

    Решение 2
    https://github.com/qt/qt
    Клоним и билдим с нужными плагинами.
    ./configure -prefix ~/myNewQt4 -opensource -confirm-license -release -nomake examples -nomake tests -ccache -plugin-sql-sqlite
    make -j$nproc

    make install

    Опции я взял из qt5 так как сам ни разу не билдил 4 й qt. Если они не подойдут поищите на форумах опции для qt4.
    Вот тут

      ЕС
      • 25 травня 2020 р. 03:20

      Спасибо за ответы, буду пробовать. А от Astra-linux я бы с удовольствием избавился, но нельзя.

        Andrei Yankovich
        • 25 травня 2020 р. 03:28
        • (відредаговано)

        @Evgenij Sal'nikov как я тебя понимаю.

          o
          • 25 травня 2020 р. 03:39

          расскажите об этом нашим силовикам, они вот не в курсе и с интересом выслушают ваше экспертное мнение.

            o
            • 25 травня 2020 р. 03:41

            почему вы используете решение на qt4.x, если в астре 1.6 доступна версия 5.11?

              Andrei Yankovich
              • 25 травня 2020 р. 03:42

              Уже, их не интересует что под капотом.

                o
                • 25 травня 2020 р. 03:46
                • (відредаговано)

                тут есть огромная кнопка "сообщить об уязвимости", не плохо бы ей воспользоваться. тык

                  ЕС
                  • 25 травня 2020 р. 03:46

                  Да мне тоже интересно почему, но сказано qt4, стабильность, и тонна кода написана уже, не один год 4-ый qt используется. Да и астру 1.6 я буквально позавчера поставил. У большинста персонала до сих пор 1.4-1.5

                    o
                    • 25 травня 2020 р. 03:57

                    там 5.3 как минимум, но раз уж так, качать отсюда сорцы, а не с гитхаба, и собирать руками.

                      Andrei Yankovich
                      • 25 травня 2020 р. 04:17
                      • (відредаговано)

                      а клинится ты как будешь ?
                      на гихабе прямое зерколо, гараздо удобнее.

                      git clone https://github.com/qt/qt
                      cd qt 
                      git checkout v4.8.7
                      git submodule update --init --recursive
                      ./configure -prefix ~/myNewQt4 -opensource -confirm-license -release -nomake examples -nomake tests -ccache -plugin-sql-sqlite
                      make -j$nproc
                      make install
                      

                      в случае неуспеха выполнения configure выполнять git clean -xdf; git submodule foreach git clean -xdf

                        o
                        • 25 травня 2020 р. 04:25

                        Потому что ее не надо в систему ставить, т.к. пользователи не будут тянуть что-то с гитхаба и устанавливать. Эту библиотеку придется поставлять вместе с прогой. Соответсвенно, эту библиотеку надо билдить и работать с ней как с собственной библиотекой.

                          Andrei Yankovich
                          • 25 травня 2020 р. 04:31
                          • (відредаговано)

                          make install

                          установит qt в ~/myNewQt4 так как там префикс стоит в конфигуре

                          затем делаем так

                          ~/myNewQt4/bin/qmake myProject.pro
                          

                          после этого выполняем

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake 
                          

                          получаем дистрибутив со свежими только необюходимыми библиотеками qt
                          если боимся за рантайм то выполняем

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake -deploySystem
                          

                          если нужна еще инсталяшка

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake -deploySystem qif
                          

                          если проект из кучи библиотек

                          cqtdeployer -bin myBildetApp -qmake ~/myNewQt4/bin/qmake -deploySystem qif -libDir ~/myprojectSourceDir -recursiveDepth 5
                          

                          Внимание cqtdeployer работает только под астрой 1.6

                            ЕС
                            • 25 травня 2020 р. 09:27

                            Итак эта эпопея наконец подошла к концу после двух дней возьни. После того как вы мне подсказали возможные пути решения я пытался их применить, качая сорсы как с git так и с архива сайта qt, собирай их по разному. То у меня после использования make -j$nproc зависало все напроч и вылетало, то ./configure выдавал ошибки bash, то make install выдавал подобные ошибки :ошибка выполнения рецепта для цели obj/release/pcre_exec.o, вообщем крутил я все это как мог. Параллельно ища на просторах интренета, то что я еще не попробовал и наткнулся на следующую тему где написано что если поискать в неком synaptic по тегу qt sqlite то можно узнать о существовании пакета libqt4-sql-sqlite. Так как я пользуюсь linux-образными системами совсем немного, что такое synaptic Я не знаю, поэтому первое что я сделал это написал sudo apt install synaptic в консоле, на что получил ответ что synaptic уже установлен. Следом я загуглил что такое synaptic, и потом следуя аналогии apt написал sudo synaptic install libqt4-sql-sqlite, на что мне открылся менеджер пакетов synaptic. В нем в разределе "Средства разработки" я стал искать данный пакет(libqt4-sql-sqlite), но не нашел, зато нашел пакеты связанные с самим qt и увидел что для qt5 установлен пакет qt5-dev-tools а для qt4 такой пакет не установлен, заподозрив не ладное я стал его устанавливать и первой же строчной увидел, что сейчас будет установлен пакет libqt4-sql-sqlite, ну все думаю дело сделано. Все установилось полез проверять в usr/lib/x86_64_linux_gnu/qt4/plugins и там действительно появилась папка sqldrivers а в ней нужная мне либа. И вот запустив qtcreator и готовый наконец продолжить проект я получил по лицу и снова тот же ворох ошибок, что драйвера нету - база данных не открыта. Посидев минут 10, пересобрав проект пару раз и сделав пару перезагрузок, вспомнил о том что когда мне нужно работать с raw сокетами astra вынуждает меня запускать qtcreator через sudo и в этом случае открывается фантомный qtcreator который нужно настраивать отдельно и который создает для проектов свои файлы с настройками, и вот только после запуска через sudo очистив проект и перезапустив qmake, все наконецто заработало как надо.

                              BlinCT
                              • 26 травня 2020 р. 06:16

                              Вот честно непонимаю почему до сих пор используют qt4, там же столько всего отсутствует, много фишек и возможностей нету там. То есть используя такое старье приходится много писать самому а не использовать готовое и провереное из 5 версии.
                              Если бы мне сказали что надо использовать на работе 4 версию не мотивировав такое решение что на такой работе будет много проблем и проще уйти от туда.

                                Коментарі

                                Only authorized users can post comments.
                                Please, Log in or Sign up
                                AD

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Результат:50бали,
                                • Рейтинг балів-4
                                m
                                • molni99
                                • 26 жовтня 2024 р. 01:37

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Результат:80бали,
                                • Рейтинг балів4
                                m
                                • molni99
                                • 26 жовтня 2024 р. 01:29

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Результат:20бали,
                                • Рейтинг балів-10
                                Останні коментарі
                                ИМ
                                Игорь Максимов22 листопада 2024 р. 11:51
                                Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                Evgenii Legotckoi
                                Evgenii Legotckoi31 жовтня 2024 р. 14:37
                                Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                A
                                ALO1ZE19 жовтня 2024 р. 08:19
                                Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                ИМ
                                Игорь Максимов05 жовтня 2024 р. 07:51
                                Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                d
                                dblas505 липня 2024 р. 11:02
                                QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                Тепер обговоріть на форумі
                                Evgenii Legotckoi
                                Evgenii Legotckoi24 червня 2024 р. 15:11
                                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                t
                                tonypeachey115 листопада 2024 р. 06:04
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                NSProject
                                NSProject04 червня 2022 р. 03:49
                                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                                9
                                9Anonim25 жовтня 2024 р. 09:10
                                Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                                Слідкуйте за нами в соціальних мережах