Когда мы устанавливаем программное обеспечение в Ubuntu/Debian, часто мы скачиваем .deb-пакет и выполняем установку с его помощью. deb-пакеты - это переносимые файлы, которые работают в различных версиях систем Ubuntu/Debian Linux. Иногда вам может понадобиться преобразовать ваш код или приложение в deb-пакет, чтобы сделать его переносимым. В этой статье мы узнаем, как собрать deb-пакет в Ubuntu/Debian Linux.
Как собрать deb-пакет в Debian Linux
Ниже описаны шаги по сборке deb-пакета из папки приложения.
1. Назовите свой deb-пакет
Сначала нам нужно назвать наш желаемый deb-пакет. Стандартная нотация для именования deb-пакетов выглядит следующим образом.
1 | [проект]_[мажорная версия].[минорная версия]-[ревизия пакета] |
Например, вы можете назвать свой проект следующим образом
1 | helloworld_1.0-1 |
2. Создайте каталог с именем пакета
Далее создайте новый каталог с тем же именем, что и ваш пакет, включая номера версий.
1 | mkdir helloworld_1.0-1 |
Затем поместите в эту папку различные файлы и папки вашей программы. Вот некоторые примеры файлов и папок, которые мы добавляем в нашу новую папку. Вы должны поместить свои собственные файлы и папки.
1 2 3 4 | mkdir helloworld_1.0-1/usr mkdir helloworld_1.0-1/usr/local mkdir helloworld_1.0-1/usr/local/bin cp "~/Projects/Hello World/helloworld" helloworld_1.0-1/usr/local/bin |
3. Создание метаданных
Далее мы создадим специальные файлы метаданных, которые менеджер пакетов будет использовать для установки вашей программы на клиентскую систему.
1 2 | mkdir helloworld_1.0-1/DEBIAN gedit helloworld_1.0-1/DEBIAN/control |
Файл метаданных, как видно из названия, подробно описывает пакет. Ниже приведен пример записей, которые вы можете добавить в файл метаданных.
1 2 3 4 5 6 7 8 9 | Package: helloworld Version: 1.0-1 Section: base Priority: optional Architecture: i386 Depends: libsomethingorrather (>= 1.2.13), anotherDependency (>= 1.2.6) Maintainer: Your Name <you@email.com> Description: Hello World When you need some sunshine, just run this small program! |
В приведенном выше файле метаданных,
- Package - указывает имя пакета
- Version - манор + минорная версия (manor + minor version)
- Section - указывает область применения, к которой относится deb-пакет. Сопровождающие Deb Archive классифицируют программы по различным разделам, таким как игры, электроника, java и т.д. Нам нужно указать раздел, применимый к нашей программе. Ниже приведена более подробная информация о разделах.
- Priority - указывает приоритет пакета для установки пользователем. Обратите внимание, что это обязательное поле, которое может иметь значения required, standard, important и optional. Здесь "необязательный" - это значение поля приоритета и не означает, что он необязателен.
- Architecture - совместимая архитектура ОС для данной программы
- Depends - зависимости
- Maintainer - Email и имя разработчика/организации, поддерживающей данный пакет.
- Description - краткое описание пакета, чтобы другим было легко понять, что это такое и что он делает. Важно добавить пробел перед каждой строкой в описании.
Это не все доступные поля для файла метаданных. Вот исчерпывающий список полей, которые могут входить в файл метаданных deb-пакета.
4. Сборка Deb-пакета
Допустим, текущий каталог содержит папку программы helloworld_1.0-1, тогда выполните следующую команду для сборки пакета из вашей папки.
1 | dpkg-deb --build helloworld_1.0-1 |
Вот и все. Теперь вы можете поделиться этим пакетом с другими, разместить его на своем сайте или загрузить в онлайн-репозитории.
Заключение
В этой статье мы узнали, как собрать deb-пакет из папки программы. Вы можете настроить его в соответствии с вашими требованиями.