Jak pisać gentoo ebuilds

Jak pisać gentoo ebuilds
Jeśli nie masz pakietu gentoo, którego pragniesz, nie bój się! Możesz zbudować swój własny! Aby to zrobić, będziesz potrzebować pewnego doświadczenia w komplikującym oprogramowaniu za pomocą znanych zestawów narzędzi Linux, GCC i innych. Aby utworzyć pakiet Gentoo, „Emake” służy do kontrolowania i dostrojenia procesu. Korzystając z tych narzędzi, możesz tworzyć bardzo smukłe pakiety, które działają szybko i niezawodnie.

Struktura ebuild

Aby stworzyć własną ebuild, musisz zacząć od prawidłowego *.plik ebuild. Twój plik ebuild jest sercem całej Twojej ebuild. Plik ebuild zależy od wielu innych plików, podobnie jak Make. W rzeczywistości w większości przypadków Twój ebuild będzie zależeć od Make, choć jest to twój wybór. Poniżej znajduje się drzewo Neovim:
/MNT/SW/Project/System/Gentoo/Gentoo/App-Editors/Neovim
Pliki ├wią
│ ├wiąt neovim-0.4.3-GCC-10-FIX.skrawek
│ ├wiąt neovim-0.4.4-cmake_luaversion_patch
│ ├wiąt neovim-0.4.4-kmake-typ.skrawek
│ └wiąt sysinit.krzepa
├wiąt manifest
Metadane ├wią.XML
├─wią Neovim-0.4.4-R100.Ebuild
└── Neovim-9999.Ebuild

Do czego używasz tych plików w Twojej aplikacji? * *.plik ebuild to oczywisty plik. Ten plik zawiera src_uri, który bezpośrednio wskazuje kod. Inne informacje w pliku zawierają opis, stronę internetową i dalsze informacje niezbędne do opracowania pakietu.

Plik manifestu zawiera skrót, który jednoznacznie identyfikuje kod.

Metadane.Plik XML zawiera nazwisko i adres e -mail opiekuna, nazwę projektu i kilka flag do kompilacji. Zdalna tożsamość znajduje się również w tym pliku, podobnie jak repozytorium GitHub dla uptream. Katalog plików zawiera wszelkie potrzebne łatki oraz wszelkie specjalne ustawienia, których potrzebujesz. Powyższy przykład pokazuje plik z odpowiednimi ustawieniami według opiekunów Gentoo.

Wewnątrz pliku Ebuild

Wartości wewnątrz pliku są łatwe do zrozumienia, w przeważającej części. Opis i strona główna służą pomocy programisty. Numer EAPI wskazuje, która wersja gentoo zostanie uruchomiona. Masz również licencję, co jest całkiem jasne; Dopasuj licencję do kodu, dla którego budujesz plik ebuild.

Jeszcze trudniejsze jest miejsce, które jest używane, jeśli potrzebujesz kilku wersji. Slot następnie wskazuje tę wersję na wersję, którą obsługujesz. Większość oprogramowania będzie miała wartość 0, umożliwiając tylko jedną wersję na raz.

Słowa kluczowe to wartość wskazująca, które platformy, do których może skompilować kod źródłowy. Dane są AMD65, x86 i prawdopodobnie ARM64. Pełna lista jest dostępna w twoim systemie Gentoo. Zauważ, że jeśli chcesz się wnieść, ty musieć Ustaw Tilde (~) przed architekturą. Oznacza to, że kod jest niesprawdzony, więc upewnij się, że kod jest dobrze przetestowany przed usunięciem tego symbolu. Najlepiej, poproś wielu użytkowników przeglądanych kod przed usunięciem Tylde.

Zmienna iuse powraca do parametrów, które chcesz ustawić dla kompilatora.

Masz również zależność, która jest dostępna w trzech różnych typach. Wartości RDepend to wartości, których używasz podczas uruchamiania kodu. Wartości Bdepend to wartości zależne od kompilacji. Pakiet, który próbujesz dodać do Gentoo, będzie zawierać plik opisujący niezbędne zależności.

W przypadku prostych pakietów nie potrzebujesz niczego innego. Jednak konkretny pakiet, nad którym pracujesz, prawdopodobnie będzie miał pewne rzeczy, które należy zrobić przed opracowaniem kodu. Jeśli to nie pasuje.

Funkcje

W pliku instalator użyje niektórych funkcji dla całego procesu. Na przykład, aby zastosować łatki przed uruchomieniem polecenia, src_prepare () Funkcja poradzi sobie z tą sytuacją.

src_configure () Funkcja używa econf do ustawiania, i.mi., „Us_enable.„W tej funkcji możesz rozpakować swoje pliki za pomocą polecenia Unpack. Możesz także przekazać args ./Skonfiguruj dla swojego projektu za pomocą Econf. Jak widać, funkcje te są nazwane zgodnie z ich odpowiednikami, i wiele razy przekazują argumenty.

src_install () funkcja wykonuje tę samą funkcję, która robić zainstalować zrobiłby w kompilacji C/C ++. Zawiera jednak wiele opcji, które można wyszukać w dokumencie referencyjnym.

Większość funkcji jest tam, gdy masz oprogramowanie specjalne. Prawdopodobnie zaczniesz kopać te funkcje, gdy spróbujesz wdrożyć swój pierwszy pakiet.

Przykład: plik pakietu Simulide

Tutaj przedstawiamy plik, który został utworzony dla pakietu Simulide. Pakiet wymaga środowiska programistycznego QT5, więc musisz to dodać w pliku Ebuild. Na poniższym obrazie możesz zobaczyć wartości RDEPEND odzwierciedlające ten pomysł. Biblioteki są już zawarte w repozytoriach Gentoo, co ułatwia wskazanie.

# Copyright 2021 Mats Tage Axelsson
# Rozpowszechniane zgodnie z warunkami ogólnej licencji publicznej GNU v3
Eepi = 7
Opis = "Simulide symuluje projekty obwodu, obejmuje emulację Arduino."
HomePage = "https: // www.Symulid.com/p/dom.html "
Src_uri = "https: // mailafence.com/pub/docs/santigoro/web/simulide_0.4.14/Simulide_0.4.14-SR4_SOURCES.smoła.GZ "
Licencja = "GPL-3"
Slot = "0"
Słowa kluczowe = "~ x86 ~ AMD64"
Rdepend = "dev-qt/qtsvg
dev-qt/qtxml
dev-qt/qtscript
dev-qt/qtwidgets
dev-qt/qtconcurrent
dev-qt/qtserialport
dev-qt/qtmultimedia "
Zależne = "$ rDepend
dev-libs/libelf
dev-embedded/avr-libc "
src_prepare ()
Rozpakowanie Simulide_0.4.14-SR4_SOURCES.smoła.GZ

src_configure ()
econf--with-pop

w src_prepare () funkcja, widać, że pakiet jest rozpakowany przed użyciem.

Narzuta

Kiedy przycinasz i wyczyściłeś wszystkie swoje błędy, możesz dodać paczkę do projektu Gentoo. Layman został stworzony, aby można było użyć oprogramowania eksperymentalnego do głównej instalacji dystrybucji. Projekt nazywa się nakładkami, ale polecenie go instalacji nazywa się laika.

Wniosek

Tworzenie nowych pakietów dla Gentoo to przedsięwzięcie, które może rozciągnąć twoje umiejętności. Mimo to, jeśli zbudowałeś wiele pakietów przed użyciem Make i GCC narzędzi, powinieneś być w stanie podnieść ten proces dość szybko. Pamiętaj też, aby wnieść wkład do społeczności tak bardzo, jak to możliwe.