Gentoo

Hvordan skrive Gentoo Ebuilds

Hvordan skrive Gentoo Ebuilds
Hvis du ikke har Gentoo-pakken du ønsker, frykt ikke! Du kan bygge din egen! For å gjøre dette trenger du litt erfaring med å kompilere programvare ved å bruke de kjente Linux-verktøysettene make, gcc og andre. For å lage en Gentoo-pakke brukes 'emake' til å kontrollere og stille 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-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 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.

Mus Topp 5 ergonomiske datamuseprodukter for Linux
Topp 5 ergonomiske datamuseprodukter for Linux
Gir langvarig bruk av datamaskiner smerter i håndleddet eller fingrene? Lider du av stive ledd og må hele tiden riste på deg hendene? Føler du en bren...
Mus Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
De fleste Linux-distribusjoner leveres med "libinput" -biblioteket som standard for å håndtere inngangshendelser på et system. Den kan behandle inngan...
Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...