Зависимости Qt в пакете deb

При создании пакета .deb я создаю файл с именем control, который содержит несколько полей:

Package: my-qt-app-name
Version: 0.01
Architecture: all
Maintainer: my name <my email address>
Installed-Size: 2
Depends: ??????
Section: extras
Priority: optional
Homepage: my homepage
Description: some description

Вы видите поле с именем Depends. Чтобы быть уверенным, что мое приложение будет работать на другом компьютере с Ubuntu (или одним из его дистрибутивов), какое значение должно быть в этом поле?

Моя версия Qt 5.1.1.

Первые строки из main.cpp содержат:

#include "mainwindow.h"
#include <QWebView>
#include <QtWidgets>
#include <QWebFrame>
#include <QDir>
#include <QApplication>
#include <QDebug>
#include <QWebPage>
#include <QObject>

person Ionică Bizău    schedule 04.11.2013    source источник
comment
Какую версию Qt вы используете?   -  person Nicholas Smith    schedule 04.11.2013
comment
@NicholasSmith Моя версия Qt — 5.1.1.   -  person Ionică Bizău    schedule 04.11.2013
comment
зависит от того, какие функции qt вы используете. Существует множество   -  person hek2mgl    schedule 04.11.2013
comment
@ hek2mgl Вы имеете в виду, какие библиотеки я использую? Я добавил первые строки из моего файла cpp.   -  person Ionică Bizău    schedule 04.11.2013
comment
Да. проверьте virtualbox-qt например. Это зависит от пакетов qt libqt4-network (>= 4:4.5.3), libqt4-opengl (>= 4:4.7.2), libqtcore4 (>= 4:4.8.0), libqtgui4 (>= 4:4.8.0) (на моей Ubuntu 12.04)   -  person hek2mgl    schedule 04.11.2013
comment
@ hek2mgl Я пробовал. Пакет был успешно установлен, но когда я запускаю свое приложение, я получаю эту ошибку: имя приложения: ошибка при загрузке общих библиотек: libQt5WebKitWidgets.so.5: невозможно открыть общий объектный файл: нет такого файла или каталога (как раньше)... Можно ли исправить эту ошибку, указав правильные зависимости в поле Depends из файла control?   -  person Ionică Bizău    schedule 04.11.2013
comment
Попробуйте libqtwebkit5 или libqt5-webkit... Кстати, почему вы этого не знаете? вы должны знать это из опыта компиляции...   -  person hek2mgl    schedule 04.11.2013
comment
давайте продолжим это обсуждение в чате   -  person Ionică Bizău    schedule 04.11.2013


Ответы (4)


Я исправил проблему, добавив следующие библиотеки в файл debian control:

Depends: libqt5webkit5-dev, qtquick1-5-dev, qtlocation5-dev, qtsensors5-dev, qtdeclarative5-dev, libsqlite3-dev

Наконец моя проблема исправлена.

person Ionică Bizău    schedule 08.12.2013
comment
Наконец-то ты это понял ;) +1 - person hek2mgl; 09.12.2013

Со строкой debhelper Зависит: будет выглядеть так

Зависит: ${shlibs:зависит}, ${разное:зависит}

Из Введение в упаковку Debian

"Зависит от:"

поле содержит список пакетов, которые должны быть установлены для работы программы в бинарном пакете. Перечисление таких зависимостей вручную — утомительная работа, чреватая ошибками. Чтобы это работало, там должен быть магический бит ${shlibs:Depends}. Другие волшебные вещи есть для debhelper. Бит {misc:Depends}. Магия shlibs предназначена для зависимостей общих библиотек, магия misc предназначена для некоторых вещей, которые делает debhelper. Для других зависимостей вам нужно добавить их вручную в Depends или Build-Depends, а магические биты ${...} работают только в Depends.

person dismine    schedule 28.11.2013

Если вы используете инструменты упаковки Debhelper, процесс сборки может автоматически обнаруживать любые зависимости вашего пакета, возникшие в результате динамического связывания библиотек с использованием оболочек вокруг инструмента dpkg-shlibdeps, и заполнять их для вас в файле debian/control.

person the paul    schedule 05.11.2013
comment
Можете ли вы объяснить больше, как я могу это сделать...? - person Ionică Bizău; 05.11.2013
comment
Чтобы дать очень хороший ответ, потребуется гораздо больше места, чем позволяют эти комментарии, но см. руководство на wiki.debian.org /IntroDebianPackaging за хороший обзор и введение. - person the paul; 06.11.2013

Вам нужен пакет libqt5webkit5 в качестве зависимости

person hek2mgl    schedule 04.11.2013
comment
Требовались дополнительные библиотеки. Теперь это работает! :-) - person Ionică Bizău; 09.12.2013