Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa

Darmowa diagnoza laptopa

Dojazd do klienta bezpłatnie

Dojazd do klienta bezpłatnie

Laptopy zastępcze bezpłatnie

Laptopy zastępcze bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

Odbiór i zwrot sprzętu bezpłatnie

PKGBUILD

Termin Definicja
PKGBUILD

PKGBUILD to plik skryptowy definiujący sposób budowania pakietu w systemie Arch Linux dla menedżera pakietów pacman.

PKGBUILD jako opis procesu budowania pakietu

PKGBUILD jest plikiem używanym w systemie Arch Linux oraz w dystrybucjach korzystających z jego narzędzi pakietowych. Zawiera informacje i polecenia potrzebne do przygotowania pakietu instalacyjnego obsługiwanego przez pacman. Sam plik nie jest gotowym pakietem binarnym. Stanowi skrypt powłoki, który opisuje źródła programu, jego wersję, zależności oraz kolejne czynności wykonywane podczas budowania.

Typowy PKGBUILD definiuje między innymi zmienne pkgname, pkgver, pkgrel, arch, source i sha256sums. pkgname określa nazwę pakietu, pkgver jego wersję źródłową, a pkgrel numer wydania receptury dla tej samej wersji programu. Zmienna arch wskazuje architekturę, dla której pakiet może zostać zbudowany, na przykład x86_64 albo any. W polu source podaje się pliki lub adresy źródeł, natomiast sumy kontrolne pozwalają sprawdzić ich integralność przed użyciem.

Najważniejsze funkcje i zmienne w pliku PKGBUILD

Proces budowania jest zwykle podzielony na funkcję prepare(), build() i package(). Funkcja prepare() służy do przygotowania kodu, na przykład zastosowania poprawki zapisanej w pliku patch. W build() wykonuje się kompilację albo generowanie plików programu. Funkcja package() kopiuje wynik do katalogu pakietu i umieszcza pliki w odpowiadających im lokalizacjach systemu docelowego. Nie każdy PKGBUILD musi zawierać wszystkie te funkcje, jeżeli dany proces budowania ich nie wymaga.

Istotne jest rozróżnienie zależności używanych podczas budowania od zależności potrzebnych po instalacji. makedepends zawiera narzędzia wymagane do kompilacji lub przygotowania pakietu, a depends określa programy i biblioteki konieczne do uruchomienia gotowego pakietu. Opcjonalne funkcje mogą być opisane przez optdepends. Informacje o pakiecie, takie jak opis, strona projektu, licencja i grupa pakietów, zapisuje się między innymi w zmiennych pkgdesc, url, license i groups.

Do zbudowania pakietu z poprawnego PKGBUILD stosuje się polecenie makepkg. Narzędzie pobiera źródła, weryfikuje sumy kontrolne, wykonuje funkcje skryptu i tworzy plik pakietu, którego nazwa zawiera zwykle nazwę programu, wersję, wydanie oraz architekturę. Gotowy pakiet można następnie zainstalować za pomocą pacman -U. W przypadku pakietów z Arch User Repository często używa się także narzędzi pomocniczych, ale ich działanie nadal opiera się na odczytaniu i wykonaniu PKGBUILD.

Weryfikacja źródeł, zależności i bezpieczeństwa wykonania

PKGBUILD jest wykonywany jako skrypt powłoki, dlatego jego treść należy analizować tak samo uważnie jak inne skrypty uruchamiane w systemie. Szczególne znaczenie mają funkcje zawierające polecenia powłoki, adresy pobierania oraz sposób instalowania plików w katalogu pakietu. Przed budowaniem warto sprawdzić, czy źródła pochodzą z oczekiwanego projektu, czy suma kontrolna odpowiada pobranemu plikowi oraz czy zależności są zgodne z rzeczywistymi wymaganiami programu.

W PKGBUILD mogą występować tablice, takie jak source, depends i sha256sums, a także warianty nazw zmiennych przeznaczone dla pakietów dzielonych na kilka części. Zmienne pkgname, pkgver i pkgrel mogą być wykorzystywane w ścieżkach oraz nazwach plików, dlatego błędna wartość jednej z nich może doprowadzić do nieudanego budowania albo utworzenia pakietu z niewłaściwą zawartością. Po zakończeniu procesu można przejrzeć zawartość archiwum pakietu i sprawdzić, czy pliki trafiły do właściwych katalogów.

Problemy z PKGBUILD często wynikają z nieaktualnych adresów źródeł, zmian w systemie budowania programu, brakujących zależności albo niezgodności między deklarowaną a faktyczną architekturą. Błąd w funkcji build() może zatrzymać kompilację, natomiast błąd w package() może spowodować powstanie pakietu bez wymaganych plików. Sama obecność pliku PKGBUILD nie gwarantuje więc poprawności pakietu; potrzebna jest kontrola przebiegu makepkg oraz komunikatów wyświetlanych przez narzędzia systemowe.

PKGBUILD w praktyce serwisowej na komputerze z Arch Linux

Na laptopie lub komputerze stacjonarnym plik PKGBUILD może być potrzebny wtedy, gdy program nie jest dostępny w gotowych repozytoriach albo użytkownik buduje pakiet z udostępnionych źródeł. Diagnostyka problemu powinna obejmować wersję systemu Arch Linux, wersję narzędzia makepkg, dostępność kompilatora, poprawność zależności oraz pełny komunikat błędu. Ważne jest także ustalenie, czy problem dotyczy samego programu, jego źródeł, środowiska budowania, czy niewłaściwie przygotowanego PKGBUILD.

Jeżeli budowanie kończy się błędem, nie należy automatycznie usuwać plików tymczasowych. Mogą one zawierać komunikaty wskazujące konkretną fazę awarii. Przydatne jest rozróżnienie błędu pobierania źródła, błędu weryfikacji sumy, błędu kompilatora oraz błędu instalowania plików do pakietu. Po zmianie PKGBUILD należy ponownie sprawdzić zależności i źródła, ponieważ korekta jednej funkcji nie zawsze usuwa problem występujący w innym etapie procesu.

Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów stacjonarnych PC i ich podzespołów, w tym diagnostykę problemów z oprogramowaniem używanym na komputerze. W przypadku PKGBUILD zakres czynności zależy od tego, czy przyczyną jest konfiguracja systemu, uszkodzone środowisko programowe, brak wymaganych składników, czy błąd w samej recepturze pakietu.