Hvordan du skriver gentoo ebuilds

Hvordan du skriver gentoo ebuilds
Hvis du ikke har gentoo -pakken som du ønsker, frykter du ikke! Du kan bygge din egen! For å gjøre dette, trenger du litt erfaring med å samle programvare ved å bruke de kjente Linux -verktøyene, GCC og andre. For å lage en gentoo -pakke, brukes 'Emake' til å kontrollere og stille inn prosessen. Ved hjelp av disse verktøyene kan du lage veldig slanke pakker som kjører raskt og pålitelig.

EBuild Structure

For å lage din egen ebuild, må du starte med riktig *.eBuild File. Din ebuild -fil er hjertet i hele din ebuild. Ebuild -filen avhenger av mange andre filer, omtrent som å gjøre gjør. Faktisk, i de fleste tilfeller, vil ebuilden din avhenge av merke, selv om det er ditt valg. Følgende er treet til Neovim:
/mnt/sw/prosjekter/system/gentoo/gentoo/app-redaktører/neovim
├── filer
│ ├── Neovim-0.4.3-GCC-10-FIX.lapp
│ ├── Neovim-0.4.4-cmake_luaversion_patch
│ ├── Neovim-0.4.4-CMake-Release-type.lapp
│ └── sysinit.vim
├── manifest
├── metadata.XML
├── Neovim-0.4.4-R100.ebuild
└── Neovim-9999.ebuild

Så hva bruker du disse filene til i applikasjonen din? *.eBuild -fil er den åpenbare filen. Denne filen inneholder SRC_URI, som direkte peker på koden. Annen informasjon i filen inneholder beskrivelsen, nettstedet og ytterligere informasjon som er nødvendig for å samle pakken.

Manifest -filen inneholder hasj som identifiserer koden unikt.

Metadataene.XML -filen inneholder vedlikeholderens navn og e -postadresse, prosjektnavnet og noen få flagg for å sammenstille. Den eksterne identiteten er også lokalisert i denne filen, som GitHub -depotet for oppstrøms. Files -katalogen inneholder eventuelle oppdateringer du måtte trenge og eventuelle spesielle innstillinger du trenger. Eksemplet ovenfor viser en fil med passende innstillinger i henhold til Gentoo -vedlikeholdere.

Inne i eBuild -filen

Verdiene i filen er for det meste enkle å forstå. Beskrivelsen og hjemmesiden er for utviklerens hjelp. EAPI -nummeret indikerer hvilken versjon av Gentoo som skal kjøres. Du har også lisensen, som er ganske tydelig; Match lisensen til koden du bygger en eBuild -fil.

Enda vanskeligere er spor, som brukes hvis du trenger å ha flere versjoner. Spor vil da peke dette bygget til den versjonen du støtter. De fleste programvare vil ha 0 -verdien, og tillater bare en versjon om gangen.

Nøkkelord er verdien som indikerer hvilke plattformer som kildekoden din kan kompilere. De gitte er AMD65, X86 og muligens ARM64. En full liste er tilgjengelig på gentoo -systemet ditt. Merk at hvis du vil bidra, du Sett en tilde (~) foran arkitekturen. Dette betyr at koden er uprøvd, så sørg for at koden er godt testet før du fjerner dette symbolet. Få mange brukere til å se koden før du fjerner Tilde.

IUSE -variabelen går tilbake til parametrene du vil angi kompilatoren din.

Du har også avhengig, som kommer i tre forskjellige typer. RDEP -verdiene er verdiene du bruker mens du kjører koden. Bdependes-verdiene er de byggavhengige verdiene. Pakken du prøver å legge til Gentoo vil inneholde en fil som beskriver de nødvendige avhengighetene.

For enkle pakker trenger du ikke noe annet. Imidlertid vil den spesifikke pakken du jobber med sannsynligvis ha noen ting som må gjøres før du sammenstiller koden. Hvis dette ikke samsvarer med hva Gentoo -utviklere har forventet, kan du sette opp din egen.

Funksjoner

I filen vil installasjonsprogrammet bruke visse funksjoner for hele prosessen. For eksempel å bruke lapper før du kjører kommandoen, src_prepare () Funksjonen vil håndtere denne situasjonen.

De src_configure () Funksjon bruker Econf for å stille inn, i.e., 'use_enable.'I denne funksjonen kan du pakke ut filene dine ved hjelp av Unpack -kommandoen. Du kan også passere args til ./konfigurere for prosjektet ditt ved hjelp av Econf. Som du ser, blir disse funksjonene navngitt i henhold til deres ekvivalenter, og mange ganger passerer de argumenter over.

De src_install () funksjon utfører den samme funksjonen som gjøre installere ville gjøre i en c/c ++ build. Imidlertid inneholder det mange alternativer som du kan slå opp i referansedokumentet.

De fleste funksjoner er der for når du har spesialtilfelle programvare. Du vil sannsynligvis begynne å grave gjennom disse funksjonene når du prøver å implementere din første pakke.

Eksempel: Simulide -pakkefilen

Her presenterer vi en fil som ble opprettet for simulidpakken. Pakken krever et QT5 -utviklingsmiljø, så du må legge til det i din ebuild -fil. I det følgende bildet kan du se RDEP -verdiene som gjenspeiler denne ideen. Bibliotekene er allerede inneholdt i Gentoo -depotene, noe som gjør det enkelt å peke på.

# Copyright 2021 Mats Tage Axelsson
# Distribuert under vilkårene i GNU General Public License V3
EAPI = 7
Beskrivelse = "Simulid simulerer kretsdesignene dine, det inkluderer Arduino -emulering.""
Hjemmeside = "https: // www.Simulid.com/p/hjemme.html "
Src_uri = "https: // mailfence.com/pub/docs/Santigoro/web/simulide_0.4.14/simulide_0.4.14-SR4_Sources.tjære.gz "
Lisens = "GPL-3"
Slot = "0"
Nøkkelord = "~ x86 ~ amd64"
Rdependes = "dev-qt/qtsvg
dev-qt/qtxml
dev-qt/qtscript
dev-qt/qtwidgets
dev-qt/qtconcurrent
dev-qt/qtserialport
dev-qt/qtmultimedia "
Avhengig = "$ rdepend
dev-libs/libelf
Dev-Embedded/AVR-LIBC "
src_prepare ()
Pakk ut simulide_0.4.14-SR4_Sources.tjære.gz

src_configure ()
Econf-With-Popt

I src_prepare () Funksjon, kan du se at pakken blir pakket ut før bruk.

Overlegg

Når du har trimmet og renset alle feilene dine, kan det være lurt å legge pakken din til Gentoo -prosjektet. Layman ble opprettet slik at du kan bruke eksperimentell programvare for hoveddistribusjonsinstallasjonen. Prosjektet kalles overlegg, men kommandoen for å installere det kalles lekmann.

Konklusjon

Å lage nye pakker for Gentoo er et foretak som kan strekke dine evner. Likevel, hvis du har bygget mange pakker før du bruker Make og GCC -pakken med verktøy, bør du kunne hente denne prosessen ganske raskt. Sørg også for å bidra tilbake til samfunnet så mye du kan.