Gentoo

Hoe Gentoo Ebuilds te schrijven

Hoe Gentoo Ebuilds te schrijven
Als je niet het Gentoo-pakket hebt dat je wenst, vrees dan niet! Je kunt je eigen bouwen! Om dit te doen, heb je enige ervaring nodig met het compileren van software met behulp van de bekende Linux-toolkits make, gcc en anderen. Om een ​​Gentoo-pakket te maken, wordt 'emake' gebruikt om het proces te controleren en af ​​te stemmen. Met deze tools kunt u zeer slanke pakketten maken die snel en betrouwbaar werken.

Ebuild-structuur

Om je eigen ebuild te maken, moet je beginnen met de juiste *.ebuild-bestand. Je ebuild-bestand is het hart van je hele ebuild. Het ebuild-bestand is afhankelijk van veel andere bestanden, net zoals make dat doet. In de meeste gevallen is je ebuild zelfs afhankelijk van het merk, hoewel het jouw keuze is. Het volgende is de boom van neovim:
/mnt/SW/projecten/Systeem/Gentoo/gentoo/app-editors/neovim
├── bestanden
├── neovim-0.4.3-gcc-10-fix.patch
├── neovim-0.4.4-cmake_luaversion_patch
├── neovim-0.4.4-cmake-release-type.patch
└── sysinit.vim
├── Manifest
├── metagegevens.xml
neovim-0.4.4-r100.ebuild
neovim-9999.ebuild

Dus, waar gebruik je deze bestanden voor in je applicatie?? De *.ebuild-bestand is het voor de hand liggende bestand. Dit bestand bevat de SRC_URI, die direct naar de code verwijst. Andere informatie in het bestand omvat de beschrijving, de website en verdere informatie die nodig is voor het samenstellen van het pakket.

Het manifestbestand bevat de hash die de code op unieke wijze identificeert.

de metagegevens.xml-bestand bevat de naam en het e-mailadres van de onderhouder, de projectnaam en een paar vlaggen om te compileren. De externe identiteit bevindt zich ook in dit bestand, zoals de GitHub-repository voor de upstream. De map bestanden bevat alle patches die u nodig heeft en eventuele speciale instellingen die u nodig heeft. Het bovenstaande voorbeeld toont een bestand met de juiste instellingen volgens de Gentoo-beheerders.

In het Ebuild-bestand

De waarden in het bestand zijn voor het grootste deel gemakkelijk te begrijpen. De beschrijving en startpagina zijn bedoeld om de ontwikkelaar te helpen. Het EAPI-nummer geeft aan welke versie van Gentoo wordt uitgevoerd. Je hebt ook de Licentie, wat vrij duidelijk is; match de licentie met de code waarvoor u een ebuild-bestand aan het bouwen bent.

Nog lastiger is SLOT, dat wordt gebruikt als je meerdere versies nodig hebt. SLOT zal deze build dan verwijzen naar de versie die u ondersteunt. De meeste software heeft de waarde 0, waardoor er slechts één versie tegelijk is.

KEYWORDS is de waarde die aangeeft naar welke platforms uw broncode kan worden gecompileerd. De gegeven zijn amd65, x86 en mogelijk arm64. Een volledige lijst is beschikbaar op je Gentoo-systeem. Merk op dat als je wilt bijdragen, je, moet zet een tilde (~) voor de architectuur. Dit betekent dat de code niet getest is, dus zorg ervoor dat de code goed getest is voordat je dit symbool verwijdert. Laat bij voorkeur veel gebruikers de code bekijken voordat ze de tilde verwijderen.

De IUSE-variabele keert terug naar de parameters die u voor uw compiler wilt instellen.

Je hebt ook DEPEND, dat in drie verschillende soorten verkrijgbaar is. De RDEPEND-waarden zijn de waarden die u gebruikt tijdens het uitvoeren van de code. De BDEPEND-waarden zijn de build-afhankelijke waarden. Het pakket dat je probeert toe te voegen aan Gentoo zal een bestand bevatten dat de nodige afhankelijkheden beschrijft.

Voor simpele pakketten heb je verder niets nodig. Het specifieke pakket waar u aan werkt, zal echter waarschijnlijk een aantal dingen bevatten die moeten worden gedaan voordat de code wordt gecompileerd. Als dit niet overeenkomt met wat Gentoo-ontwikkelaars hadden verwacht, kun je er zelf een opzetten.

Functies

In het bestand zal het installatieprogramma bepaalde functies gebruiken voor het hele proces. Als u bijvoorbeeld patches wilt toepassen voordat u de opdracht uitvoert, gebruikt de src_prepare() functie zal deze situatie afhandelen.

De src_configure() functie gebruikt econf om in te stellen, i.e., 'use_enable'.' In deze functie kunt u uw bestanden uitpakken met de opdracht unpack. Je kunt ook argumenten doorgeven aan ./configureer voor uw project met behulp van econf. Zoals je kunt zien, worden deze functies genoemd volgens hun make-equivalenten, en vaak geven ze argumenten door arguments.

De src_install() functie vervult dezelfde functie die: maken installeren zou doen in een C/C++ build. Het bevat echter veel opties die u kunt opzoeken in het referentiedocument.

De meeste functies zijn er voor als je speciale software hebt. U zult waarschijnlijk door deze functies gaan graven wanneer u uw eerste pakket probeert te implementeren.

Voorbeeld: SimulIDE-pakketbestand

Hier presenteren we een bestand dat is gemaakt voor het SimulIDE-pakket. Het pakket vereist een Qt5-ontwikkelomgeving, dus je moet die toevoegen aan je ebuild-bestand. In de volgende afbeelding ziet u de RDEPEND-waarden die dit idee weerspiegelen. De bibliotheken zijn al opgenomen in de Gentoo-repositories, wat het gemakkelijk maakt om naar te verwijzen.

# Copyright 2021 Mats Tage Axelsson
# Gedistribueerd onder de voorwaarden van de GNU General Public License v3
EAPI=7
DESCRIPTION="SimulIDE simuleert uw circuitontwerpen, het bevat Arduino-emulatie."
HOMEPAGE="https://www.simulide.com/p/home.html"
SRC_URI="https://mailfence.com/pub/docs/santigoro/web/SimulIDE_0.4.14/simulide_0.4.14-SR4_Bronnen.teer.gz"
LICENTIE="GPL-3"
SLOT = "0"
KEYWORDS="~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()
uitpakken simulide_0.4.14-SR4_Bronnen.teer.gz

src_configure()
econf --with-popt

In de src_prepare() functie, kunt u zien dat het pakket voor gebruik is uitgepakt.

Overlay

Als je al je fouten hebt bijgesneden en schoongemaakt, wil je misschien je pakket toevoegen aan het Gentoo-project. Layman is gemaakt zodat u experimentele software kunt gebruiken voor uw hoofddistributie-installatie. Het project heet Overlays, maar de opdracht om het te installeren heet Layman.

Conclusie

Het maken van nieuwe pakketten voor Gentoo is een onderneming die je mogelijkheden kan vergroten. Toch, als je veel pakketten hebt gebouwd voordat je make en de gcc-suite met tools hebt gebruikt, zou je dit proces vrij snel moeten kunnen oppikken. Zorg er ook voor dat u zoveel mogelijk bijdraagt ​​aan de gemeenschap.

Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...