Gentoo

Как да пишете Gentoo Ebuilds

Как да пишете Gentoo Ebuilds
Ако нямате желания от вас пакет Gentoo, не се страхувайте! Можете да изградите свой собствен! За да направите това, ще ви е необходим известен опит със съставянето на софтуер с помощта на известните инструменти за Linux make, gcc и други. За да създадете пакет Gentoo, 'emake' се използва за контрол и настройка на процеса. Използвайки тези инструменти, можете да създадете много тънки пакети, които да работят бързо и надеждно.

Ebuild структура

За да създадете свой собствен ebuild, трябва да започнете с правилния *.ebuild файл. Вашият ebuild файл е сърцето на целия ви ebuild. Файлът ebuild зависи от много други файлове, подобно на make. Всъщност в повечето случаи вашият ebuild ще зависи от марката, макар че това е ваш избор. По-долу е дървото на неовим:
/ mnt / SW / projects / System / Gentoo / gentoo / app-editors / neovim
├── файлове
│ ├── neovim-0.4.3-gcc-10-fix.кръпка
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cmake-release-type.кръпка
│ └── sysinit.vim
├── Манифест
├── метаданни.xml
├── неовим-0.4.4-r100.ebuild
└── неовим-9999.ebuild

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

Файлът Manifest съдържа хеш, който уникално идентифицира кода.

Метаданните.xml файлът съдържа името и имейл адреса на поддържащия, името на проекта и няколко флага за компилиране. Отдалечената самоличност също се намира в този файл, като хранилището на GitHub за нагоре по веригата. Файловата директория съдържа всички лепенки, от които може да се нуждаете, и всички специални настройки, които се нуждаете. Горният пример показва файл с подходящи настройки според поддръжниците на Gentoo.

Във файла Ebuild

Стойностите във файла са лесни за разбиране, в по-голямата си част. Описанието и началната страница са за помощ на разработчика. EAPI номерът показва коя версия на Gentoo ще бъде стартирана. Вие също имате лиценза, което е съвсем ясно; съпоставете лиценза с кода, за който изграждате ebuild файл.

Още по-сложен е SLOT, който се използва, ако трябва да имате няколко версии. След това SLOT ще насочи тази компилация към версията, която поддържате. Повечето софтуери ще имат стойност 0, позволяваща само една версия наведнъж.

KEYWORDS е стойността, която показва кои платформи, на които може да се компилира изходният ви код. Дадените са amd65, x86 и вероятно arm64. Пълен списък е наличен във вашата система Gentoo. Имайте предвид, че ако искате да допринесете, вие трябва да задайте тилда (~) пред архитектурата. Това означава, че кодът не е тестван, затова се уверете, че кодът е добре тестван, преди да премахнете този символ. За предпочитане е много потребители да преглеждат кода, преди да премахнат тилдата.

Променливата IUSE се връща към параметрите, които искате да зададете за вашия компилатор.

Имате и DEPEND, който се предлага в три различни типа. Стойностите RDEPEND са стойностите, които използвате, докато изпълнявате кода. Стойностите BDEPEND са зависими от изграждането стойности. Пакетът, който се опитвате да добавите към Gentoo, ще съдържа файл, описващ необходимите зависимости.

За прости пакети не ви трябва нищо друго. Обаче конкретният пакет, по който работите, вероятно ще има някои неща, които трябва да се направят преди компилирането на кода. Ако това не съвпада с очакванията на разработчиците на Gentoo, можете да настроите свой собствен.

Функции

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

The src_configure () функцията използва econf за задаване, т.е.д., 'use_enable.'В тази функция можете да разопаковате файловете си, като използвате командата за разопаковане. Можете също така да предадете аргументи на ./ конфигуриране за вашия проект с помощта на econf. Както можете да видите, тези функции се именуват според техните еквиваленти и много пъти предават аргументи.

The src_install () функция изпълнява същата функция, която направи Инсталирай би направил в C / C ++ компилация. Той обаче съдържа много опции, които можете да потърсите в референтния документ.

Повечето функции са налице, когато имате специален софтуер за калъфи. Вероятно ще започнете да прекопавате тези функции, когато опитате да внедрите първия си пакет.

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

Тук представяме файл, създаден за пакета SimulIDE. Пакетът изисква среда за разработка Qt5, така че ще трябва да добавите това във вашия ebuild файл. На следващото изображение можете да видите стойностите RDEPEND, отразяващи тази идея. Библиотеките вече се съдържат в хранилищата на Gentoo, което улеснява посочването.

# Copyright 2021 Mats Tage Axelsson
# Разпространява се при условията на GNU General Public License v3
EAPI = 7
ОПИСАНИЕ = "SimulIDE симулира вашите схеми, включва емулация на Arduino."
НАЧАЛНА СТРАНИЦА = "https: // www.симулид.com / p / home.html "
SRC_URI = "https: // mailfence.com / pub / docs / santigoro / web / SimulIDE_0.4.14 / simulide_0.4.14-SR4_Източници.катран.gz "
ЛИЦЕНЗИЯ = "GPL-3"
SLOT = "0"
КЛЮЧОВИ ДУМИ = "~ 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-libs / libelf
dev-вграден / avr-libc "
src_prepare ()
разопаковайте simulide_0.4.14-SR4_Източници.катран.gz

src_configure ()
econf --with-popt

В src_prepare () функция, можете да видите, че пакетът е разопакован преди употреба.

Наслагване

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

Заключение

Създаването на нови пакети за Gentoo е начинание, което може да разшири способностите ви. Въпреки това, ако сте изградили много пакети, преди да използвате make и gcc набор от инструменти, трябва да можете да изберете този процес доста бързо. Също така, не забравяйте да допринесете обратно за общността, доколкото можете.

5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...
Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...