Struttura Ebuild
Per creare il tuo ebuild, devi iniziare con il corretto *.file ebuild. Il tuo file ebuild è il cuore di tutta la tua ebuild. Il file Ebuild dipende da molti altri file, proprio come fare. 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/Progetti/Sistema/Gentoo/Gentoo/Editori di app/Neovim
├── file
│ ├── Neovim-0.4.3-GCC-10-Fix.toppa
│ ├── Neovim-0.4.4-cmake_luaversion_patch
│ ├── Neovim-0.4.Tipo 4-cmake-release.toppa
│ └── sysinit.vim
├── manifesta
├── Metadati.XML
├── Neovim-0.4.4-R100.Ebuild
└── Neovim-9999.Ebuild
Quindi, per cosa usi questi file nella tua applicazione? IL *.Il file 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.Il file XML contiene il nome e l'indirizzo e -mail del manutentore, il nome del progetto e alcuni flag per la compilazione. L'identità remota si trova anche in questo file, come il repository GitHub per l'Upstream. La directory dei file contiene tutte le patch di cui potresti aver bisogno e tutte le impostazioni speciali necessarie. L'esempio sopra mostra un file con impostazioni appropriate in base ai 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, il che è abbastanza chiaro; Abbina la licenza al codice per il quale si sta costruendo un file Ebuild.
Ancora più complicato è lo slot, che viene utilizzato se è necessario avere più versioni. Lo slot indicherà quindi questa build alla versione che stai supportando. La maggior parte del software avrà il valore 0, consentendo una sola versione alla volta.
Le parole chiave sono il valore che indica quali piattaforme a cui è possibile compilare il codice sorgente. Quelli dati sono AMD65, X86 e possibilmente ARM64. Un elenco completo è disponibile sul tuo sistema Gentoo. Nota che se vuoi contribuire, tu dovere Imposta un tilde (~) di fronte all'architettura. Ciò significa che il codice non è 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 il tilde.
La variabile IUSE ritorna ai parametri che si desidera impostare per il tuo compilatore.
Devi anche dipendere, che è disponibile in tre diversi tipi. I valori RDEPEND sono i valori utilizzati 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 pacchetti semplici, non hai bisogno di nient'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 aspettano, puoi impostare il tuo.
Funzioni
Nel file, l'installatore utilizzerà alcune funzioni per l'intero processo. Ad esempio, per applicare le patch prima di eseguire il comando, il src_prepare () La funzione gestirà questa situazione.
IL src_configure () La funzione utilizza ECONF per impostare, i.e., 'use_enable.'In questa funzione, puoi disimballare i tuoi file utilizzando il comando Unpack. Puoi anche passare Args a ./configura per il tuo progetto utilizzando Econf. Come puoi vedere, queste funzioni sono nominate in base alle loro rese equivalenti e molte volte passano argomenti.
IL src_install () La funzione esegue la stessa funzione che Fare installare farebbe in una build C/C ++. Tuttavia, contiene molte opzioni che puoi cercare nel documento di riferimento.
La maggior parte delle funzioni sono lì per quando si dispone di software di custodia speciale. Probabilmente inizierai a scavare attraverso queste funzioni quando proverai a implementare il tuo primo pacchetto.
Esempio: file del pacchetto di simulide
Qui, presentiamo un file creato per il pacchetto Simulide. Il pacchetto richiede un ambiente di sviluppo QT5, quindi dovrai aggiungerlo nel tuo file Ebuild. Nella seguente immagine, puoi vedere i valori RDEPER che riflettono questa idea. Le biblioteche sono già contenute nei repository di Gentoo, il che rende facile indicare.
# Copyright 2021 Mats Tage AxelssonNel src_prepare () funzione, puoi vedere che il pacchetto è disimballato prima dell'uso.
Overlay
Quando hai tagliato e pulito tutti i tuoi errori, potresti voler aggiungere il tuo pacchetto al progetto Gentoo. Layman è stato creato in modo da poter utilizzare il software sperimentale per l'installazione di distribuzione principale. Il progetto si chiama sovrapposizioni, ma il comando per installarlo si chiama layman.
Conclusione
Creare nuovi pacchetti per Gentoo è un'impresa che può allungare le tue capacità. Anche così, se hai costruito molti pacchetti prima di utilizzare Make e la suite di strumenti GCC, dovresti essere in grado di raccogliere questo processo piuttosto rapidamente. Inoltre, assicurati di contribuire al più possibile alla comunità.