Gentoo

Jak psát Gentoo Ebuilds

Jak psát Gentoo Ebuilds
Pokud nemáte balíček Gentoo, po kterém toužíte, nebojte se! Můžete si vytvořit vlastní! K tomu budete potřebovat určité zkušenosti s kompilací softwaru pomocí známých linuxových nástrojů make, gcc a dalších. K vytvoření balíčku Gentoo se používá 'emake' k řízení a vyladění procesu. Pomocí těchto nástrojů můžete vytvořit velmi tenké balíčky, které běží rychle a spolehlivě.

Vytvořte strukturu

Chcete-li vytvořit svůj vlastní ebuild, musíte začít se správným *.ebuild soubor. Váš soubor ebuild je srdcem celého vašeho ebuildu. Soubor ebuild závisí na mnoha dalších souborech, podobně jako to dělá make. Ve skutečnosti bude ve většině případů váš ebuild záviset na značce, i když je to vaše volba. Následuje strom neovim:
/ mnt / SW / projects / System / Gentoo / gentoo / app-editors / neovim
├── soubory
│ ├── neovim-0.4.3-gcc-10-fix.náplast
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cmake-release-type.náplast
│ └── sysinit.vim
├── Manifest
├── metadata.xml
├── neovim-0.4.4-r100.ebuild
└── neovim-9999.ebuild

K čemu tedy tyto soubory ve své aplikaci používáte? *.Soubor ebuild je zřejmý soubor. Tento soubor obsahuje SRC_URI, který přímo odkazuje na kód. Mezi další informace v souboru patří popis, web a další informace nezbytné pro sestavení balíčku.

Soubor Manifest obsahuje hodnotu hash, která jednoznačně identifikuje kód.

Metadata.xml soubor obsahuje jméno a e-mailovou adresu správce, název projektu a několik příznaků pro kompilaci. Vzdálená identita se také nachází v tomto souboru, jako je úložiště GitHub pro upstream. Adresář souborů obsahuje všechny opravy, které potřebujete, a veškerá speciální nastavení, která požadujete. Výše uvedený příklad ukazuje soubor s příslušným nastavením podle správců Gentoo.

Uvnitř souboru Ebuild

Hodnoty uvnitř souboru jsou většinou srozumitelné. Popis a domovská stránka slouží vývojáři. Číslo EAPI označuje, která verze Gentoo bude spuštěna. Máte také licenci, která je zcela jasná; přiřaďte licenci k kódu, pro který vytváříte soubor ebuild.

Ještě složitější je SLOT, který se používá, pokud potřebujete mít několik verzí. SLOT poté nasměruje toto sestavení na verzi, kterou podporujete. Většina softwaru bude mít hodnotu 0, což umožní současně pouze jednu verzi.

KEYWORDS je hodnota, která označuje platformy, na které může váš zdrojový kód kompilovat. Dané jsou amd65, x86 a případně arm64. Úplný seznam je k dispozici ve vašem systému Gentoo. Pokud chcete přispět, musíte musí nastavit vlnovku (~) před architekturou. To znamená, že kód není testován, takže před odstraněním tohoto symbolu se ujistěte, že je kód dobře otestován. Přednostně nechte mnoho uživatelů zobrazit kód před odstraněním vlnovky.

Proměnná IUSE se vrátí k parametrům, které chcete nastavit pro kompilátor.

Máte také DEPEND, který se dodává ve třech různých typech. Hodnoty RDEPEND jsou hodnoty, které používáte při spuštění kódu. Hodnoty BDEPEND jsou hodnoty závislé na sestavení. Balíček, který se pokoušíte přidat do Gentoo, bude obsahovat soubor popisující potřebné závislosti.

U jednoduchých balíčků nepotřebujete nic jiného. Konkrétní balíček, na kterém pracujete, však pravděpodobně bude mít některé věci, které je třeba provést před kompilací kódu. Pokud to neodpovídá tomu, co vývojáři Gentoo očekávali, můžete si nastavit vlastní.

Funkce

V souboru použije instalační program pro celý proces určité funkce. Například pro použití oprav před spuštěním příkazu, src_prepare () funkce tuto situaci vyřeší.

The src_configure () funkce používá econf k nastavení, tj.E., 'use_enable.„V této funkci můžete své soubory rozbalit pomocí příkazu unpack. Můžete také předat args ./ nakonfigurujte pro svůj projekt pomocí econf. Jak vidíte, tyto funkce jsou pojmenovány podle jejich ekvivalentů make a mnohokrát předávají argumenty napříč.

The src_install () funkce provádí stejnou funkci jako udělat Nainstalujte udělá v C / C ++ sestavení. Obsahuje však mnoho možností, které můžete vyhledat v referenčním dokumentu.

Většina funkcí je k dispozici, když máte speciální software pro případ. Pravděpodobně začnete kopat tyto funkce, když se pokusíte implementovat svůj první balíček.

Příklad: Soubor balíčku SimulIDE

Zde představujeme soubor, který byl vytvořen pro balíček SimulIDE. Balíček vyžaduje vývojové prostředí Qt5, takže jej budete muset přidat do souboru ebuild. Na následujícím obrázku vidíte hodnoty RDEPEND odrážející tuto myšlenku. Knihovny jsou již obsaženy v úložištích Gentoo, takže je snadné na ně ukázat.

# Copyright 2021 Mats Tage Axelsson
# Distribuováno podle podmínek GNU General Public License v3
EAPI = 7
DESCRIPTION = "SimulIDE simuluje návrhy vašich obvodů, zahrnuje emulaci Arduino."
HOMEPAGE = "https: // www.simulid.com / p / home.html "
SRC_URI = "https: // mailfence.com / pub / docs / santigoro / web / SimulIDE_0.4.14 / simulide_0.4.14-SR4_Sources.dehet.gz "
LICENCE = "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
dev-embedded / avr-libc "
src_prepare ()
rozbalte simulide_0.4.14-SR4_Sources.dehet.gz

src_configure ()
econf --with-poptávka

V src_prepare () funkce, můžete vidět, že je balíček před použitím rozbalen.

Překrytí

Když jste ořízli a vyčistili všechny své chyby, možná budete chtít přidat svůj balíček do projektu Gentoo. Layman byl vytvořen tak, že pro hlavní instalaci distribuce můžete použít experimentální software. Projekt se jmenuje Overlays, ale příkaz k jeho instalaci se jmenuje Layman.

Závěr

Vytváření nových balíčků pro Gentoo je podnik, který může rozšířit vaše schopnosti. I přesto, pokud jste před použitím make a sady nástrojů gcc vytvořili mnoho balíčků, měli byste být schopni tento proces vyzvednout poměrně rychle. Nezapomeňte také co nejvíce přispět zpět do komunity.

Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...
Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...