Зависимости Ubuntu / Debian для упаковки mono gtk # приложения

#c# #deployment #ubuntu #mono #gtk#

#c# #развертывание #ubuntu #mono #gtk#

Вопрос:

Я упаковываю свое приложение Mono GTK # для Ubuntu / Debian (.deb).

  • Как мне узнать, какие зависимости нужно перечислить в управляющем файле?
  • Какие из них являются стандартными для самих mono и gtk #? Это те, которые заканчиваются на -dev?

Я просмотрел документацию по упаковке Debian, но эти примеры кажутся чрезмерно сложными из-за перехватов после установки и т. Д.

Примеры в документации mono в основном касаются дистрибутивов с исходными кодами с automake и т. Д. Я просто хочу поместить туда двоичные файлы.

Ответ №1:

Я только что прошел процесс упаковки моего приложения GTK # mono (с большим запасом) для debian.

Вот мой файл управления:

 Source: widemargin
Section: gnome
Priority: extra
Maintainer: Debian CLI Applications Team <pkg-cli-apps-team@lists.alioth.debian.org>
Uploaders: Daniel Hughes <trampster@gmail.com>
Build-Depends: debhelper (>= 7.0.50~), cli-common-dev (>= 0.7.1), mono-xbuild (>= 2.6.7), libgtk2.0-cil-dev (>= 2.12.10), mono-devel (>= 2.6.7), libglade2.0-cil-dev (>= 2.12.10)
Standards-Version: 3.9.2
Homepage: https://bitbucket.org/trampster/widemargin
Vcs-Git: git://git.debian.org/git/pkg-cli-apps/packages/widemargin.git
Vcs-Browser: http://git.debian.org/?p=pkg-cli-apps/packages/widemargin.git

Package: widemargin
Architecture: all
Depends: ${cli:Depends}, ${misc:Depends}
Description: bible reading and study application
 Wide Margin is a bible reading and study application. It has a focus on
 speed and simplicity. Features include, as you type searching and passage
 navigation, familiar browser based interface, full navigation history and 
 a built in reading planner which will have you read the old testament 
 once and the new testament twice every year.
  

Здесь важно отметить, что если вы используете $ {cli: Depends}, $ {misc: Depends} в вашем разделе Depends, зависимости будут автоматически отсортированы для вас.
Однако вам придется вручную настроить зависимости от сборки.

Второй совет — перейти на irc-канал #debian-cli, он содержит все упаковщики mono для debain. Они очень полезны и будут спонсировать ваш пакет для вас, когда он будет готов.

Комментарии:

1. Спасибо за информацию. Почему вы включаете xbuild в Build-Depends? Содержит ли этот пакет исходный код? И работает ли трюк с $ {cli: Depends}, $ {misc: Depends} также с предварительно скомпилированными двоичными файлами?

2. Xbuild — это версия msbuild для mono. Это то, что я использую для создания своих двоичных файлов. И да, мой пакет собран из исходного кода (если вы хотите, чтобы он был в debain, он должен быть таким). Я не знаю ответа на ваш последний вопрос, я бы перешел на irc-канал @debian-cli и спросил там.

3. Хорошо, итак, как я уже упоминал, я хочу упаковать двоичные файлы. Это не должен быть пакет для репозиториев Debian, я буду распространять сам. Но спасибо за ваш совет, я поспрашиваю там, возможно, я смогу вернуть услугу.

Ответ №2:

Взгляните на этот учебник:

https://wiki.ubuntu.com/PackagingGuide/Mono

Я сам еще не пробовал, но пока это кажется кратким.

Комментарии:

1. Спасибо за ваш ответ, но, как я уже сказал, я просмотрел эти документы. В зависимости, на которые вы ссылаетесь, говорится: «В этом руководстве предполагается, что вы знаете, какие библиотеки mono требуются для сборки пакета. В этом примере вам понадобится libgtk2.0-cil-dev, libvte0.16-cil-dev, libwebkit-cil-dev . Таким образом, вы добавляете их в строку build-depends в управляющем файле «. Итак, как мне узнать, применимо ли это также к моему приложению?

2. Если ваше приложение компилируется, у вас уже есть вся необходимая информация. Например, если ваше решение для компиляции из командной строки или monodevelop включает gkeyfile-sharp в себя, вы можете выдать a dpkg -S gkeyfile-sharp.dll для получения имени пакета среды выполнения и a dpkg -S gkeyfile-sharp.pc для получения пакета разработки.

3. И буду ли я распространять пакет разработки или пакет среды выполнения?