Как собрать debian пакет с Qt 5 приложением. Полное руководство

qt_debian_ubuntu

В большинстве случаев при решении различных задач мы оказываемся на распутье. Можно быстро решить проблему не разбираясь в тонкостях просто следуя советам и кратким руководствам найденных на просторах интерната. Альтернативным путем является длительное изучение документации и решение задачи с четким пониманием ее тонкостей.

Золотой серединой является следование руководству, которое в полной мере описывает важные моменты и  предоставляет ссылки для более подробного ознакомления. Я попробую представить именно такое руководство  для тех, кто хочет собрать deb пакет c Qt 5 приложением для debian / ubuntu.

 Создание Debian пакета с Qt приложением

Мы будем собирать пакет содержащий само Qt приложение и совместно используемые *.so библиотеки Qt (shared libraries) на операционной системе Ubuntu 12.04 LTS.

Настройка окружения

Шаг 1

Для начала нам потребуется установить пакеты, которые необходимы для сборки проектов.

 Шаг 2

Далее укажем какие компоненты использовать pbuilder. Для этого в домашней директории текущего пользователя необходимо создать файл с .pbuilderrc

И создадим окружение для сборки пакета
$ sudo pbuilder create

Создание окружения займет около 15 минут, поэтому можете приступать к следующему шагу пока выполняются необходимые операции. Подробнее о pbuilder можно прочитать в Руководстве начинающего разработчика Debian

Подготовка проекта

Шаг 3

Теперь необходимо изменить файл проекта. В данном примере проект называется myproject.

В строке 5 мы указываем путь куда будет установлен исполняемый файл нашего приложения.
В строке 6 указано имя исполняемого файла и конфигурационного файла qt.conf содержимое которого представлено ниже.

В строках 8 и 9 указываем где расположены библиотеки Qt и сторонних разработчиков которые использует наше приложение и куда их стоит скопировать при установке пакета.

 ! Не забудьте скопировать используемые библиотеки в /lib перед тем как продолжать.

Как определить какие Qt библиотеки копировать?

Обязательно скопируйте плагины Qt находящиеся в директории QT_DIR/platforms/plugins. Остальные зависимости можно определить с помощью утилиты ldd:

 Шаг 4

Упакуем исходный код приложения в резервный .origin архив tar

Имя пакета (в примере myproject)  может содержать только строчные буквы (a-z), цифры (0-9), знаки плюс (+) и минус (-) и точки (.). Оно должно быть не короче двух символов, должно начинаться с буквы или цифры и не должно быть уже использовано для другого пакета. Рекомендуем ограничиться длиной до 30 символов.

Вместо x.x укажите версию приложения, например 1.0 (также можно указать версию в формате 1.0.0) так, чтобы она содержала только буквы или цифры (0-9A-Za-z), плюс (+), тильду (~) и точку (.). Она должна начинаться с цифры (0-9). Если возможно, лучше ограничиться длиной до 8 символов

! Обратите внимание, что имя пакета и версия в .origin пакете разделяются с помощью нижнего подчеркивания «_», а не минус «-«.

Подробнее об именовании пакета можно прочитать Руководстве начинающего разработчика Debian

Сборка debian  пакета

 Шаг 5

Скопируйте ваш проект в папку директорию myproject-x.x или создайте символическую ссылку.

Далее необходимо выполнить

Теперь необходимо отредактировать файлы changelog, copyright и control

Шаг 6

Редактируем rules файл

/Opt/Qt5.1.0/5.1.0/gcc_64/bin/qmake  — Путь к утилите qmake в вашей системе

ln -sf /usr/share/project/bin/app_name pwd/debian/porject/usr/bin/app_name— Символическая ссылка для запуска Qt приложения

Шаг 7

Возвращаемся в директорию с проектными файлами, которую мы создавали в пункте 5 и собираем пакет:

В директории уровнем выше должен появиться debian пакет:

 Шаг 8

Проверим содержимое пакета и установим его

 

Если у вас не установлена утилита tree, то ее как обычно можно установить с помощью
sudo apt-get install tree

Быстрая пересборка debian пакета

Для быстрой пересборки пакета после внесения изменений просто выполните в директории
myproject-x.x

Материалы по теме

Руководстве начинающего разработчика Debian
По мотивам — http://blog.naver.com/hseok74/120193947673