Какой самый простой способ сделать исходный и двоичный пакет, когда вы являетесь первоначальным автором?

Руководства по пакетированию Debian, которые я читал до сих пор, предполагают, что упаковщик не является сопровождающим и поэтому должен иметь оригинальные tar-архивы, патчи и т. Д.

Если у меня есть приложение, которое собирает с помощью «make» (не autotools и т. Д.), Какое руководство по упаковке мне нужно?

Я не хочу делать бессмысленные тарболы и пустые патчи.

Я хочу исходный и бинарный пакеты.

3
задан 8 January 2018 в 19:46

3 ответа

Пакет Debian как оригинальный автор, этот тип пакетов называется native .

  • debian папка является частью дерева исходного кода (исходного архива).
  • Нет исправлений Debian.

Ссылки:

Для Руководств много, но попробуйте придерживаться официальных Debian / Ubuntu. Кроме того, всегда проверяйте дату его обновления, прежде чем вступать в него. Я бы порекомендовал начать здесь:

Учебное пособие по пакетированию Debian , которое дает четкий обзор восходящего потока работ, используемого дистрибутивом. (многие учебники упускают этот момент)

1
ответ дан 8 January 2018 в 19:46

Никто не хочет ничего бессмысленного. И будьте уверены, сообщества, которые приняли упаковку .deb (Debian, Ubuntu, Mint, ...), обсудили все, что там есть.

Основная идея об упаковке заключается в том, что существует:

  • тарбол, с которым не приходится спорить ни о каком распределении, а именно дерево исходных кодов, не зависящее от распределения. Если это уже знает, как вести себя в определенных дистрибутивах - хорошо, если нет, то нет. Это tarball, который должен быть назван yourname_version.orig.tar. (Xz, gz, bz2), который будет найден при создании пакета.

  • тарбол, в котором есть все, что относится к конкретному выпуску Debian, в отдельной папке с именем - debian. Одна из причин его разделения, к которому вопрос уже подготовлен, заключается в том, что отдельные пакеты обычно не совпадают с теми, которые поддерживают само программное обеспечение. Это помогает при обновлении программного обеспечения, поэтому оно не может перезаписать упаковку. И мы уверены, что в исходном дереве исходных текстов нет скрытых изменений. И разработчик RedHat не хотел бы видеть биты, специфичные для debian, поэтому каждый рад отделить папку debian от остальных.

Итак, есть два архива. Не слишком много накладных расходов, я склонен думать. Основная проблема заключается в целостности дерева исходных данных.

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

- это все, что они когда-либо хотят. Другие довольны

  • пакетом dh-make, который предоставляет dh_make, который в основном автоматически упаковывает

, и еще раз другие взглянут на

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

Удачи.

1
ответ дан 8 January 2018 в 19:46

Две вещи, которые я делаю:

  1. Создаю папку debian

    В папке я создаю следующие файлы по мере необходимости (т.е. не создавайте файлы, которые вам не нужны) :

     журнал изменений
    совместимость
    контроль
    правила
    shlibs.local
    источник/формат
    источник/опции
    имя-проекта.docs
    имя-проекта.install
    имя-проекта.preinst
    название проекта.postinst
    имя-проекта.prerm
    имя-проекта.postrm
    имя-проекта.service
    имя-проекта.logrotate
    имя-проекта.cron.daily
    имя-проекта.cron.monthly
     ...
    
  2. Затем я собираю пакет командой:

     dpkg-buildpackage -us -uc
    

    Действительно, я использую скрипт. Эта команда засорит ваше исходное дерево всевозможными файлами. Итак, со своей стороны, я сначала делаю копию, а затем запускаю команду в копии. Затем я могу удалить копию.

     cd имя-проекта
    ВЕРСИЯ=`dpkg-parsechangelog --show-field Версия`
    компакт диск ..
    cp -r имя-проекта имя-проекта-${ВЕРСИЯ}
    cd имя-проекта-${ВЕРСИЯ}
    dpkg-buildpackage -us -uc
    

В debian/source/options у меня есть:

tar-ignore = "tmp"
tar-ignore = ".git"

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

Другой способ — использовать систему PPA по адресу https://launchpad.net/. Преимущество этого способа заключается в том, что полученный пакет очень легко установить на любую машину. Он также общедоступен, если вы хотите поделиться полученными пакетами (если вы не хотите делиться, то, очевидно, вам не следует использовать этот пакет).

0
ответ дан 17 November 2020 в 16:54

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

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