Руководства

Введение в разработку Ubuntu: часть 5. Упаковка.

Это пятая статья в серии, объясняющей основы разработки Ubuntu, не требующей огромного количества знаний, инструментов, концептов, процессов и инфраструктуры. Если вам понравилась статья или вы нашли в ней что-то проблемной, пожалуйста, проявляйте активность в комментариях.

CD-cover-450x450

Упаковка

Вы нашли отличный кусочек софта или прогамму, и вам нужно поместить её в Ubuntu или в PPA-репозиторий, так что вы решили упаковать его.

Проверяем программу

Первый шаг в упаковке - это получить tar-файл релиза из upstream (мы зовём авторов приложений "upstream"), и проверить, что он компилируется и выполняется.

Это руководство расскажет вам об упаковке, на примере простого приложения под названием KQRCode, которое было опубликовано на KDE-apps.org. Загрузите версию 0.4 с Sourceforge и поместите её в новую директорию.

Теперь распакуйте его:

$ tar xf kqrcode-0.4.tar.gz

$ cd kqrcode-0.4

Это приложение использует систему сборки CMake, так что можно выполнить cmake для подготовки к компиляции:

$ mkdir build

$ cd build

$ cmake ..

CMake проверит наличие требуемых зависимостей, в нашем случае нам говорится, что требуется Qt и KDE-библиотеки. Нам также потребуется GCC, можно установить build-essential, который содержит его в себе. Вы можете установить их (если у вас их нет) и снова выполнить CMake:

$ sudo apt-get install build-essential libqt4-dev kdelibs5-dev

$ cmake ..

Теперь вы можете скомпилировать исходники:

$ make

Выполнив это, вы получите некоторые ошибки об отсутствующих заголовках. Это значит, что есть остальные библиотеки, не проверенные CMake'ом. Сделайте заметку, чтобы не забыть напомнить upstream-у об этой проблеме. packages.ubuntu.com может быть использозован для нахождения пакетов из этого заголовка, установите эти пакеты и продолжите компиляцию:

$ sudo apt-get install libqrencode-dev libzbar-dev libzbarqt-dev

$ make

Если компиляция успешно завершилась, вы можете установить и запустить программу:

$ sudo make install

$ kqrcode

Создаём пакет

bzr-builddeb включает плагин для создания нового пакета из шаблона, шаблон является контейнером к команде dh_make:

$ sudo apt-get install dh-make

$ bzr dh-make kqrcode 0.4 kqrcode-0.4.tar.gz

Когда вас спросят тип пакета, введите s для одиночного бинарного.

Это импортирует код в бренч и создаст директорию упаковки debian/. Посмотите на её содержание. Большинство добавленных файлов требуются только для особых пакетов (например, модули Emacs), так что вы можете начать с удаления опциональных файлов-образцов:

$ cd kqrcode/debian

$ rm *ex *EX

Теперь вы можете кастомизировать каждый из файлов.

В debian/changelog смените номер версии на версию Ubuntu version: 0.4-0ubuntu1 (upstream-версия 0.4, Debian-версия 0, Ubuntu-версия 1). Также смените unstable на текущий разрабатываемый релиз Ubuntu, например на precise.

Большинство работы по упаковке пакетов делает группа скриптов, названная debhelper.

control содержит всю metada пакета. Первый параграф описывает исходники. Второй и дальнейшие абзацы описывают бинарные пакеты для сборки. Нам нужно добавить пакеты, требуемые для компиляции приложения в Build-Depends: так что сделайте так:

Build-Depends: debhelper (>= 7.0.50~), cmake, libqt4-dev, kdelibs5-dev,

libqrencode-dev, libzbar-dev, libzbarqt-dev

Вам также нужно будет вписать описание программы в поле Description:.

copyright требует заполнения согласно лицензии из источника upstream. В файле kqrcode/COPYING это GNU GPL 3 или позже.

