Arch build system (Magyar) - ArchWiki

Jump to content

# Arch build system (Magyar)

From ArchWiki
Fordítás állapota: Ez az oldal az angol Arch build system című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2025.05.31. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

További oldalak az adott témakörben

- Arch package guidelines (Magyar)
- Arch User Repository (Magyar)
- Creating packages (Magyar)
- Kernel (Magyar)/Arch build system (Magyar)
- Official repositories (Magyar)
- Patching packages (Magyar)

Az Arch build system (Angol rövidítéssel: ABS. Magyarra lefordítva: Arch létrehozási rendszer, Arch építési rendszer, Arch szoftvercsomag építési rendszer, Arch szoftvercsomag létrehozási rendszer) tulajdonképpen egy rendszer amely a szoftver forráskódjának a lefordítását és a lefordított szoftver csomagolását végzi. Amíg a pacman az Arch operációs rendszer speciális segédprogramja, amely a binárisra lefordított szoftvercsomagok kezelésére szolgál, addig az Arch build system segédprogramkészlet arra szolgál, hogy forráskódból a számítógépre feltelepíthető .pkg.tar.zst szoftvercsomagokat hozza létre.

Az Arch build system összehasonlítható a *BSD ports rendszerével, amely automatizálja a szoftver forráskódból történő lefordításának folyamatát. A rendszer egy portot használ a megadott szoftver letöltésére, kicsomagolására, javítására, lefordítására és feltelepítésére. Egy port csupán egy kis könyvtár a felhasználó számítógépén, a feltelepítendő szoftver nevét viselve, amely néhány fájlt tartalmaz az utasításokkal a szoftver forráskódból történő lefordításához és feltelepítéséhez. Ez a szoftver számítógépre történő feltelepítését egyszerűvé teszi azáltal, hogy csak be kell gépelni a `make` vagy `make install clean` parancsot a port könyvtárában.

Az Arch build system hasonló koncepción alapul. Tartalmaz egy gyűjteményt a git-tárolókból minden, az Arch Linuxban elérhető szoftvercsomag számára. Minden tároló tartalmaz egy PKGBUILD fájlt (és néha más fájlokat is), de nem tartalmazza a szoftver forráskódját vagy binárisát. Amikor Ön a makepkg parancsot futtatja egy könyvtárban, akkor a szoftver forráskódjai letöltődnek, a szoftver forráskódból lefordítódik, majd a build könyvtáron belül csomagolódik. Ezt követően használható a pacman annak érdekében, hogy a szoftvercsomag fel legyen telepítve a számítógépre.

## Az Arch Build System segédprogramjai és a szoftvercsomagok létrehozásának a folyamata

Az Arch build system számos olyan összetevőt és segédprogramot tartalmaz, amelyek a szoftvercsomagok forráskódból történő létrehozásának folyamatában kerülnek felhasználásra:

Repository
  A tároló (kódtároló, programkódtároló, angolul repository) az a könyvtárszerkezet, amely tartalmazza az összes hivatalos szoftvercsomag létrehozásához szükséges fájlt, de nem tartalmazza magukat a szoftvercsomagokat, illetve nem tartalmazza a szoftverek forráskódfájljait. A tároló a gitlab.archlinux.org webhelyen lévő Git tárolók formájában érhető el. További információért tekintse meg a #Repository struktúrája című szakaszt.

PKGBUILD
  Egy Bash szkriptfájl, amely tartalmazza a forráskód URL-címét, tartalmazza a forráskód gépi kódra történő lefordításának utasításait, és tartalmazza a szoftvercsomagolási utasításokat.

makepkg
  Egy parancssorban futtatható program, amely beolvassa a `PKGBUILD` szkriptfájlokat, automatikusan letölti és lefordítja a forráskódokat, majd létrehoz egy .pkg.tar* fájlt a `makepkg.conf` beállításfájlban megtalálható `PKGEXT` tömb szerint. Ön a makepkg segítségével saját egyéni szoftvercsomagokat is elkészíthet az Arch User Repository (AUR) vagy harmadik fél forráskódjaiból. További információért tekintse meg a Szoftvercsomagok létrehozása című oldalt.

pacman
  A pacman teljesen különálló program, de szükségszerűen — akár a makepkg által, akár manuális úton — meghívásra kerül a létrehozott szoftvercsomagok feltelepítése érdekében, eltávolítása érdekében, valamint a szoftvercsomag-függőségek letöltése érdekében.

