Отсутствие драйвера 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.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

15
Evgenii Legotckoi
  • May 25, 2020, 2:58 a.m.

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

    Andrei Yankovich
    • May 25, 2020, 3:01 a.m.
    • (edited)

    Решение 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.
    Вот тут

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

        Andrei Yankovich
        • May 25, 2020, 3:28 a.m.
        • (edited)

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

          o
          • May 25, 2020, 3:39 a.m.

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

            o
            • May 25, 2020, 3:41 a.m.

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

              Andrei Yankovich
              • May 25, 2020, 3:42 a.m.

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

                o
                • May 25, 2020, 3:46 a.m.
                • (edited)

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

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

                    o
                    • May 25, 2020, 3:57 a.m.

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

                      Andrei Yankovich
                      • May 25, 2020, 4:17 a.m.
                      • (edited)

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

                      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
                        • May 25, 2020, 4:25 a.m.

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

                          Andrei Yankovich
                          • May 25, 2020, 4:31 a.m.
                          • (edited)

                          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

                            Итак эта эпопея наконец подошла к концу после двух дней возьни. После того как вы мне подсказали возможные пути решения я пытался их применить, качая сорсы как с 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
                              • May 26, 2020, 6:16 a.m.

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

                                Comments

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

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:50points,
                                • Rating points-4
                                m

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:80points,
                                • Rating points4
                                m

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:20points,
                                • Rating points-10
                                Last comments
                                ИМ
                                Игорь МаксимовNov. 22, 2024, 11:51 a.m.
                                Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                Evgenii Legotckoi
                                Evgenii LegotckoiOct. 31, 2024, 2:37 p.m.
                                Django - Lesson 064. How to write a Python Markdown extension Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                A
                                ALO1ZEOct. 19, 2024, 8:19 a.m.
                                Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                ИМ
                                Игорь МаксимовOct. 5, 2024, 7:51 a.m.
                                Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                d
                                dblas5July 5, 2024, 11:02 a.m.
                                QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                Now discuss on the forum
                                m
                                moogoNov. 22, 2024, 7:17 a.m.
                                Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                                Evgenii Legotckoi
                                Evgenii LegotckoiJune 24, 2024, 3:11 p.m.
                                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                t
                                tonypeachey1Nov. 15, 2024, 6:04 a.m.
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                NSProject
                                NSProjectJune 4, 2022, 3:49 a.m.
                                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                                Follow us in social networks