Gentoo

Come scrivere ebuild Gentoo

Come scrivere ebuild Gentoo
Se non hai il pacchetto Gentoo che desideri, non temere! Puoi costruire il tuo! Per fare ciò, avrai bisogno di una certa esperienza con la compilazione di software utilizzando i noti toolkit Linux make, gcc e altri. Per creare un pacchetto Gentoo, si usa 'emake' per controllare e mettere a punto il processo. Usando questi strumenti, puoi creare pacchetti molto sottili che vengono eseguiti in modo rapido e affidabile.

Ebuild struttura

Per creare il tuo ebuild, devi iniziare con il corretto *.ebuild file. Il tuo file ebuild è il cuore di tutto il tuo ebuild. Il file ebuild dipende da molti altri file, proprio come make fa. In effetti, nella maggior parte dei casi, il tuo ebuild dipenderà da make, anche se è una tua scelta. Quello che segue è l'albero di neovim:
/mnt/SW/projects/System/Gentoo/gentoo/app-editors/neovim
file
├── neovim-0.4.3-gcc-10-fix.patch
├── neovim-0.4.4-cmake_luaversion_patch
├── neovim-0.4.4-cmake-rilascio-tipo.patch
└── sysinit.vim
manifesto
metadati.xml
neovim-0.4.4-r100.ebuild
neovim-9999.ebuild

Quindi, per cosa usi questi file nella tua applicazione?? Il *.ebuild è il file ovvio. Questo file contiene SRC_URI, che punta direttamente al codice. Altre informazioni nel file includono la descrizione, il sito Web e ulteriori informazioni necessarie per la compilazione del pacchetto.

Il file Manifest contiene l'hash che identifica in modo univoco il codice.

I metadati.xml contiene il nome e l'indirizzo email del manutentore, il nome del progetto e alcuni flag per la compilazione. Anche l'identità remota si trova in questo file, come il repository GitHub per l'upstream. La directory dei file contiene tutte le patch necessarie e le impostazioni speciali necessarie any. L'esempio sopra mostra un file con le impostazioni appropriate secondo i manutentori di Gentoo.

All'interno del file Ebuild

I valori all'interno del file sono facili da capire, per la maggior parte. La descrizione e la home page sono per l'aiuto dello sviluppatore. Il numero EAPI indica quale versione di Gentoo verrà eseguita. Hai anche la Licenza, che è abbastanza chiara; abbina la licenza al codice per il quale stai creando un file ebuild.

Ancora più complicato è SLOT, che viene utilizzato se è necessario disporre di più versioni. SLOT indicherà quindi questa build alla versione che stai supportando. La maggior parte del software avrà il valore 0, consentendo solo una versione alla volta.

KEYWORDS è il valore che indica su quali piattaforme può essere compilato il codice sorgente. Quelli indicati sono amd65, x86 e possibilmente arm64. Un elenco completo è disponibile sul tuo sistema Gentoo. Nota che se vuoi contribuire, tu dovere metti una tilde (~) davanti all'architettura. Ciò significa che il codice non è stato testato, quindi assicurati che il codice sia ben testato prima di rimuovere questo simbolo. Preferibilmente, chiedi a molti utenti di visualizzare il codice prima di rimuovere la tilde.

La variabile IUSE ritorna ai parametri che vuoi impostare per il tuo compilatore.

Hai anche DEPEND, disponibile in tre diversi tipi. I valori RDEPEND sono i valori che usi durante l'esecuzione del codice. I valori BDEPEND sono i valori dipendenti dalla build. Il pacchetto che stai cercando di aggiungere a Gentoo conterrà un file che descrive le dipendenze necessarie.

Per i pacchi semplici non serve altro. Tuttavia, il pacchetto specifico su cui stai lavorando avrà probabilmente alcune cose che devono essere fatte prima di compilare il codice. Se questo non corrisponde a ciò che gli sviluppatori di Gentoo si aspettavano, puoi crearne uno tuo.

Funzioni

Nel file, il programma di installazione utilizzerà determinate funzioni per l'intero processo. Ad esempio, per applicare le patch prima di eseguire il comando, src_prepare() la funzione gestirà questa situazione.

Il src_configure() la funzione usa econf per impostare, i.e., 'use_enable.' In questa funzione, puoi decomprimere i tuoi file usando il comando unpack. Puoi anche passare argomenti a ./configura per il tuo progetto usando eco. Come puoi vedere, queste funzioni sono denominate in base ai loro equivalenti make e molte volte passano argomenti attraverso argument.

Il src_install() funzione svolge la stessa funzione che rendere installare farebbe in una build C/C++. Tuttavia, contiene molte opzioni che puoi cercare nel documento di riferimento.

La maggior parte delle funzioni sono disponibili quando si dispone di un software per casi speciali. Probabilmente inizierai a esaminare queste funzioni quando proverai a implementare il tuo primo pacchetto.

Esempio: file pacchetto SimulIDE

Qui presentiamo un file che è stato creato per il pacchetto SimulIDE. Il pacchetto richiede un ambiente di sviluppo Qt5, quindi dovrai aggiungerlo nel tuo file ebuild. Nell'immagine seguente, puoi vedere i valori RDEPEND che riflettono questa idea. Le librerie sono già contenute nei repository Gentoo, il che rende facile puntare a.

# Copyright 2021 Mats Tage Axelsson
# Distribuito secondo i termini della GNU General Public License v3
EAPI=7
DESCRIZIONE="SimulIDE simula i tuoi progetti di circuiti, include l'emulazione Arduino Arduino."
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_Fonti.catrame.gz"
LICENZA="GPL-3"
SLOT="0"
PAROLE CHIAVE="~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()
scompatta simulide_0.4.14-SR4_Fonti.catrame.gz

src_configure()
econf --with-popt

Nel src_prepare() funzione, puoi vedere che il pacchetto è stato decompresso prima dell'uso.

Sovrapposizione

Quando hai tagliato e ripulito tutti i tuoi errori, potresti voler aggiungere il tuo pacchetto al progetto Gentoo. Layman è stato creato in modo che tu possa utilizzare il software sperimentale per l'installazione della tua distribuzione principale. Il progetto si chiama Overlays, ma il comando per installarlo si chiama Layman.

Conclusione

Creare nuovi pacchetti per Gentoo è un'impresa che può aumentare le tue capacità. Anche così, se hai creato molti pacchetti prima di usare make e la suite di strumenti gcc, dovresti essere in grado di iniziare questo processo piuttosto rapidamente. Inoltre, assicurati di contribuire il più possibile alla comunità.

Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...
Come sviluppare un gioco su Linux
Un decennio fa, non molti utenti Linux avrebbero previsto che il loro sistema operativo preferito un giorno sarebbe diventato una piattaforma di gioco...