devtools pkgctl
  A devtools(7) az Arch Linux disztribúció hivatalos szoftvercsomag-tárolójába beletartozó szoftvercsomagok létrehozására és karbantartására szolgáló több segédprogram. A pkgctl(1) egy magas szintű segédprogram, amely segítséget nyújt az Arch Linux szoftvercsomagok forráskódtárolóikból történő létrehozásához, és a bináris tárolókba történő kiadásához.

AUR
  Az Arch User Repository elkülönül a hivatalos `PKGBUILD` fájltárolótól, de az AUR-ból származó szoftvercsomagok ugyanazon segédprogramok használatával hozhatók létre. Több tízezer felhasználó által beküldött `PKGBUILD` szkriptfájlt tartalmaz olyan szoftverekhez, amelyek nem érhetők el hivatalos Arch szoftvercsomagok formájában. Ha Önnek a hivatalos Arch fán kívül kell egy szoftvercsomagot létrehoznia, akkor jó eséllyel megtalálható az AUR tárolóban.

Figyelmeztetés A hivatalos `PKGBUILD` szkriptfájlok feltételezik, hogy a szoftvercsomagok tiszta chroot környezetben kerülnek létrehozásra. A szoftverek szennyezett létrehozó rendszeren történő létrehozása sikertelen lehet, vagy váratlan működést okozhat futásidőben, mivel ha a létrehozó rendszer (build rendszer) dinamikusan érzékeli a szoftvercsomag-függőségeket, akkor az eredmény attól függ, hogy milyen szoftvercsomagok érhetők el a létrehozó rendszeren.

### Repository struktúrája

Minden szoftvercsomagnak saját forráskód tárolója van az Arch Linux GitLab példányán található archlinux/packaging/packages névtérben. Minden tároló tartalmazza a `PKGBUILD` szkriptfájlt és a hivatalos létrehozásokhoz használt fájlokat. Emellett néhány olyan fájl is megtalálható itt, amelyeket a fejlesztők használnak a létrehozási folyamathoz.

Például az acl könyvtárstruktúrája így néz ki:

    acl
    ├── keys
    │   └── pgp
    │       ├── 259B3792B3D6D319212CC4DCD5BF9FEB0313653A.asc
    │       ├── 600CD204FBCEA418BD2CA74F154343260542DF34.asc
    │       └── B902B5271325F892AC251AD441633B9FE837F581.asc
    ├── PKGBUILD
    └── .SRCINFO

A szoftvercsomag forráskódja nincs jelen a könyvtárban. Ehelyett a `PKGBUILD` szkriptfájl tartalmaz egy URL-címet, amely letölti a forráskódot a szoftvercsomag létrehozásakor.

Amikor egy hivatalos szoftvercsomag elkészül, kiadásra kerül valamelyik hivatalos szoftvercsomag-tárolóban: core, extra, multilib, vagy először valamelyik tesztelési szoftvercsomag-tárolóban. Ezek a szoftvercsomag-tárolók bináris tárolók, és nem a GitLabon vannak hosztolva, hanem tükörszervereken vannak elérhetővé téve a felhasználóknak.

## Felhasználási esetek

Az Arch build rendszer bizonyos, a forráskódból történő fordítással kapcsolatos feladatokat automatizál. Felhasználási esetei a következők:

- Bármely olyan eset, amikor szoftvercsomagot kell forráskódból fordítania vagy újrafordítania.
- Hivatalos bináris szoftvercsomagok készítése Arch Linux számára fejlesztők és csomagolóik számára.
- Új szoftvercsomagok készítése és telepítése olyan szoftverekből, amelyekhez még nincs elérhető szoftvercsomag. (Tekintse meg a Szoftvercsomagok létrehozása című oldalt.)
- Meglévő szoftvercsomagok testreszabása az Ön igényei szerint. (Például: Opciók engedélyezése vagy letiltása, javítások alkalmazása.)
- A teljes rendszer újbóli felépítése a saját kódfordítói jelölőzászlókkal, "FreeBSD-stílusban".
- Saját egyedi kernel tiszta fordítása és telepítése. (Tekintse meg a Kernel forráskódjának lefordítása binárisan futtatható kódra című leírást.)
- Kernelmodulfájlok működésének biztosítása egy egyedi kernellel.
- Arch szoftvercsomag újabb, régebbi, béta vagy fejlesztői verziójának könnyű fordítása és telepítése a PKGBUILD verziószámának szerkesztésével.

## Használat

### PKGBUILD forráskód beszerzése