docs содержат документацию upstream, которая по вашему мнению должна быть включена в финальный пакет.

README.source и README.Debian требются только, если у пакета есть нестандартные возможности, так что м может удалить их.

source/format можно оставить как есть, он описывает версию формата исходного пакета, и это должен быть 3.0 (quilt).

rules - самый сложный файл. Это Makefile, который компилирует код и помещает всё в бинарный пакет. К счастью, большинство этой работы делается debhelper'ом, так что универсальный % Makefile содержит всё, что нам нужно уже в авто режиме.

Наконец, закоммитьте код в ваш упаковочный бренч:

$ bzr commit

Собираем пакет

Теперь нам нужно проверить, что у нас удачно собран пакет, и собрать бинарный .deb-пакет:

$ bzr builddeb

Это должно скомпилировать пакет и поместить его в ../build-area. Вы можете просмотреть содержание пакета с помощью:

$ lesspipe kqrcode_0.4-0ubuntu1_amd64.deb

Установите пакет и проверьте его на работоспособность:

$ sudo dpkg --install kqrcode_0.4-0ubuntu1_amd64.deb

Следующие шаги

Даже если бинарный .deb-пакет собран, могут иметься баги. Множество ошибок можно обнаружить автоматически с помощью утилиты lintian, которую мы можем "натравить" и на исходный метадата-файл .dsc, и на бинарный .deb-пакет:

$ lintian kqrcode_0.4-0ubuntu1.dsc

$ lintian kqrcode_0.4-0ubuntu1_amd64.deb

Описание каждой проблемы, о которой будет сообщено, вы можете найти на сайте lintian.

После исправления в пакете, вы можете пересобрать пакет без необходимости сборки с нуля, используя:

$ debuild -nc

FIXME - здесь эквивалент UDD? Баг https://bugs.launchpad.net/bzr-builddeb/+bug/816376

$ bzr builddeb -S

$ cd ../build-area

$ pbuilder-dist oneiric build kqrcode_0.4-0ubuntu1.dsc

Когда у вас с пакетом будет всё нормально, вы захотите дать просмотреть его другим. Вы можете загрузить бренч на Launchpad для просмотра:

$ bzr push lp:~/+junk/kqrcode-package

Вы можете также загрузить исходный пакет в REVU для просмотора:

$ bzr builddeb -S

$ cd ..

$ dput revu kqrcode_0.4-0ubuntu1.dsc

Комментарии   

 
0 #1 Denese 24.03.2017 10:36
Excellent site you've got here.. It's hard to find high quality writing like yours nowadays.
I really appreciate individuals like you! Take care!!


Also visit my page ... https://www.viagrasansordonnancefr.com/viagra-naturel-recette/: https://www.viagrasansordonnancefr.com/viagra-naturel-recette/
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Аккаунт




Мы в соц. сетях






Подпишись на нашу RSS

Новости Hi-Tech

Как избавиться от уведомлений в браузере

Очень часто при просмотре web-страниц выскакивают сообщения рекламного характера, которые сильно раздражают и сбивают с толку. Если вы входите в число этих людей, то должны знать, как отключить уведомления в...

Что нового в юбилейной версии браузера F…

На днях стал доступным релиз обновленного веб-браузера от Mozilla. Представленный Firefox 50 выпущен в версиях для десктопов с популярными операционными системами, а также для мобильных устройств, работающих на Android. Одним...

Ремонт ноутбуков - выбираем сервис

Ноутбуки вещь до конца не изученная пользователями, настолько как компьютер. Ведь не каждый захочет разбирать свой ноутбук, и смотреть как он устроен. В отличие от ноутбука компьютер разбирал почти каждый,...

Как выбрать чехол для мобильного телефон…

После приобретения смартфона большинство сразу же начинают выбирать аксессуары к нему. Это вполне объяснимо, поскольку многие из них делают эксплуатацию девайса безопасной и более комфортной. В первую очередь это касается...

Go to top