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 må 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 AxelssonI 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.