Как мне создать PPA для работающей программы?

Давайте предположим, что у меня есть рабочее приложение, написанное на C, C ++ или Python. Я хочу создать PPA Launchpad, чтобы другие могли легко установить его из пакета. Пожалуйста, дайте пошаговые инструкции, чтобы сделать это от начала до конца. (Или предоставьте ссылку, которая делает то же самое;)

  • Имеет ли значение язык программирования? (Может ли это быть сценарий bash?)
  • Нужно ли что-либо добавлять в мою сборку?
  • Куда должна быть установлена ​​сборка?
  • Как определить зависимости ?
  • Как использовать зависимости?
  • Как создать .deb?
  • Что мне нужно сделать перед загрузкой на Launchpad?
37
задан 1 March 2011 в 15:49

2 ответа

Это очень широкий вопрос. Я постараюсь ответить на него как можно больше, но это определенно WON't будет пошаговой инструкцией. Это связано с тем, что не существует пошагового алгоритма создания пакета. То, как вы это сделаете, зависит от многих факторов, в основном от типа пакета (приложение, библиотека), структуры исходного текста и многих деталей.

К счастью, есть подробное руководство на http://packaging.ubuntu.com

Я постараюсь немного помочь вам с пониманием всего процесса, так что, когда вы будете немного больше с ним знакомы. Руководство по упаковке включает в себя ресурсы для дополнительной помощи.


Прежде всего, вы должны понимать, что создание пакета (файла .deb) - это отдельный процесс от создания PPA. Создание PPA - это вопрос перехода в профиль вашего Launchpad'а и нажатия на ссылку "Создать новый PPA". Вот и всё. Она создана, работает, но пуста. Чтобы загрузить пакет, Вы должны сначала создать его. Но позвольте мне сначала ответить на некоторые из Ваших второстепенных вопросов.

  • Язык программирования НЕ имеет значения вообще. Это может быть C++ приложение, Bash скрипт, Brainfuck Hello World, один README файл или набор крутых фотографий. Пакеты могут содержать любой файл. Во время установки пакет распаковывается в корне ("/") вашей файловой системы. Таким образом, они могут поместить некоторые файлы в папку с двоичными файлами, добавить некоторые фоновые рисунки в набор GNOME по умолчанию или предоставить пользователю Bash скрипт.
  • Вам DO нужно добавить что-нибудь в исходные тексты. Это должен быть каталог верхнего уровня с именем "debian". Там будут некоторые файлы с подробностями пакета - они будут использоваться для определения типа пакета и т.д.
  • Dependencies перечислены в одном из этих файлов (среди прочих подробностей). Откуда их взять? Это просто другие пакеты, которые использует ваше приложение. Разработчик приложения будет знать, какие библиотеки и ресурсы требуются его программе, так что у него не должно быть проблем с их перечислением.
    • Некоторые инструменты, используемые для сборки пакета (pbuilder), могут заполнять зависимости автоматически, вероятно, определяя, что требуется вашему приложению во время компиляции.
  • Также настоятельно рекомендуется использовать AutoTools. Это еще одна вещь, которую вам может понадобиться добавить, но, вероятно, почти каждая программа уже использует их. AutoTools - это набор чрезвычайно полезных программ - automake, autoconf и autoscan, и это лишь некоторые из них. Когда вы компилируете и устанавливаете программу с известным ./configure && make && make install, то автоинструменты используются для автоматической работы с исходными текстами, для подготовки других ресурсов, входящих в состав исходных текстов к установке, и для извлечения результата компиляции в соответствующее место (чтобы ответить на ваш вопрос: Собранная компиляция будет извлечена в MANY отдельных местах. Двоичные файлы перейдут в /usr/local/bin, документы в /usr/local/share/docs и т.д. Более того, Двоичные файлы из пакета попадут даже в разные места, например, в /usr/bin. Как справиться со сложной компоновкой каталогов? Используйте AutoTools - он будет заботиться об этом автоматически, и поэтому они так полезны).

Сборка пакета .deb может выглядеть как действительно сложный процесс, но это не так уж и сложно. Я настоятельно рекомендую вам официальное руководство Ubuntu по созданию пакетов: http://packaging.ubuntu.com

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

  1. Init некоторые инструменты, используемые для сборки пакетов.
  2. Get the source
  3. Create the ./debian directory and fill it with required data
  4. Build the package with debuild [Это должно создать набор файлов, включающий в себя *. dsc, *_source.build, *_source.changes, которые отвечают за данные о пакете и как с ним обращаться (у вас также будет исходный текст .tar.gz)]
  5. Проверьте, все ли работает, запустив pbuilder локально (он возьмет все эти файлы, упомянутые выше, и попытается объединить их в . deb, автоматически собрав исходный текст с помощью AutoTools - вот почему они важны для упаковки [откровенно говоря - нет - вы можете обойтись без них или с некоторыми альтернативами, но это самый простой подход, а другой может потребовать некоторой продвинутой настройки, так как вам нужно будет проинструктировать строителя, как собирать исходный текст (используя . файл /debian/rules) - но это не для новичков]) - если вы просто хотите получить пакет .deb, это сделано.

Теперь вы должны загрузить его в ваш PPA, что описано на этой странице помощи: https://help.launchpad.net/Packaging/PPA/Uploading

  1. Использовать dput для загрузки этих файлов в Launchpad
  2. Launchpad запустит сборщик на их компьютерах, и сгенерирует пакеты в чистом окружении
  3. Наконец, пакеты должны появиться в PPA.

Как вы видите, создание PPA - это не так просто. Но не пугайтесь, это тоже не так уж и сложно. Более того, я рекомендую Вам не поощрять разработчиков использовать PPA, так как, вероятно, они не будут Вас слушать, так как им пришлось бы делать какую-то дополнительную работу (а если бы они захотели, то уже сделали бы это), но, возможно, Вы захотите попробовать поддержать разработчиков Ubuntu и все сообщество и предоставить им подготовленные Вами пакеты :)

Желаю Вам удачи в создании пакетов, надеюсь, мой ответ окажется Вам полезным :)

Вашему другу, Рафал Цеслак

33
ответ дан 1 March 2011 в 15:49
  • Прежде чем вы сможете загрузить свой пакет, вам нужно будет настроить его на . deb упаковку, смотрите Ubuntu PackagingGuide.

  • После того, как вы сможете собрать пакет для вашего программного обеспечения, смотрите документацию по PPA Launchpad PPA. Она будет вести вас от создания PPA до загрузки вашего пакета.

5
ответ дан 1 March 2011 в 15:49

Другие вопросы по тегам:

Похожие вопросы: