Как создать пакет Ubuntu с помощью скрипта инициализации system V?

2 команды не эквивалентны :учитывать обработку ошибок:

cat <file that doesn't exist> | lessсоздаст пустой поток, который будет передан в конвейерную программу... таким образом, вы получите дисплей, на котором ничего не отображается.

< <file that doesn't exist> lessне сможет открыть бар, а затем вообще не откроет меньше.

Попытка изменить первое на второе может привести к поломке любого количества сценариев, ожидающих запуска программы с потенциально пустыми входными данными.

0
22.03.2020, 00:05
1 ответ

Вот основы создания пакетов. Они применимы к широкому спектру систем, от FreeBSD и OpenBSD до Arch Linux, Debian Linux и Ubuntu Linux.

Пакет делают:

  • Получение дерева исходного кода с помощью git, subversion или чего-то подобного, либо путем загрузки и распаковки файла архива.
  • Установка предварительных -необходимых пакетов сборки , предоставляющих инструменты, необходимые программному обеспечению для компиляции.
  • Применение системных исправлений -для -операционной системы -.
  • Компиляция двоичных файлов и файлов данных, но это делает конкретное программное обеспечение.
  • Построение промежуточного дерева каталогов, в котором двоичные файлы и файлы данных для упаковки расположены в этом дереве так, как они будут расположены в /после установки пакета.
  • Использование инструмента для создания пакетов в сочетании с манифестом доставки и некоторыми другими метаданными для создания пакета.

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

Детали варьируются от операционной системы к операционной системе или, скорее, от системы упаковки к системе упаковки. Например, различается структура файлов манифеста пакета. И метапакет Debian build-essentialне является универсальной вещью. Но это общие принципы.

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

Инструменты Debian несколько отличаются. На самом деле существует три разных стиля инструментов Debian, включая "deb helper" .

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

Как правило, пакет сам создает соответствующее промежуточное дерево, если ему указывается целевой каталог для «установки» вместо каталога /. Если вы упаковываете свое собственное программное обеспечение, вы должны предоставить механизм для правильной «установки» в автономную -промежуточную область. (У меня есть пакеты "slashpackage" со скриптом package/stage, который поднимает все из command/, manual/, guide/, library/и др. в плацдарм, пригодный для /usr.)

Наконец, :Нет, вы не предоставляете сценарий ван Смуренбурга rcдля запуска и остановки служб. В Ubuntu это не было родным способом с 2006 года , почти полтора десятилетия на данный момент. Вы предоставляете системные файлы модулей. Даже если вы хотите предоставить скрипты van Smoorenbrg rcдля Debian людей, которые не используют systemd, вы предоставляете скрипты нового стиля van Smoorenburg rc, представленные в 2014, на основе примера на странице руководства init-d-script, содержание которого сильно отличается от того, о чем вам расскажет самая (устаревшая )WWW-документация.

Теперь вы можете вернуться к подробностям debian/control, debian/rulesи т. п. на этих (и других )WWW-страницах.

Дополнительная литература

1
28.04.2021, 23:19

Теги

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