
Как следует из названия, я хочу создать пакет Ubuntu, который люди могли бы загрузить, apt
и я хотел бы настроить пакет с помощью скрипта System V, чтобы люди могли запускать и останавливать службу (например, mysql
).
Я уже прочитал эту статью.https://packaging.ubuntu.com/html/packaging-new-software.htmlно это слишком просто и я не до конца понял. Как мне сообщить упаковщику, в какие папки что помещается?
Я немного запутался и буду признателен за любую помощь. Спасибо.
Это руководство действительно полезноhttps://blog.serverdensity.com/how-to-create-a-debian-deb-package/
Также вот соответствующая документация, которую использует руководство.https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroУпаковка Debian
решение1
Вот основы создания пакетов. Они применимы к широкому спектру систем, от FreeBSD и OpenBSD до Arch Linux, Debian Linux и Ubuntu Linux.
Пакет создается следующим образом:
- Получение исходного кода через git, subversion или что-то подобное, либо путем загрузки и распаковки архивного файла.
- Установка предварительного требованияпакеты сборки, предоставляя инструменты, необходимые программному обеспечению для компиляции.
- Применение исправлений для каждой операционной системы.
- Компиляция двоичных файлов и файлов данных, однако это делает конкретное программное обеспечение.
- Создание дерева каталогов промежуточного размещения, в котором двоичные файлы и файлы данных для упаковки располагаются так же, как они будут располагаться
/
после установки пакета. - Использование инструмента создания пакетов в сочетании с транспортной декларацией и некоторыми другими метаданными для создания пакета.
Затем его помещают в репозиторий пакетов, либо тот, который вы запускаете сами, либо тот, который публикуют сопровождающие операционной системы. В последнем процессе есть много логистических и политических проблем. В обоих случаях вам нужно иметь дело с подписыванием.
Детали различаются от операционной системы к операционной системе, или, скорее, от системы упаковки к системе упаковки. Например, различается структура файлов манифеста пакета. Иbuild-essential
метапакет Debianэто не универсальная вещь. Но это общие принципы.
Итак, все эти бессмысленные инструменты на странице Ubuntu — это высокоуровневые оболочки для этого, которые выполняют такие функции, как поддержка репозитория управления исходным кодом для всех дополнительных вещей, которые вы добавляете поверх оригинального исходного кода.
Инструментарий Debian несколько отличается. Фактически, существует три разных стиля инструментария Debian, включая"deb helper".
Также обратите внимание, что инструкции Debian от разных людей в Интернете часто ориентированы на то, что вы загружаете существующийИсходный пакет Debianи его создание, а не написание всех вспомогательныхМатериалы по упаковке Debianс нуля. Такой пакет имеет метаданные Debian-упаковки, файлы управления и исправления, уже предоставленные в исходном дереве. Это оригинальный источникплюс пакеты Debian.
Обычно пакет сам создает соответствующее дерево промежуточных пакетов, если вместо каталога указать целевой каталог для "установки" /
. Если вы упаковываете собственное программное обеспечение, вам нужно предоставить механизм для правильной "установки" в самодостаточную область промежуточных пакетов. (У меня есть пакеты "slashpackage" со скриптом, package/stage
который поднимает все из command/
, manual/
, guide/
, library/
, и т. д. в область промежуточных пакетов, подходящую для /usr
.)
Наконец: Нет, вы не предоставляете rc
скрипт Ван Смуренбурга для запуска и остановки служб. Это не было нативным способом в Ubuntuс 2006 года, почти полтора десятилетия на данный момент. Вы предоставляете файлы юнитов systemd. Даже если вы хотите предоставить rc
скрипты van Smoorenbrg дляДебианлюди, которые не используют systemd, вы предоставляетеновый стильСкрипты ван Смуренбурга rc
, представленные в 2014 году на основе примера на init-d-script
странице руководства, по содержанию существенно отличаются от того, что вам может рассказать большая часть (сильно устаревшей) документации WWW.
Теперь вы можете вернуться к подробностям debian/control
, debian/rules
, и т. п. на этих (и других) страницах WWW.
дальнейшее чтение
- Где находится /etc/init.d/skeleton?
- https://askubuntu.com/a/707750/43344
- https://unix.stackexchange.com/a/332441/5132
- Джонатан де Бойн Поллард (2018). "Добавление сверху упаковки, специфичной для операционной системы"Ген на slashpackage. Часто задаваемые ответы.