Ebuild Structure
For å lage din egen ebuild, må du starte med riktig *.ebuild-fil. Din ebuild-fil er hjertet i hele din ebuild. Ebuild-filen avhenger av mange andre filer, akkurat som make gjør. Faktisk vil ebuild i de fleste tilfeller avhenge av merke, selv om det er ditt valg. Følgende er neovims tre:
/ 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-filen er den åpenbare filen. Denne filen inneholder SRC_URI, som direkte peker til koden. Annen informasjon i filen inkluderer beskrivelsen, nettstedet og ytterligere informasjon som er nødvendig for å utarbeide pakken.
Manifest-filen inneholder hash som unikt identifiserer koden.
Metadataene.xml-filen inneholder vedlikeholderens navn og e-postadresse, prosjektnavnet og noen få flagg for kompilering. Fjernidentiteten er også plassert i denne filen, som GitHub-depotet for oppstrøms. Filkatalogen inneholder eventuelle oppdateringer du trenger, og eventuelle spesielle innstillinger du trenger. Ovenstående eksempel viser en fil med passende innstillinger i henhold til Gentoo-vedlikeholdere.
Inne i Ebuild File
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; matche lisensen til koden du bygger en ebuild-fil for.
Enda vanskeligere er SLOT, som brukes hvis du trenger å ha flere versjoner. SLOT vil da peke denne versjonen 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 kildekoden din kan kompilere for. De gitte er amd65, x86 og muligens arm64. En full liste er tilgjengelig på Gentoo-systemet ditt. Vær oppmerksom på at hvis du vil bidra, vil du må sett en tilde (~) foran arkitekturen. Dette betyr at koden ikke er testet, så sørg for at koden er godt testet før du fjerner dette symbolet. Fortrinnsvis må mange brukere se koden før de fjerner tilde.
IUSE-variabelen går tilbake til parametrene du vil angi for kompilatoren din.
Du har også DEPEND, som kommer i tre forskjellige typer. RDEPEND-verdiene er verdiene du bruker mens du kjører koden. BDEPEND-verdiene er bygningsavhengige verdier. Pakken du prøver å legge til i Gentoo inneholder 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 kompilerer koden. Hvis dette ikke samsvarer med hva Gentoo-utviklere har forventet, kan du sette opp dine egne.
Funksjoner
I filen vil installasjonsprogrammet bruke visse funksjoner for hele prosessen. For eksempel, for å bruke oppdateringer før du kjører kommandoen, src_prepare () funksjonen vil håndtere denne situasjonen.
De src_configure () funksjonen bruker econf for å stille, i.e., 'use_enable.'I denne funksjonen kan du pakke ut filene dine ved hjelp av kommandoen for å pakke ut. Du kan også sende argumenter til ./ konfigurer for prosjektet ditt ved hjelp av econf. Som du kan se, blir disse funksjonene navngitt i henhold til fabrikatekvivalenter, og mange ganger overfører de argumenter.
De src_install () funksjon utfører den samme funksjonen som gjøre installere ville gjort i en C / C ++ -bygging. Imidlertid inneholder den mange alternativer du kan slå opp i referansedokumentet.
De fleste funksjoner er der for når du har spesiell saksprogramvare. Du vil sannsynligvis begynne å grave gjennom disse funksjonene når du prøver å implementere din første pakke.
Eksempel: SimulIDE-pakkefil
Her presenterer vi en fil som ble opprettet for SimulIDE-pakken. Pakken krever et Qt5-utviklingsmiljø, så du må legge til det i ebuild-filen. I det følgende bildet kan du se RDEPEND-verdiene som gjenspeiler denne ideen. Bibliotekene er allerede inneholdt i Gentoo-arkivene, 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
DESCRIPTION = "SimulIDE simulerer kretsdesignene dine, den inkluderer Arduino-emulering."
HJEMMESIDE = "https: // www.simulere.com / p / hjem.html "
SRC_URI = "https: // mailfence.com / pub / docs / santigoro / web / SimulIDE_0.4.14 / simulide_0.4.14-SR4_Kilder.tjære.gz "
LISENS = "GPL-3"
SLOT = "0"
Nøkkelord = "~ 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 ()
pakke ut simulide_0.4.14-SR4_Kilder.tjære.gz
src_configure ()
econf --with-popt
I src_prepare () funksjon, kan du se at pakken pakkes ut før bruk.
Overlegg
Når du har trimmet og renset alle feilene dine, kan det være lurt å legge til pakken din i Gentoo-prosjektet. Layman ble opprettet slik at du kan bruke eksperimentell programvare for din viktigste distribusjonsinstallasjon. Prosjektet heter Overlays, men kommandoen for å installere det heter Layman.
Konklusjon
Å lage nye pakker for Gentoo er en oppgave som kan strekke deg. Likevel, hvis du har bygget mange pakker før du bruker make og gcc-pakken med verktøy, bør du kunne plukke opp denne prosessen ganske raskt. Sørg også for å bidra tilbake til samfunnet så mye du kan.