Gentoo

Hur man skriver Gentoo Ebuilds

Hur man skriver Gentoo Ebuilds
Om du inte har det Gentoo-paket som du önskar, frukta inte! Du kan bygga din egen! För att göra detta behöver du lite erfarenhet av att kompilera programvara med de kända Linux-verktygslådorna make, gcc och andra. För att skapa ett Gentoo-paket används 'emake' för att styra och ställa in processen. Med hjälp av dessa verktyg kan du skapa mycket smala paket som körs snabbt och pålitligt.

Ebuild struktur

För att skapa din egen ebuild måste du börja med rätt *.ebuild-fil. Din ebuild-fil är hjärtat i hela din ebuild. Ebuild-filen beror på många andra filer, precis som make gör. Faktum är att i de flesta fall beror din ebuild på fabrikat, men det är ditt val. Följande är neovimens träd:
/ mnt / SW / projekt / System / Gentoo / gentoo / app-redaktörer / neovim
├── filer
│ ├── neovim-0.4.3-gcc-10-fix.lappa
│ ├── neovim-0.4.4-cmake_luaversion_patch
│ ├── neovim-0.4.4-cm-release-typ.lappa
│ └── sysinit.vim
├── Manifest
├── metadata.xml
├── neovim-0.4.4-r100.ebuild
└── neovim-9999.ebuild

Så, vad använder du dessa filer för i din applikation? *.ebuild-filen är den uppenbara filen. Den här filen innehåller SRC_URI, som direkt pekar på koden. Annan information i filen inkluderar beskrivningen, webbplatsen och ytterligare information som krävs för att kompilera paketet.

Manifest-filen innehåller hash som identifierar koden unikt.

Metadata.xml-filen innehåller underhållarens namn och e-postadress, projektnamnet och några flaggor för kompilering. Fjärridentiteten finns också i den här filen, som GitHub-förvaret för uppströms. Filkatalogen innehåller eventuella korrigeringar du behöver och alla speciella inställningar som du behöver. Ovanstående exempel visar en fil med lämpliga inställningar enligt Gentoo-underhållarna.

Inuti Ebuild-filen

Värdena i filen är för det mesta lätta att förstå. Beskrivningen och hemsidan är för utvecklarens hjälp. EAPI-numret anger vilken version av Gentoo som ska köras. Du har också licensen, vilket är helt klart; matcha licensen till koden som du bygger en ebuild-fil för.

Ännu svårare är SLOT, som används om du behöver ha flera versioner. SLOT kommer då att peka denna version till den version du stöder. De flesta programvaror har 0-värdet och tillåter bara en version åt gången.

NYCKELORD är det värde som anger vilka plattformar som din källkod kan kompilera för. De givna är amd65, x86 och möjligen arm64. En fullständig lista finns tillgänglig på ditt Gentoo-system. Observera att om du vill bidra ska du måste ställa in en tilde (~) framför arkitekturen. Det betyder att koden inte är testad, så se till att koden är väl testad innan du tar bort den här symbolen. Företrädesvis måste många användare se koden innan de tar bort tilden.

IUSE-variabeln återgår till de parametrar som du vill ställa in för din kompilator.

Du har också DEPEND, som finns i tre olika typer. RDEPEND-värdena är de värden som du använder när du kör koden. BDEPEND-värdena är de byggberoende värdena. Paketet som du försöker lägga till i Gentoo innehåller en fil som beskriver nödvändiga beroenden.

För enkla paket behöver du inget annat. Men det specifika paketet som du arbetar med kommer antagligen att ha några saker som måste göras innan du sammanställer koden. Om detta inte överensstämmer med vad Gentoo-utvecklare har förväntat sig kan du ställa in dina egna.

Funktioner

I filen kommer installationsprogrammet att använda vissa funktioner under hela processen. Till exempel, för att tillämpa korrigeringar innan du kör kommandot, src_prepare () funktionen hanterar denna situation.

De src_configure () funktionen använder econf för att ställa in, i.e., 'use_enable.'I den här funktionen kan du packa upp dina filer med kommandot packa upp. Du kan också skicka args till ./ konfigurera för ditt projekt med ekonf. Som du kan se är dessa funktioner namngivna efter deras fabriksekvivalenter, och många gånger skickar de argument över.

De src_install () funktion utför samma funktion som göra Installera skulle göra i en C / C ++ -byggnad. Det innehåller dock många alternativ som du kan slå upp i referensdokumentet.

De flesta funktioner finns för när du har specialfallsprogramvara. Du kommer antagligen att gräva igenom dessa funktioner när du försöker implementera ditt första paket.

Exempel: SimulIDE-paketfil

Här presenterar vi en fil som skapades för SimulIDE-paketet. Paketet kräver en Qt5-utvecklingsmiljö, så du måste lägga till det i din ebuild-fil. I följande bild kan du se RDEPEND-värdena som återspeglar denna idé. Biblioteken finns redan i Gentoo-arkivet, vilket gör det enkelt att peka på.

# Copyright 2021 Mats Tage Axelsson
# Distribueras under villkoren i GNU General Public License v3
EAPI = 7
DESCRIPTION = "SimulIDE simulerar dina kretsdesigner, den inkluderar Arduino-emulering."
HEMSIDA = "https: // www.simulera.com / p / hem.html "
SRC_URI = "https: // mailfence.com / pub / docs / santigoro / web / SimulIDE_0.4.14 / simulide_0.4.14-SR4_Sources.tjära.gz "
LICENS = "GPL-3"
SLOT = "0"
NYCKELORD = "~ 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 ()
packa upp simulide_0.4.14-SR4_Källor.tjära.gz

src_configure ()
econf --with-popt

I src_prepare () funktion kan du se att paketet packas upp före användning.

Täcka över

När du har trimmat och rengjort alla dina misstag kanske du vill lägga till ditt paket i Gentoo-projektet. Layman skapades så att du kan använda experimentell programvara för din huvudsakliga distributionsinstallation. Projektet heter Overlays, men kommandot att installera det heter Layman.

Slutsats

Att skapa nya paket för Gentoo är ett företag som kan sträcka dina förmågor. Ändå, om du har byggt många paket innan du använder make och gcc-verktygen, bör du kunna plocka upp den här processen ganska snabbt. Var också noga med att bidra tillbaka till samhället så mycket du kan.

Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...
Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...
OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...