Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Нужна помощь в создании deb-пакета  (Прочитано 4571 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GrandPeter

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
    • Проект Голос это простой граф. интерфейс  для festival
Нужна помощь в создании deb-пакета
« : 17 Сентября 2010, 23:52:09 »
Мне не хватало графического интерфейса для Festival. Написал на Qt простенький: вставил текст, выбрал язык (голос), нажал кнопочку - ПК произнес набранный текст. Использование Qt позволило использование программки  в Linux и MS Windows. Уверен такая "штуковина" пригодится не только мне (да и вообще этот шаг был бы красивым завершением начального этапа моего проекта) и хочу сделать для нее deb пакет. Прочитал несколько статей, но к сожалению не сумел создать пакет.

 Прошу помощи в создании пакета, для начала с бинарными файлами, а потом и с исходниками. Как я видел для Qt есть какие-то проблемы.
 
сайт проекта
http://sourceforge.net/projects/golos/

Итак вот что и как у меня получилось:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 23 Сентября 2010, 00:50:38 от GrandPeter »
Всё что не происходит - всё к лучшему!

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #1 : 18 Сентября 2010, 20:17:40 »
Ок. Поможем.....

 я лично вот так это в свое время решил (очень помогли люди на форуме, особенно Lion-Simba) .... взял DEB-пакет SKYPE, распаковал его, посмотрел и все понял......

по сути дела нужно создать папку,

затем папку DEBIAN, там лежат файлы описания пакета, посмотри в скайпе....

остальное это папки, образ, куда что будет копироваться.....
например, если есть папка /usr/bin/myprogram."exe" то она туда и скопируется.....
зависимости прописываются в фвйле описания пакета.......


вот мой скрипт для сборки, lintian - тестирует пакет и пишет что не так....



#!/bin/sh
#strip --strip-unneeded your-lib
fakeroot dpkg-deb -b package/ ./
lintian -c niieorplayer_0.0.4_i386.deb


 вопросы?

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #2 : 18 Сентября 2010, 20:42:58 »
Это конечно способ хороший, но как же зависимости? Прописывать их вручную?
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн Not eXist

  • Активист
  • *
  • Сообщений: 916
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #3 : 18 Сентября 2010, 20:46:01 »
Всё же расписано по шагам:
https://wiki.ubuntu.com/PackagingGuide/Complete

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #4 : 18 Сентября 2010, 20:47:17 »
Это конечно способ хороший, но как же зависимости? Прописывать их вручную?

Ну а какие с этим проблемы? Прописать festival и нужные части QT......

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #5 : 19 Сентября 2010, 01:45:55 »
При наличии сорцов (а они есть у ТС) лучше использовать deb helper . Ссылку на пошаговый мануал Not eXist дал. По началу это кажется чем-то запутанным и непонятным, но один два раза пройдя этот круг понимаешь, что всё просто.

Попробуй, если не получится пиши о проблемах. Готов помочь.

Ещё могу как пример дать ссылку на репозиторий в котором я работаю над деб пакетом для библиотеки которую пишу:  https://code.launchpad.net/~vestnik/+junk/QRemoteSignal-deb (деб пакетом я занимаюсь не в основном репозитории проекта, так удобней). Там посмотри на Makefile и на папку debian. Самая важная часть в debian/rules.

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #6 : 19 Сентября 2010, 08:22:09 »
Если лениво собирать пакет самому, то можно посмотреть в сторону launchpad-а, если мне не изменяет память, там как то можно загружать исходники и получать готовые пакеты.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн Not eXist

  • Активист
  • *
  • Сообщений: 916
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #7 : 19 Сентября 2010, 08:27:34 »
Если лениво собирать пакет самому, то можно посмотреть в сторону launchpad-а, если мне не изменяет память, там как то можно загружать исходники и получать готовые пакеты.
Для того, чтобы загружать исходники, их всё равно нужно "приготовить". В любом случае нужно будет написать makefile и  и отредактировать пяток файлов в ./debian. Как всё это делается, написано по ссылке, которую я дал выше.

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #8 : 19 Сентября 2010, 08:37:58 »
Так вот это как работает, я думал там достаточно на этапе "make install" загрузить исходники и получить пакет. Not eXist, спасибо за разъяснение.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #9 : 19 Сентября 2010, 21:09:13 »
Так вот это как работает, я думал там достаточно на этапе "make install" загрузить исходники и получить пакет. Not eXist, спасибо за разъяснение.
Нет, там ты делаешь честный деб пакет и загружаешь подписанный пакет исходников, а ланчпад только делает бинарные сборки под разные архитектуры

Оффлайн GrandPeter

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
    • Проект Голос это простой граф. интерфейс  для festival
Re: Нужна помощь в создании deb-пакета
« Ответ #10 : 19 Сентября 2010, 23:52:29 »
Спасибо, что откликнулись!
Вскоре я попробую по шаговой инструкции собрать свой пакет.

Пока предваряющий "правильную" сборку вопрос:
Написал приграмму используя QtCreator.
Для определения зависимостей от dll файлов в MS Windows есть спец. утилита.
Как мне определить в Ubuntu от каких пакетов зависит моя программа?
Ясно что не от всех тех, которые я установил для программирования.
Всё что не происходит - всё к лучшему!

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #11 : 20 Сентября 2010, 03:08:18 »
Есть ldd но если пользоваться deb_helper'ом (а именно с его помощью создают пакет в том мануле который здесь упоминался), то он зависимости от динамических библиотек будут определяться автоматически при сборке бинарного пакета и подставляться в сгенерированный пакет. Только нужно убедиться что команда dh_shlibdeps не закоментированна в описании цели binary-arch в файле debian/rules шаблон которого тебе сгенерирует dh_make.

Оффлайн maximum2000

  • Активист
  • *
  • Сообщений: 403
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #12 : 20 Сентября 2010, 18:40:05 »
В любом случае нужно протестировать на чистой ОС (например в VirtualBOX'е)....

Оффлайн VestniK

  • Активист
  • *
  • Сообщений: 594
    • Просмотр профиля
Re: Нужна помощь в создании deb-пакета
« Ответ #13 : 20 Сентября 2010, 18:56:22 »
В любом случае нужно протестировать на чистой ОС (например в VirtualBOX'е)....
Для этих целей есть спец тулза: pbuilder, именно для тестирования корректности деб пакетов и их зависимостей в "чистом окружении".

Оффлайн GrandPeter

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
    • Проект Голос это простой граф. интерфейс  для festival
Re: Нужна помощь в создании deb-пакета
« Ответ #14 : 20 Сентября 2010, 21:22:35 »
Всё же расписано по шагам:
https://wiki.ubuntu.com/PackagingGuide/Complete

Сегодня попытался собрать пакет как это сделано в примере с "Hello".
1. создал архив с исходниками  goloslinux_0.1.orig.tar.gz
2. папку с именем goloslinux-0.1
3. в нее скопировал исходники (не компилированные)
4. выполнил dh_make
(Нажмите, чтобы показать/скрыть)

в результате получаю  папку дебиан с файлами, часть удаляю командой
rm *.ex *.EXредактирую и получаю файлы вида:
changelog
(Нажмите, чтобы показать/скрыть)
control
(Нажмите, чтобы показать/скрыть)
rules
(Нажмите, чтобы показать/скрыть)
Как я догадываюсь (из https://forum.ubuntu.ru/index.php?topic=11609.0)
фаил rules должен быть более содержательный нежели мой. В приведенной мной ссылке есть фраза:
нужно раскомментировать       dh_install(т.е. убрать # в начале строки)
без этого мы получим пустой пакет.
5. упрямо иду по инструкции, и выполняю debuild
в отчете в конце получаю подозрительные речи:
(Нажмите, чтобы показать/скрыть)

А результирующий пакет goloslinux_0.1-1_amd64.deb оказывается пустым, хотя в папке с исходниками есть скомпилированный файл.

Что же я упускаю?
« Последнее редактирование: 21 Сентября 2010, 01:12:42 от GrandPeter »
Всё что не происходит - всё к лучшему!

 

Страница сгенерирована за 0.02 секунд. Запросов: 21.