Amennyiben Ön egy szoftvercsomagot forráskódból szeretne összeállítani, akkor a szükséges PKGBUILD szkriptfájlt megszerezheti a pkgctl segédprogrammal, vagy közvetlenül a Git parancs használatával.

#### A pkgctl segédprogram használata

Előfeltételként telepítse a devtools szoftvercsomagot. A pkgctl egy olyan segédprogram, amely megkönnyíti az Arch Linux szoftvercsomagok forráskódjának előkészítését.

Ha Ön a pkgctl segítségével a pkgname nevű szoftvercsomag legfrissebb létrehozási fájljait tartalmazó Git tárolót szeretné klónozni, akkor adja ki a következő parancsot:

    $ pkgctl repo clone pkgbase

Tipp Alapértelmezett körülmények között a fenti parancs SSH protokollon keresztül szokott klónozni, így ha még nem állított be SSH kulcsot a saját Arch GitLab fiókjában, akkor Önnek HTTPS protokollon keresztül kell klónoznia: `pkgctl repo clone --protocol=https pkgbase`.

Vegye figyelembe, hogy itt a létrehozási forráskódfájlok alatt a PKGBUILD szkriptfájlokat, valamint esetleg néhány egyéb szükséges fájlt, például kulcsfájlokat értjük. Ez azt jelenti, hogy az Arch Linux szoftvercsomag létrehozási rendszeréhez szükséges alapvető fájlokról van szó. Nem utal a csomag által készített forráskódfájlokra, például C vagy Python fájlokra, amelyeket a csomag szerzői írtak.

Ez nemcsak a jelenlegi létrehozási forráskódfájlokat adja meg Önnek, hanem azok korábbi verzióit is. Továbbá az összes többi git parancsot is használhatja egy korábbi csomagverzió ellenőrzésére vagy egyedi változtatások nyomon követésére.

Ha egy szoftvercsomag konkrét verzióját szeretné beszerezni, akkor használhatja a következőhöz hasonló parancsot:

    $ pkgctl repo clone --switch="2:1.19.5-1" go

A további információkért és az elérhető egyéb parancsokért olvassa el a pkgctl-repo-clone(1) man súgót.

#### Git közvetlen használata

Használja a következő git parancsot egy szoftvercsomag leklónozása érdekében:

    $ git clone https://gitlab.archlinux.org/archlinux/packaging/packages/pkgname.git

Például az Apache webszerver létrehozási fájljainak a lemásolása érdekében a következőt kell tenni:

    $ git clone https://gitlab.archlinux.org/archlinux/packaging/packages/apache.git

### Szoftvercsomag létrehozása

Állítsa be a makepkg parancsot a letöltött PKGBUILD szkriptfájlokból történő szoftvercsomagok összeállításához, ahogyan az a makepkg#Beállítás című részben le van írva.

Ezután másolja át a módosítani kívánt PKGBUILD szkriptfájlt tartalmazó könyvtárat egy új helyre. Végezze el ott a kívánt módosításokat, és ugyanott használja a makepkg parancsot a makepkg#Használat című leírás szerint az új szoftvercsomag létrehozásához és feltelepítéséhez.

## Tippek és trükkök

### Módosított szoftvercsomagok megőrzése

Az operációs rendszer pacman szoftvercsomag-kezelővel történő frissítése során a módosított szoftvercsomagot felül fogja írni a hivatalos szoftvercsomag-tárolókból származó azonos nevű szoftvercsomag. Az alábbi utasításokban az olvasható, hogy miként lehet ezt a viselkedést elkerülni.

Illessze be a csoporttömböt a PKGBUILD szkriptfájlba, és adja hozzá a szoftvercsomagot egy `modified` nevű csoporthoz.

    PKGBUILD

    groups=('modified')

Adja hozzá ezt a csoportot a `IgnoreGroup` szekcióhoz a `/etc/pacman.conf` fájlban.

    /etc/pacman.conf

    IgnoreGroup = modified

Ha új szoftvercsomag-verziók érhetők el a hivatalos szoftvercsomag-tárolókban a rendszerfrissítés során, akkor a pacman kiír egy megjegyzést, hogy kihagyja ezt a frissítést, mivel az szerepel az IgnoreGroup szekcióban. Ekkor a módosított szoftvercsomagot újból létre kell hozni, hogy elkerülje a részleges frissítéseket.

Categories:

- About Arch (Magyar)
- Package development (Magyar)
- Package management (Magyar)

Arch build system (Magyar)
Add topic