crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Linux, Qt, deb-пакеты
breeve
  опции профиля:
сообщение 29.3.2010, 21:02
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 188
Регистрация: 26.12.2009
Пользователь №: 1336

Спасибо сказали: 9 раз(а)




Репутация:   1  


Хочется сделать из исходника полноценный deb пакет. В принципе как сделать сам пакет более или менее знаю, если только делать из чужих исходников. Сделал пакет но он не ставится, думаю это связано с тем что, перед запуском dh_make нужно поковырять makefile. И я не знаю что делать с графой install. Что туда писать?
И все это началось с того что мне нужно было поставить иконку на бинарник. Узнал что чтобы выставить иконку в папке /usr/share/apllication desktop файл, а в /usr/share/pixmaps должна быть иконка. но как их сделать/затолкать туда?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
novichkov
  опции профиля:
сообщение 29.3.2010, 21:32
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 64
Регистрация: 20.3.2008
Из: Северодвинск
Пользователь №: 128

Спасибо сказали: 6 раз(а)




Репутация:   1  


1. В файле rules в секции build-stamp не прописывать команду qmake, а до генерации нужных файлов командой dh_make самому сделать qmake *.pro (если используешь cmake, то все проще).
2. В том же файле в секции install вручную прописываешь, какие файлы и куда копировать при установке пакета. Примерно так:

        mkdir -p '$(CURDIR)/debian/qoobar/usr/bin'
    cp -f -- bin/qoobar '$(CURDIR)/debian/qoobar/usr/bin'
    mkdir -p '$(CURDIR)/debian/qoobar/usr/share/applications'
    cp qoobar.desktop '$(CURDIR)/debian/qoobar/usr/share/applications'
    mkdir -p '$(CURDIR)/debian/qoobar/usr/share/icons/hicolor/48x48/apps'
    cp src/icons/qoobar.png '$(CURDIR)/debian/qoobar/usr/share/icons/hicolor/48x48/apps/qoobar.png'

Здесь путь $(CURDIR)/debian/qoobar/ текущей папки, в которой производится сборка пакета, будет в конечном итоге в самом пакете заменен на /

3. Указав, какие файлы куда пойдут, можно оздать .desktop файл:

[Desktop Entry]
Type=Application
Icon=qoobar
Exec=qoobar
Comment=Qoobar - tagger for classical music
Name=Qoobar
Categories=Audio;Qt;AudioVideo;
Name[ru_RU]=qoobar
Comment[ru_RU.UTF-8]=Qoobar - редактор тегов для классической музыки


Icon -это название файла рисунка без расширения, который должен храниться в /usr/share/icons/hicolor/48x48/apps
Exec - команда на выполнение программы.

Еще. Думаю, при создании пакета нет смысла копировать файлы пакета в /usr/local - как, по правилам, должно быть в секции install файла project.pro. Именно поэтому я методом проб и ошибок пришел к явному копироанию файлов в файле rules. Существует способ при создании makefile задать переменную DESTDIR, но как это сделать для qmake, я не знаю.

Прилагаю архив с нужными для создания пакета файлами - это control и rules для моего собственного проекта qoobar.

И еще. Не знаю насчет папки /usr/share/pixmaps, но собранный мною пакет прекрасно устанавливается и в меню gnome в разделе Аудио и видео видна иконка моей программы.
Прикрепленные файлы
Прикрепленный файл  debian.tar.gz ( 1.49 килобайт ) Кол-во скачиваний: 439
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Vass
  опции профиля:
сообщение 29.3.2010, 23:15
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 46
Регистрация: 17.3.2009
Из: Россия, Рыбинск
Пользователь №: 617

Спасибо сказали: 8 раз(а)




Репутация:   0  


mkdir в инсталл вроде как можно не совать.
после того как выполниться dh_make появиться папка debian естественно
вот в ней есть файлик dirs.
В этом файлике можно указать какие директории потребуются и инсталлятор их потом сам прекрасно создаст, если мне не изменяет память.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
NordWest
  опции профиля:
сообщение 2.4.2010, 0:37
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 86
Регистрация: 26.11.2008
Пользователь №: 433

Спасибо сказали: 1 раз(а)




Репутация:   0  


К сожалению плохо понял, предыдущих ораторов. Может проблемы разные...
Некоторые программы в debian требуют для себя библиотеки qt тех версий, которые в репозитории, например через synaptic,имеют более старые версии.
Скачал исходники версии 4.6.2, сделал как сказано в руководстве по установке embedded версии. Т.е. встроенной, как я понял. Сконфигурировал, собрал и установил в папку по умолчанию: /usr/local/Trolltech/QtEmbedded-4.6.2 . Добавил в файле /etc/profile PATH на bin в этой папке. Перезагрузился на всякий случай.
Во-первых, эта версия, которая обнаружилась в qt-creator, собирается, но программа выдает при запуске в консоль какую-то фигню про сервер...
Во-вторых, библиотеки нужных версий лежат в папке /usr/local/Trolltech/QtEmbedded-4.6.2/libs и толку от них. Приложения всё равно их не видят. Точнее сообщают, что установлена всё та же старая версия.
Я что, чего то не доставил? Или не то ставил? Если просто перенести содержимое QtEmbedded-4.6.2 в папку /usr, например, то я достигну цели? Либо нужно пересобрать и при установке сразу указать папку /usr?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 2.4.2010, 7:13
Сообщение #5


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Так создай sh-файл в котором внеси в переменные среды нужные пути. Ну или укажи пути в креаторе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
NordWest
  опции профиля:
сообщение 2.4.2010, 18:53
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 86
Регистрация: 26.11.2008
Пользователь №: 433

Спасибо сказали: 1 раз(а)




Репутация:   0  


А чем этот способ отличается от изменения файла /etc/profile? И что, указав в PATH папку libs, я заставлю чичтему считать библиотеки оттуда установленными?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 15:33