Gentoo

Как писать Gentoo Ebuild

Как писать Gentoo Ebuild
Если у вас нет желаемого пакета Gentoo, не бойтесь! Вы можете построить свой собственный! Для этого вам понадобится некоторый опыт компиляции программного обеспечения с использованием известных инструментов Linux make, gcc и других. Чтобы создать пакет Gentoo, emake используется для управления и настройки процесса. Используя эти инструменты, вы можете создавать очень тонкие пакеты, которые работают быстро и надежно.

Структура Ebuild

Чтобы создать свой собственный ебилд, вы должны начать с правильного *.файл ebuild. Ваш файл ebuild - это сердце всего вашего ebuild. Файл ebuild зависит от многих других файлов, как и make. Фактически, в большинстве случаев ваш ebuild будет зависеть от make, хотя это ваш выбор. Вот дерево неовим:
/ mnt / SW / projects / System / Gentoo / gentoo / редакторы приложений / neovim
├── файлы
│ ├── neovim-0.4.3-gcc-10-исправить.пластырь
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cmake-релиз-тип.пластырь
│ └── sysinit.vim
├── Манифест
├── метаданные.xml
├── неовим-0.4.4-r100.ебилд
└── neovim-9999.ебилд

Итак, для чего вы используете эти файлы в своем приложении?? *.файл ebuild - очевидный файл. Этот файл содержит SRC_URI, который напрямую указывает на код. Другая информация в файле включает описание, веб-сайт и дополнительную информацию, необходимую для компиляции пакета.

Файл манифеста содержит хэш, который однозначно идентифицирует код.

Метаданные.xml содержит имя и адрес электронной почты сопровождающего, название проекта и несколько флагов для компиляции. Удаленное удостоверение также находится в этом файле, как и репозиторий GitHub для восходящего потока. Каталог файлов содержит любые патчи, которые могут вам понадобиться, и любые специальные настройки, которые вам нужны. В приведенном выше примере показан файл с соответствующими настройками по мнению специалистов по сопровождению Gentoo.

Внутри файла Ebuild

Значения внутри файла по большей части легко понять. Описание и домашняя страница предназначены для помощи разработчикам. Номер EAPI указывает, какая версия Gentoo будет запущена. У вас также есть Лицензия, что совершенно ясно; сопоставьте Лицензию с кодом, для которого вы создаете файл ebuild.

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

KEYWORDS - это значение, указывающее, для каких платформ можно компилировать исходный код. Это amd65, x86 и, возможно, arm64. Полный список доступен в вашей системе Gentoo. Обратите внимание: если вы хотите внести свой вклад, вы должен установите тильду (~) перед архитектурой. Это означает, что код не протестирован, поэтому убедитесь, что код хорошо протестирован, прежде чем удалять этот символ. Желательно, чтобы многие пользователи просматривали код перед удалением тильды.

Переменная IUSE возвращает параметры, которые вы хотите установить для своего компилятора.

У вас также есть DEPEND, который бывает трех разных типов. Значения RDEPEND - это значения, которые вы используете при запуске кода. Значения BDEPEND являются значениями, зависящими от сборки. Пакет, который вы пытаетесь добавить в Gentoo, будет содержать файл с описанием необходимых зависимостей.

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

Функции

В файле установщик будет использовать определенные функции для всего процесса. Например, чтобы применить исправления перед запуском команды, src_prepare () функция справится с этой ситуацией.

В src_configure () функция использует econf для установки, я.е., 'use_enable.'В этой функции вы можете распаковать свои файлы с помощью команды unpack. Вы также можете передавать аргументы в ./ configure для вашего проекта, используя эконф. Как видите, эти функции названы в соответствии с их эквивалентами make, и часто они передают аргументы через.

В src_install () функция выполняет ту же функцию, что и делать установить будет делать в сборке C / C ++. Тем не менее, он содержит множество параметров, которые вы можете найти в справочном документе.

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

Пример: файл пакета SimulIDE

Здесь мы представляем файл, который был создан для пакета SimulIDE. Для пакета требуется среда разработки Qt5, поэтому вам нужно будет добавить ее в свой файл ebuild. На следующем изображении вы можете увидеть значения RDEPEND, отражающие эту идею. Библиотеки уже содержатся в репозиториях Gentoo, что позволяет легко указать на.

# Copyright 2021 Матс Таге Аксельссон
# Распространяется на условиях GNU General Public License v3
EAPI = 7
DESCRIPTION = "SimulIDE моделирует ваши схемы, включая эмуляцию Arduino."
HOMEPAGE = "https: // www.симулид.com / p / home.html "
SRC_URI = "https: // mailfence.com / pub / docs / santigoro / web / SimulIDE_0.4.14 / simulide_0.4.14-SR4_Sources.деготь.gz "
ЛИЦЕНЗИЯ = "GPL-3"
SLOT = "0"
KEYWORDS = "~ x86 ~ amd64"
RDEPEND = "dev-qt / qtsvg
dev-qt / qtxml
dev-qt / qtscript
dev-qt / qtwidgets
dev-qt / qtconcurrent
dev-qt / qtserialport
dev-qt / qtmultimedia "
DEPEND = "$ RDEPEND
dev-библиотеки / libelf
dev-embedded / avr-libc "
src_prepare ()
распаковать simulide_0.4.14-SR4_Sources.деготь.gz

src_configure ()
econf --with-popt

в src_prepare () функция, вы можете увидеть, что пакет распаковывается перед использованием.

Оверлей

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

Заключение

Создание новых пакетов для Gentoo - это задача, которая может расширить ваши возможности. Даже в этом случае, если вы собрали много пакетов перед использованием make и набора инструментов gcc, вы сможете довольно быстро освоить этот процесс. Кроме того, не забудьте внести свой вклад в сообщество как можно больше.

Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...
Порты коммерческих игровых движков с открытым исходным кодом
Бесплатные игры с открытым исходным кодом и кроссплатформенные версии игрового движка можно использовать для игры как в старые, так и в некоторые из с...