Vytvorte štruktúru
Ak chcete vytvoriť svoj vlastný ebuild, musíte začať so správnym *.ebuild súbor. Váš súbor ebuild je srdcom celého vášho ebuildu. Súbor ebuild závisí od mnohých ďalších súborov, podobne ako to robí make. V skutočnosti bude vo väčšine prípadov váš ebuild závisieť od značky, hoci je to vaša voľba. Nasleduje strom neovimu:
/ mnt / SW / projects / System / Gentoo / gentoo / app-editors / neovim
├── súbory
│ ├── neovim-0.4.3-gcc-10-fix.náplasť
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.Typ 4-cmake-release.náplasť
│ └── sysinit.vim
├── Manifest
├── metadáta.xml
├── neovim-0.4.4-r100.ebuild
└── neovim-9999.ebuild
Na čo teda tieto súbory vo svojej aplikácii používate? *.ebuild súbor je zrejmý súbor. Tento súbor obsahuje SRC_URI, ktoré priamo smeruje na kód. Ďalšie informácie v súbore zahŕňajú popis, webovú stránku a ďalšie informácie potrebné na zostavenie balíka.
Súbor Manifest obsahuje hash, ktorý jedinečne identifikuje kód.
Metadáta.xml súbor obsahuje meno a e-mailovú adresu správcu, názov projektu a niekoľko príznakov pre kompiláciu. Vzdialená identita sa tiež nachádza v tomto súbore, napríklad v úložisku GitHub pre upstream. Adresár súborov obsahuje všetky potrebné opravy a všetky potrebné špeciálne nastavenia. Vyššie uvedený príklad zobrazuje súbor s príslušným nastavením podľa správcov Gentoo.
Vo vnútri súboru Ebuild
Hodnoty v súbore sú väčšinou ľahko pochopiteľné. Popis a domovská stránka slúžia na pomoc vývojára. Číslo EAPI označuje, ktorá verzia Gentoo bude spustená. Máte tiež licenciu, ktorá je celkom jasná; priraďte licenciu k kódu, pre ktorý vytvárate súbor ebuild.
Ešte zložitejší je SLOT, ktorý sa používa, ak potrebujete mať niekoľko verzií. SLOT potom nasmeruje toto zostavenie na verziu, ktorú podporujete. Väčšina softvéru bude mať hodnotu 0, čo umožní naraz iba jednu verziu.
KEYWORDS je hodnota, ktorá označuje platformy, na ktorých je možné zostaviť váš zdrojový kód. Uvedené sú amd65, x86 a prípadne arm64. Celý zoznam je k dispozícii vo vašom systéme Gentoo. Ak chcete prispieť, musíte musieť nastaviť vlnovku (~) pred architektúrou. To znamená, že kód nie je testovaný, takže pred odstránením tohto symbolu sa uistite, že je kód dobre otestovaný. Najlepšie by bolo, keby si mnohí používatelia prezerali kód pred odstránením vlnovky.
Premenná IUSE sa vráti k parametrom, ktoré chcete nastaviť pre svoj kompilátor.
Máte tiež DEPEND, ktorý sa dodáva v troch rôznych typoch. Hodnoty RDEPEND sú hodnoty, ktoré používate pri spustení kódu. Hodnoty BDEPEND sú hodnoty závislé od zostavenia. Balík, ktorý sa pokúšate pridať do Gentoo, bude obsahovať súbor popisujúci potrebné závislosti.
K jednoduchým balíkom nepotrebujete nič iné. Konkrétny balík, na ktorom pracujete, však bude pravdepodobne obsahovať niektoré veci, ktoré je potrebné urobiť pred kompiláciou kódu. Ak sa to nezhoduje s tým, čo vývojári Gentoo očakávali, môžete si vytvoriť svoj vlastný.
Funkcie
V súbore použije inštalátor určité funkcie pre celý proces. Napríklad na použitie opráv pred spustením príkazu, src_prepare () táto situácia zvládne túto funkciu.
The src_configure () funkcia používa econf na nastavenie, t.j.e., 'use_enable.„V tejto funkcii môžete súbory rozbaliť pomocou príkazu unpack. Môžete tiež odovzdať args ./ nakonfigurujte pre svoj projekt pomocou econf. Ako vidíte, tieto funkcie sú pomenované podľa ekvivalentov značiek a mnohokrát prechádzajú argumentmi.
The src_install () funkcia vykonáva rovnakú funkciu ako urobiť Inštalácia urobí v C / C ++ zostave. Obsahuje však veľa možností, ktoré môžete vyhľadať v referenčnom dokumente.
Väčšina funkcií je k dispozícii, keď máte špeciálny softvér pre prípad. Pravdepodobne začnete kopať tieto funkcie, keď sa pokúsite implementovať svoj prvý balík.
Príklad: Súbor balíka SimulIDE
Tu uvádzame súbor, ktorý bol vytvorený pre balík SimulIDE. Balík vyžaduje vývojové prostredie Qt5, takže ho budete musieť pridať do svojho súboru ebuild. Na nasledujúcom obrázku môžete vidieť hodnoty RDEPEND odrážajúce túto myšlienku. Knižnice sú už obsiahnuté v úložiskách Gentoo, vďaka čomu je ľahké na ne ukazovať.
# Autorské práva 2021 Mats Tage Axelsson# Distribuované podľa podmienok GNU General Public License v3
EAPI = 7
DESCRIPTION = "SimulIDE simuluje návrhy vašich obvodov, obsahuje emuláciu Arduino.„
HOMEPAGE = "https: // www.simulid.com / p / domov.html "
SRC_URI = "https: // mailfence.com / pub / docs / santigoro / web / SimulIDE_0.4.14 / simulide_0.4.14-SR4_Zdroje.decht.gz "
LICENCIA = "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-libs / libelf
vstavaný vývojár / avr-libc "
src_prepare ()
rozbaľte simulide_0.4.14-SR4_Zdroje.decht.gz
src_configure ()
econf --with-dopyt
V src_prepare () funkcie, môžete vidieť, že je balík pred použitím rozbalený.
Prekrytie
Keď ste orezali a vyčistili všetky svoje chyby, možno budete chcieť pridať svoj balíček do projektu Gentoo. Layman bol vytvorený tak, aby ste mohli použiť experimentálny softvér pre svoju hlavnú inštaláciu distribúcie. Projekt sa volá Overlays, ale príkaz na jeho inštaláciu sa volá Layman.
Záver
Vytvorenie nových balíkov pre Gentoo je podnik, ktorý môže rozšíriť vaše schopnosti. Aj napriek tomu, ak ste vytvorili veľa balíkov pred použitím značiek a sady nástrojov gcc, mali by ste byť schopní tento proces vyzdvihnúť pomerne rýchlo. Nezabudnite tiež prispieť späť do komunity čo najviac.