Gentoo

Sådan skriver du Gentoo Ebuilds

Sådan skriver du Gentoo Ebuilds
Hvis du ikke har den Gentoo-pakke, du ønsker, skal du ikke frygte! Du kan bygge din egen! For at gøre dette skal du have nogle erfaringer med kompilering af software ved hjælp af de kendte Linux-værktøjssæt make, gcc og andre. For at oprette en Gentoo-pakke bruges 'emake' til at kontrollere og tune processen. Ved hjælp af disse værktøjer kan du oprette meget slanke pakker, der kører hurtigt og pålideligt.

Ebuild struktur

For at oprette din egen ebuild skal du starte med den korrekte *.ebuild-fil. Din ebuild-fil er hjertet i hele din ebuild. Ebuild-filen afhænger af mange andre filer, ligesom make gør. Faktisk vil din ebuild i de fleste tilfælde afhænge af mærke, selvom det er dit valg. Følgende er neovimtræet:
/ mnt / SW / projekter / System / Gentoo / gentoo / app-redaktører / neovim
├── filer
│ ├── neovim-0.4.3-gcc-10-fix.lappe
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cm-frigørelsestype.lappe
│ └── sysinit.vim
├── Manifest
├── metadata.xml
├── neovim-0.4.4-r100.ebuild
└── neovim-9999.ebuild

Så hvad bruger du disse filer til i din applikation? Det *.ebuild-fil er den åbenlyse fil. Denne fil indeholder SRC_URI, som direkte peger på koden. Andre oplysninger i filen inkluderer beskrivelsen, webstedet og yderligere oplysninger, der er nødvendige for at kompilere pakken.

Manifest-filen indeholder den hash, der entydigt identificerer koden.

Metadataene.xml-fil indeholder vedligeholderens navn og e-mail-adresse, projektnavnet og et par flag til kompilering. Fjernidentiteten er også placeret i denne fil, ligesom GitHub-arkivet til opstrøms. Filmappen indeholder eventuelle rettelser, du har brug for, og eventuelle specielle indstillinger, du har brug for. Ovenstående eksempel viser en fil med passende indstillinger i henhold til Gentoo-vedligeholdere.

Inde i Ebuild-filen

Værdierne i filen er for det meste nemme at forstå. Beskrivelsen og hjemmesiden er til udviklerens hjælp. EAPI-nummeret angiver, hvilken version af Gentoo der køres. Du har også licensen, hvilket er helt klart; matche licensen til den kode, som du bygger en ebuild-fil til.

Endnu sværere er SLOT, som bruges, hvis du har brug for flere versioner. SLOT vil derefter pege denne build på den version, du understøtter. De fleste software har 0-værdien, hvilket kun tillader en version ad gangen.

KEYWORDS er den værdi, der angiver, hvilke platforme din kildekode kan kompilere for. De givne er amd65, x86 og muligvis arm64. En komplet liste er tilgængelig på dit Gentoo-system. Bemærk, at hvis du vil bidrage, skal du skal sæt en tilde (~) foran arkitekturen. Det betyder, at koden ikke er testet, så sørg for, at koden er testet, før du fjerner dette symbol. Fortrinsvis skal mange brugere se koden, før de fjerner tilde.

IUSE-variablen vender tilbage til de parametre, du vil indstille til din compiler.

Du har også DEPEND, som findes i tre forskellige typer. RDEPEND-værdierne er de værdier, du bruger, mens du kører koden. BDEPEND-værdierne er de bygningsafhængige værdier. Den pakke, du prøver at tilføje til Gentoo, indeholder en fil, der beskriver de nødvendige afhængigheder.

For enkle pakker har du ikke brug for andet. Imidlertid vil den specifikke pakke, som du arbejder på, sandsynligvis have nogle ting, der skal gøres, før du kompilerer koden. Hvis dette ikke stemmer overens med, hvad Gentoo-udviklere har forventet, kan du oprette dine egne.

Funktioner

I filen bruger installationsprogrammet visse funktioner i hele processen. For eksempel at anvende programrettelser, før du kører kommandoen, src_prepare () funktion vil håndtere denne situation.

Det src_configure () funktion bruger econf til at indstille, i.e., 'use_enable.'I denne funktion kan du pakke dine filer ud ved hjælp af kommandoen til udpakning. Du kan også videregive args til ./ konfigurer til dit projekt ved hjælp af econf. Som du kan se, navngives disse funktioner efter deres mærkeækvivalenter, og mange gange sender de argumenter på tværs.

Det src_install () funktion udfører den samme funktion som lave installere ville gøre i en C / C ++ -bygning. Det indeholder dog mange muligheder, som du kan slå op i referencedokumentet.

De fleste funktioner er der, når du har specialcasesoftware. Du begynder sandsynligvis at grave igennem disse funktioner, når du prøver at implementere din første pakke.

Eksempel: SimulIDE-pakkefil

Her præsenterer vi en fil, der blev oprettet til SimulIDE-pakken. Pakken kræver et Qt5-udviklingsmiljø, så du bliver nødt til at tilføje det i din ebuild-fil. I det følgende billede kan du se RDEPEND-værdierne, der afspejler denne idé. Bibliotekerne er allerede indeholdt i Gentoo-arkiverne, hvilket gør det let at pege på.

# Copyright 2021 Mats Tage Axelsson
# Distribueret under vilkårene i GNU General Public License v3
EAPI = 7
DESCRIPTION = "SimulIDE simulerer dine kredsløbsdesign, det 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 "
LICENS = "GPL-3"
SLOT = "0"
Nøgleord = "~ 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 ()
udpak simulide_0.4.14-SR4_Kilder.tjære.gz

src_configure ()
econf --with-popt

I src_prepare () funktion, kan du se, at pakken pakkes ud inden brug.

Overlay

Når du har trimmet og renset alle dine fejl, kan du føje din pakke til Gentoo-projektet. Lægmand blev oprettet, så du kan bruge eksperimentel software til din vigtigste distributionsinstallation. Projektet hedder Overlays, men kommandoen til at installere det hedder Layman.

Konklusion

Oprettelse af nye pakker til Gentoo er en virksomhed, der kan strække dine evner. Alligevel, hvis du har bygget mange pakker før du bruger make og gcc-pakke med værktøjer, skal du være i stand til at samle denne proces op ret hurtigt. Sørg også for at bidrage tilbage til samfundet så meget som du kan.

5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...