Jump to content

PKGBUILD (Magyar)

From ArchWiki
FordĂ­tĂĄs ĂĄllapota: Ez az oldal az angol PKGBUILD cĂ­mƱ oldal magyar nyelvre lefordĂ­tott vĂĄltozata. UtolsĂł fordĂ­tĂĄs dĂĄtuma: 2026.05.16. 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.

Ez a cikk azokrĂłl a vĂĄltozĂłkrĂłl szĂłl, amelyeket a karbantartĂł (maintainer) meg tud hatĂĄrozni egy PKGBUILD szkriptfĂĄjlban. A PKGBUILD fĂŒggvĂ©nyeivel kapcsolatban Ă©s ĂĄltalĂĄban a szoftvercsomagok lĂ©trehozĂĄsĂĄval kapcsolatban tekintse meg a Szotvercsomagok lĂ©trehozĂĄsa cĂ­mƱ oldalt. Olvassa el tovĂĄbbĂĄ a PKGBUILD(5) man sĂșgĂłt.

A PKGBUILD egy Bash szkriptfĂĄjl, amely az Arch Linux szoftvercsomagok lĂ©trehozĂĄsĂĄhoz szĂŒksĂ©ges informĂĄciĂłkat tartalmazza.

Az Arch Linux szoftvercsomag-archĂ­vumfĂĄjlok a makepkg segĂ©dprogrammal kĂ©szĂŒlnek. (A szoftvercsomag-archĂ­vumfĂĄjl lĂ©nyegĂ©ben egy közönsĂ©ges tömörĂ­tett fĂĄjl). Amikor a makepkg fut, megkeresi az aktuĂĄlis könyvtĂĄrban a PKGBUILD fĂĄjlt, Ă©s követi annak utasĂ­tĂĄsait azĂ©rt, hogy lefordĂ­tsa vagy mĂĄs mĂłdon beszerezze a fĂĄjlokat a szoftvercsomag-archĂ­vumfĂĄjl lĂ©trehozĂĄsa cĂ©ljĂĄbĂłl — pkgname.pkg.tar.zst. Az elkĂ©szĂŒlt szoftvercsomag-archĂ­vumfĂĄjl a szĂĄmĂ­tĂłgĂ©p ĂĄltal binĂĄrisan futtathatĂł fĂĄjlokat, Ă©s telepĂ­tĂ©si utasĂ­tĂĄsokat tartalmaz. A lĂ©trehozott szoftvercsomag-archĂ­vumfĂĄjlok azonnal feltelepĂ­thetƑk a szĂĄmĂ­tĂłgĂ©pre a pacman szoftvercsomag-kezelƑ segĂ­tsĂ©gĂ©vel.

A kötelezƑ vĂĄltozĂłk a pkgname, pkgver, pkgrel Ă©s arch. A license vĂĄltozĂł nem feltĂ©tlenĂŒl szĂŒksĂ©ges a szoftvercsomag lĂ©trehozĂĄsĂĄhoz, de ajĂĄnlott minden olyan PKGBUILD szkriptfĂĄjl esetĂ©ben, amelyet mĂĄsokkal megosztanak, mivel a makepkg figyelmeztetĂ©st ad amikor nincs jelen ez a vĂĄltozĂł.

ÁltalĂĄnos gyakorlat, hogy a vĂĄltozĂłkat a PKGBUILD fĂĄjlban ugyanabban a sorrendben hatĂĄrozzĂĄk meg, mint ahogyan ebben a cikkben szerepelnek. Ez azonban nem kötelezƑ.

Tipp
  • HasznĂĄlja a namcap segĂ©dprogramot a PKGBUILD szkriptfĂĄjlok ellenƑrzĂ©sĂ©re annak Ă©rdekĂ©ben, hogy kiszƱrje a gyakori szoftvercsomagolĂĄsi hibĂĄkat.
  • HasznĂĄlja a shellcheck(1) szegĂ©dprogramot a PKGBUILD szkriptfĂĄjlok ellenƑrzĂ©sĂ©re annak Ă©rdekĂ©ben, hogy kiszƱrje a gyakori szkriptelĂ©si hibĂĄkat. Tekintse meg a SC2034, SC2154 Ă©s SC2164 leĂ­rĂĄsokat:
shellcheck --shell=bash --exclude=SC2034,SC2154,SC2164 PKGBUILD

Példa gyanånt tekintse meg a .proto fåjlokat a /usr/share/pacman/ könyvtårban.

Szoftvercsomag neve

pkgbase

Amikor Ön szokvĂĄnyos szoftvercsomagokat hoz lĂ©tre, nem kötelezƑ megadni ezt a vĂĄltozĂłt a PKGBUILD fĂĄjlban: ÉrtĂ©ke alapĂ©rtelmezĂ©s szerint megegyezik a #pkgname Ă©rtĂ©kĂ©vel.

Amikor Ön egy osztott szoftvercsomagot kĂ©szĂ­t, ezt a vĂĄltozĂłt szĂĄndĂ©kosan meg lehet adni, hogy meg legyen hatĂĄrozva az, hogy milyen nĂ©vvel hivatkozzon a szoftvercsomagok csoportjĂĄra a makepkg kimenetĂ©ben, valamint a csak forrĂĄsokat tartalmazĂł tar tömörĂ­tett fĂĄjlok elnevezĂ©sĂ©ben. Az Ă©rtĂ©k nem kezdƑdhet kötƑjellel. Ha nincs megadva, akkor az Ă©rtĂ©k alapĂ©rtelmezĂ©s szerint a pkgname tömb elsƑ elemĂ©re fog beĂĄllni.

Az osztott szoftvercsomagok minden beĂĄllĂ­tĂĄsa Ă©s direktĂ­vĂĄja alapĂ©rtelmezĂ©s szerint a PKGBUILD fĂĄjlban megadott globĂĄlis Ă©rtĂ©keket veszi ĂĄt. Ennek ellenĂ©re a következƑket felĂŒl lehet Ă­rni az egyes osztott szoftvercsomagok csomagolĂĄsi fĂŒggvĂ©nyĂ©ben: #pkgdesc, #arch, #url, #license, #groups, #depends, #optdepends, #provides, #conflicts, #replaces, #backup, #options, #install Ă©s #changelog.

pkgname

A szoftvercsomag neve lehet egyetlen nĂ©v, pĂ©ldĂĄul pkgname=jezus, vagy osztott szoftvercsomagok esetĂ©n egy nĂ©vtömb, pĂ©ldĂĄul pkgname=(jezus krisztus). A szoftvercsomagnevek kizĂĄrĂłlag kisbetƱs alfanumerikus karakterekbƑl Ă©s a következƑ jelekbƑl ĂĄllhatnak: @._+- (kukac, pont, alĂĄhĂșzĂĄs, plusz, kötƑjel). A nevek nem kezdƑdhetnek kötƑjellel vagy ponttal. A következetessĂ©g Ă©rdekĂ©ben a pkgname Ă©rtĂ©kĂ©nek meg kell egyeznie a szoftver tar forrĂĄsfĂĄjljĂĄnak a nevĂ©vel: Ha pĂ©ldĂĄul a szoftver neve jezuskrisztus-2.5.tar.gz, akkor hasznĂĄlja a pkgname=jezuskrisztus formĂĄt.

VerziĂł

pkgver

A szoftvercsomag verziĂłja.

Ez ugyanaz kell, hogy legyen, mint a szoftver eredeti szerzƑje ĂĄltal közzĂ©tett verziĂł. Tartalmazhat betƱket, szĂĄmokat, pontokat Ă©s alĂĄhĂșzĂĄsokat, de nem tartalmazhat kötƑjelet (-). Ha a szoftver szerzƑje kötƑjelet hasznĂĄl, akkor azt alĂĄhĂșzĂĄsra (_) kell cserĂ©lni. Ha a pkgver vĂĄltozĂł kĂ©sƑbb felhasznĂĄlĂĄsra kerĂŒl a PKGBUILD fĂĄjlban, akkor az alĂĄhĂșzĂĄs könnyen helyettesĂ­thetƑ kötƑjellel. PĂ©ldĂĄul: source=("${pkgname}-${pkgver//_/-}.tar.gz").

MegjegyzĂ©s Ha az eredeti fejlesztƑ idƑbĂ©lyeg-alapĂș verziĂłszĂĄmozĂĄst hasznĂĄl, pĂ©ldĂĄul 30102014, akkor ĂŒgyeljen rĂĄ, hogy Ön a fordĂ­tott dĂĄtumot hasznĂĄlja, azaz 20141030 (ISO 8601 formĂĄtum). EllenkezƑ esetben nem fog Ășjabb verziĂłkĂ©nt megjelenni.
Tipp

Tovåbbå, tekintse meg az Arch package guidelines#Irånyelvek a szoftvercsomagok verziószåmånak és kiadåsi szåmånak meghatårozåsåhoz címƱ leíråst is.

pkgrel

A kiadĂĄsi szĂĄm. Ez ĂĄltalĂĄban egy pozitĂ­v egĂ©sz szĂĄm, amely lehetƑvĂ© teszi az egymĂĄst követƑ szoftvercsomag-lĂ©trehozĂĄsok megkĂŒlönböztetĂ©sĂ©t ugyanazon szoftvercsomag verziĂłjĂĄn belĂŒl. Ahogy javĂ­tĂĄsok Ă©s tovĂĄbbi funkciĂłk kerĂŒlnek hozzĂĄadĂĄsra a PKGBUILD fĂĄjlhoz, amelyek befolyĂĄsoljĂĄk a lĂ©trejövƑ szoftvercsomagot, a pkgrel Ă©rtĂ©kĂ©t növelni kell 1‑gyel. Amikor a szoftver Ășj verziĂłja megjelenik, ezt az Ă©rtĂ©ket vissza kell ĂĄllĂ­tani 1‑re. KivĂ©teles esetekben mĂĄs formĂĄtumok is hasznĂĄlatban lehetnek, pĂ©ldĂĄul major.minor.

Tovåbbå, tekintse meg az Arch package guidelines#Irånyelvek a szoftvercsomagok verziószåmånak és kiadåsi szåmånak meghatårozåsåhoz címƱ leíråst is.

epoch

Arra szolgĂĄl, hogy a szoftvercsomagot Ășjabbnak lehessen tekinteni minden korĂĄbbi verziĂłnĂĄl, amelynek alacsonyabb az epoch Ă©rtĂ©ke. Ennek az Ă©rtĂ©knek nemnegatĂ­v egĂ©sz szĂĄmnak kell lennie. Az alapĂ©rtelmezett Ă©rtĂ©k 0. Akkor hasznĂĄljĂĄk, amikor egy szoftvercsomag verziĂłszĂĄmozĂĄsi sĂ©mĂĄja megvĂĄltozik (vagy alfanumerikus), Ă©s ez megtöri a normĂĄl verziĂł-összehasonlĂ­tĂĄs logikĂĄjĂĄt. PĂ©ldĂĄul:

pkgver=5.13
pkgrel=2
epoch=1
1:5.13-2

Tekintse meg a pacman(8) man sĂșgĂłt a verziĂł összehasonlĂ­tĂĄsokkal kapcsolatos tovĂĄbbi informĂĄciĂłkĂ©rt.

FigyelmeztetĂ©s Az epoch kizĂĄrĂłlag akkor hasznĂĄlhatĂł, amikor erre feltĂ©tlenĂŒl szĂŒksĂ©g van.

Általånos

pkgdesc

A szoftvercsomag leĂ­rĂĄsa. AjĂĄnlott, hogy legfeljebb 80 karakter hosszĂș legyen, Ă©s ne tartalmazza a szoftvercsomag nevĂ©t önmagĂĄra hivatkozĂł mĂłdon, kivĂ©ve, amikor az alkalmazĂĄs neve eltĂ©r a szoftvercsomag nevĂ©tƑl. PĂ©ldĂĄul hasznĂĄlja a pkgdesc='Text editor for X11' formĂĄt, ahelyett, hogy a pkgdesc='Nedit is a text editor for X11' formĂĄt alkalmaznĂĄ.

Emellett fontos, hogy bölcsen hasznålja a kulcsszavakat, ezzel növelve annak esélyét, hogy a szoftvercsomag megjelenjen a relevåns keresési lekérdezésekben.

arch

Az arch tömb a PKGBUILD fĂĄjlban azt hatĂĄrozza meg, hogy mely processzor‑architektĂșrĂĄkra hozhatĂł lĂ©tre a szoftvercsomag Ă©s mely processzor‑architektĂșrĂĄkon futtathatĂł a szoftvercsomag. Ha egy architektĂșra nincs felsorolva a tömbben, akkor a makepkg nem engedi a szoftvercsomag forrĂĄskĂłdbĂłl törtĂ©nƑ lefordĂ­tĂĄsĂĄt azon a rendszeren. Az arch hivatalosan csak az x86_64 architektĂșrĂĄt tĂĄmogatja, de mĂĄs projektek mĂĄs architektĂșrĂĄkat is tĂĄmogathatnak. PĂ©ldĂĄul az Arch Linux 32 tĂĄmogatja a i686 Ă©s pentium4 architektĂșrĂĄkat, mĂ­g az Arch Linux ARM tĂĄmogatja a armv7h (armv7 hardfloat) Ă©s aarch64 (armv8 64-bit) architektĂșrĂĄkat.

Kétféle értéket hasznålhat a tömb:

  • Az arch=(any) azt jelzi, hogy a szoftvercsomag bĂĄrmely architektĂșrĂĄn lĂ©trehozhatĂł, Ă©s a lĂ©trehozĂĄs utĂĄn architektĂșrafĂŒggetlen a forrĂĄskĂłdbĂłl lefordĂ­tott ĂĄllapotĂĄban (ĂĄltalĂĄban shell szkriptek, betƱtĂ­pusok, tĂ©mĂĄk, sokfĂ©le kiterjesztĂ©s, Java programok stb.).
  • Az arch=(...) egy vagy több architektĂșrĂĄval (de nem any) azt jelzi, hogy a szoftvercsomag bĂĄrmely megadott architektĂșrĂĄra forrĂĄskĂłdbĂłl lefordĂ­thatĂł, de a kĂłdfordĂ­tĂĄs utĂĄn architektĂșrafĂŒggƑ lesz. EzeknĂ©l a szoftvercsomagoknĂĄl meg kell adni minden olyan architektĂșrĂĄt, amelyet a PKGBUILD hivatalosan tĂĄmogat. A hivatalos szoftvercsomag-tĂĄrolĂłban Ă©s az AUR szoftvercsomagoknĂĄl ez az arch=('x86_64') architektĂșrĂĄt jelenti. OpcionĂĄlisan az AUR szoftvercsomagok dönthetnek Ășgy, hogy tovĂĄbbi ismerten mƱködƑ architektĂșrĂĄkat is tĂĄmogatnak.

A cĂ©larchitektĂșra a szoftvercsomag-lĂ©trehozĂĄs sorĂĄn a CARCH vĂĄltozĂłval Ă©rhetƑ el.

url

A csomagolt szoftver hivatalos webhelyének URL-címe.

license

This article or section is a candidate for merging with Arch package guidelines#licenses.

Notes: A PKGBUILD formåtum nem kényszerít ki szoftvercsomagolåsi szabålyzatot. (Discuss in Talk:PKGBUILD (Magyar))

This article or section needs expansion.

Reason: Adjon hozzĂĄ több rĂ©szletet a ebbƑl a leĂ­rĂĄsbĂłl. (Discuss in Talk:PKGBUILD (Magyar))

A licenc ami alatt a szoftver terjesztve van. Az Arch Linux SPDX licencazonosĂ­tĂłkat hasznĂĄl. Minden licenchez tartoznia kell egy megfelelƑ bejegyzĂ©snek a /usr/share/licenses/ könyvtĂĄrban.

A gyakori licencekhez (pĂ©ldĂĄul GPL-3.0-or-later) a licenses szoftvercsomag biztosĂ­tja az összes megfelelƑ fĂĄjlt. A szoftvercsomag alapĂ©rtelmezĂ©s szerint telepĂ­tve van, mivel a base meta szoftvercsomag fĂŒggƑsĂ©ge, Ă©s a fĂĄjlok megtalĂĄlhatĂłk a /usr/share/licenses/spdx/ könyvtĂĄrban. EgyszerƱen hivatkozzon a licencre az SPDX azonosĂ­tĂłk listĂĄjĂĄbĂłl szĂĄrmazĂł SPDX licencazonosĂ­tĂł hasznĂĄlatĂĄval.

Az olyan licenccsalĂĄdok, mint a BSD vagy az MIT, szigorĂșan vĂ©ve nem egyetlen licencet jelentenek, Ă©s minden egyes vĂĄltozat kĂŒlön licencfĂĄjlt igĂ©nyel. A license vĂĄltozĂłban közös SPDX azonosĂ­tĂłval hivatkozzon rĂĄjuk (pĂ©ldĂĄul BSD-3-Clause vagy MIT), majd adja meg a megfelelƑ fĂĄjlt Ășgy, mintha egyedi licenc lenne.

Az egyedi licencek esetĂ©ben az azonosĂ­tĂłnak LicenseRef-license-name vagy custom:license-name formĂĄtumĂșnak kell lennie, amennyiben azokat nem fedik le a fent emlĂ­tett közös licenccsalĂĄdok. A megfelelƑ licencszöveget a /usr/share/licenses/pkgname könyvtĂĄrba kell elhelyezni. A fĂĄjl telepĂ­tĂ©sĂ©hez a következƑ kĂłdrĂ©szlet hasznĂĄlhatĂł a package() szakaszban:

install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}/"
MegjegyzĂ©s A pkgdir vĂĄltozĂłt a makepkg hatĂĄrozza meg. TovĂĄbbi informĂĄcióért tekintse meg a PKGBUILD(5) § PACKAGING FUNCTIONS man sĂșgĂłt.

A több licenc kombinĂĄlĂĄsa vagy kivĂ©telek hozzĂĄadĂĄsa az SPDX szintaxis szerint törtĂ©njen. PĂ©ldĂĄul egy szoftvercsomag, amelyet vagy GNU/GPL 2.0 vagy GNU/LGPL 2.1 alatt adnak ki, hasznĂĄlhatja a 'GPL-2.0-or-later OR LGPL-2.1-or-later' kifejezĂ©st, egy Apache 2.0 licenc alatt kiadott szoftvercsomag LLVM kivĂ©tellel a 'Apache-2.0 WITH LLVM-exception' kifejezĂ©st, mĂ­g egy olyan szoftvercsomag, amelynek egy rĂ©sze BSD 3 klauzula alatt, mĂĄs rĂ©sze GNU/LGPL 2.1 alatt, Ă©s nĂ©hĂĄny GNU/GPL 2.0 alatt van kiadva, a 'BSD-3-Clause AND LGPL-2.1-or-later AND GPL-2.0-or-later' kifejezĂ©st hasznĂĄlhatja [1]. Fontos, hogy ez egyetlen karakterlĂĄnc legyen, tehĂĄt a teljes kifejezĂ©st idĂ©zƑjelek közĂ© kell tenni. 2023 novemberĂ©tƑl az SPDX kivĂ©telek listĂĄja korlĂĄtozott, Ă­gy ĂĄltalĂĄban az egyedi licenc Ăștvonalat kell hasznĂĄlni.

Ha problĂ©mĂĄk merĂŒlnek fel az SPDX azonosĂ­tĂłkkal kapcsolatban, akkor az ĂĄtmeneti idƑszakban elfogadhatĂł a rĂ©gi azonosĂ­tĂłk hasznĂĄlata — vagyis a könyvtĂĄrak nevei a /usr/share/licenses/common Ăștvonalon.

Tekintse meg a Nem szabadon terjeszthetƑ alkalmazĂĄsok csomagolĂĄsĂĄnak irĂĄnyelvei cĂ­mƱ oldalt.

TovĂĄbbi informĂĄciĂłk Ă©s nĂ©zƑpontok a szabad Ă©s nyĂ­lt forrĂĄskĂłdĂș szoftverlicencekkel kapcsolatban az alĂĄbbi oldalakon talĂĄlhatĂłk:

groups

A szoftvercsomagcsoport, amelyhez a szoftvercsomag tartozik. Amikor pĂ©ldĂĄul a plasma telepĂ­tĂ©sre kerĂŒl, akkor az összes, ebbe a csoportba tartozĂł szoftvercsomagot feltelepĂ­ti a szĂĄmĂ­tĂłgĂ©pre.

FĂŒggƑsĂ©gek

MegjegyzĂ©s TovĂĄbbi architektĂșraspecifikus tömbök adhatĂłk hozzĂĄ az architektĂșra nevĂ©nek alĂĄhĂșzĂĄsjel Ă©s nĂ©v hozzĂĄfƱzĂ©sĂ©vel, pl. optdepends_x86_64=().

depends

Egy szoftvercsomagtömb, amelyet telepĂ­teni kell ahhoz, hogy a szoftver lĂ©trejöjjön Ă©s fusson. Azok a szoftvercsomag-fĂŒggƑsĂ©gek, amelyek a package() fĂŒggvĂ©nyen belĂŒl vannak meghatĂĄrozva, csak a szoftver futtatĂĄsĂĄhoz szĂŒksĂ©gesek.

A verziĂłkorlĂĄtozĂĄsok megadhatĂłk összehasonlĂ­tĂł operĂĄtorokkal. PĂ©ldĂĄul: depends=('foobar>=1.8.0'). Ha több korlĂĄtozĂĄsra van szĂŒksĂ©g, akkor a szoftvercsomag-fĂŒggƑsĂ©get minden egyes esethez meg lehet ismĂ©telni. PĂ©ldĂĄul: depends=('foobar>=1.8.0' 'foobar<2.0.0').

This article or section is a candidate for merging with Arch package guidelines.

Notes: A PKGBUILD formåtum nem kényszerít ki szoftvercsomagolåsi szabålyzatot. (Discuss in Talk:PKGBUILD (Magyar))

A depends tömbnek minden közvetlen, elsƑ szintƱ szoftvercsomag-fĂŒggƑsĂ©get tartalmaznia kell, mĂ©g akkor is, ha nĂ©hĂĄny mĂĄr tranzitĂ­van deklarĂĄlva van. PĂ©ldĂĄul, ha egy foo szoftvercsomag fĂŒgg mind a bar, mind a baz szoftvercsomagtĂłl, Ă©s a bar szoftvercsomag viszont szintĂ©n fĂŒgg a baz szoftvercsomagtĂłl, akkor nem kĂ­vĂĄnt viselkedĂ©shez vezethet, ha a bar többĂ© nem hĂșzza be fĂŒggƑsĂ©gkĂ©nt a baz szoftvercsomagot. A pacman szoftvercsomag-kezelƑ nem fogja kikĂ©nyszerĂ­teni a baz telepĂ­tĂ©sĂ©t azon rendszereken, amelyek Ășjonnan telepĂ­tik a foo szoftvercsomagot, vagy amelyek eltĂĄvolĂ­tottĂĄk az elĂĄrvult szoftvercsomagokat, Ă©s a foo futĂĄsidƑben összeomlik vagy mĂĄs mĂłdon hibĂĄsan fog mƱködni.

Bizonyos esetekben ez nem szĂŒksĂ©ges, Ă©s fel is tĂŒntethetƑ, de nem kötelezƑ. PĂ©ldĂĄul a glibc nem tĂĄvolĂ­thatĂł el, mivel minden rendszernek szĂŒksĂ©ge van valamilyen C fĂŒggvĂ©nykönyvtĂĄrra, vagy a python egy olyan szoftvercsomag esetĂ©ben, amely mĂĄr fĂŒgg egy mĂĄsik python- modultĂłl, hiszen a mĂĄsodik modul definĂ­ciĂł szerint fĂŒgg a python-tĂłl, Ă©s soha nem szƱnhet meg annak fĂŒggƑsĂ©gkĂ©nt valĂł behĂșzĂĄsa.

A szoftvercsomag-fĂŒggƑsĂ©geknek ĂĄltalĂĄban tartalmazniuk kell a szoftvercsomag minden opcionĂĄlis funkciĂłjĂĄnak lĂ©trehozĂĄsĂĄhoz szĂŒksĂ©ges követelmĂ©nyeket. AlternatĂ­v megoldĂĄskĂ©nt minden olyan funkciĂłt, amelynek fĂŒggƑsĂ©gei nincsenek feltĂŒntetve, kifejezetten le kell tiltani egy beĂĄllĂ­tĂĄsopciĂłval. Ennek elmulasztĂĄsa olyan szoftvercsomagok lĂ©trejöttĂ©hez vezethet, amelyeknĂ©l az "automatikus fĂŒggƑsĂ©gek" futĂĄsidejƱ opcionĂĄlis funkciĂłi lĂ©trehozĂĄs közben kiszĂĄmĂ­thatatlanul engedĂ©lyezƑdnek tranzitĂ­v fĂŒggƑsĂ©gek vagy a build gĂ©pen telepĂ­tett, nem kapcsolĂłdĂł szoftverek miatt. Ám ezek nem tĂŒkrözƑdnek a szoftvercsomag fĂŒggƑsĂ©geiben.

Ha a szoftvercsomag-fĂŒggƑsĂ©g neve fĂŒggvĂ©nykönyvtĂĄrnak tƱnik, pl. depends=(libfoobar.so), akkor a makepkg megprĂłbĂĄlja megkeresni a lĂ©trehozott szoftvercsomagban azt a binĂĄris fĂĄjlt, amely a fĂŒggvĂ©nykönyvtĂĄrtĂłl fĂŒgg, Ă©s hozzĂĄfƱzi a binĂĄris fĂĄjl ĂĄltal igĂ©nyelt soname verziĂłt. A verziĂł manuĂĄlis Ășton törtĂ©nƑ hozzĂĄfƱzĂ©se letiltja az automatikus felismerĂ©st, pl. depends=('libfoobar.so=2').

makedepends

Egy olyan szoftvercsomagtömb, amely csak a szoftvercsomag lĂ©trehozĂĄsĂĄhoz szĂŒksĂ©ges. A minimĂĄlis szoftvercsomag-fĂŒggƑsĂ©gi verziĂł ugyanabban a formĂĄtumban adhatĂł meg, mint a depends tömbben. A depends tömbben szereplƑ szoftvercsomagok implicit mĂłdon szĂŒksĂ©gesek a szoftvercsomag lĂ©trehozĂĄsĂĄhoz, ezĂ©rt itt nem szabad ismĂ©telten megadni Ƒket.

Megjegyzés
  • A base-devel szoftvercsomagrĂłl feltĂ©telezhetƑ, hogy mĂĄr fel van telepĂ­tve a szĂĄmĂ­tĂłgĂ©pre, amikor a makepkg segĂ­tsĂ©gĂ©vel Ön szoftvercsomagot hoz lĂ©tre. Ennek a szoftvercsomagnak a szoftvercsomag-fĂŒggƑsĂ©geit nem szabad belefoglalni a makedepends tömbbe.
  • Amennyiben Ön VCS forrĂĄsokat hasznĂĄl, ne felejtse el belefoglalni a megfelelƑ VCS segĂ©dprogramot (git, subversion, cvs, ...).
Tipp HasznĂĄlja a pactree -rsud1 package | grep base-devel parancsot annak ellenƑrzĂ©sĂ©re, hogy egy adott szoftvercsomag közvetlen fĂŒggƑsĂ©ge-e a base-devel szoftvercsomagnak. (Ehhez szĂŒksĂ©ges a pacman-contrib szoftvercsomag meglĂ©te a szĂĄmĂ­tĂłgĂ©pen).

checkdepends

Egy szoftvercsomagtömb, amelyre a szoftvernek szĂŒksĂ©ge van a tesztkĂ©szlet futtatĂĄsĂĄhoz, de futĂĄsidƑben nincs rĂĄ szĂŒksĂ©g. Az ebben a listĂĄban szereplƑ szoftvercsomagok ugyanazt a formĂĄtumot követik, mint a depends. Ezeket a szoftvercsomag-fĂŒggƑsĂ©geket egyedĂŒl akkor veszi figyelembe a rendszer, amikor a check() fĂŒggvĂ©ny jelen van, Ă©s a makepkg futtatni fogja.

MegjegyzĂ©s A base-devel szoftvercsomagrĂłl feltĂ©telezve van, hogy mĂĄr telepĂ­tve van a szĂĄmĂ­tĂłgĂ©pre, amikor a makepkg segĂ­tsĂ©gĂ©vel Ön szoftvercsomagot hoz lĂ©tre. Ennek a szoftvercsomagnak a szoftvercsomag-fĂŒggƑsĂ©geit nem szabad belefoglalni a checkdepends tömbbe.

optdepends

Egy szoftvercsomagtömb, amelyre a szoftver mƱködĂ©sĂ©hez nincs szĂŒksĂ©g, de tovĂĄbbi funkciĂłkat biztosĂ­t. Ez azt jelentheti, hogy nem minden, a szoftvercsomag ĂĄltal biztosĂ­tott vĂ©grehajthatĂł fĂĄjl mƱködni fog a megfelelƑ optdepends nĂ©lkĂŒl.[2] Ha a szoftver több alternatĂ­v szoftvercsomag-fĂŒggƑsĂ©ggel is mƱködik, akkor itt mindegyik felsorolhatĂł a depends tömbben törtĂ©nƑ felsorolĂĄs helyett.

Az extra funkciók rövid leíråsåt, amelyet minden egyes optdepend biztosít, szintén fel kell jegyezni:

optdepends=('cups: printing support'
            'sane: scanners support'
            'libgphoto2: digital cameras support'
            'alsa-lib: sound support'
            'giflib: GIF images support'
            'libjpeg: JPEG images support'
            'libpng: PNG images support')

Szoftvercsomagok kapcsolatai

MegjegyzĂ©s Az architektĂșraspecifikus tömbök tovĂĄbbi pĂ©ldĂĄnyai hozzĂĄadhatĂłk azĂĄltal, hogy alĂĄhĂșzĂĄsjelet Ă©s az architektĂșra nevĂ©t illeszti hozzĂĄ. PĂ©ldĂĄul: conflicts_x86_64=().

provides

Egy tovĂĄbbi szoftvercsomagokbĂłl ĂĄllĂł tömb, amelyeket a szoftver szolgĂĄltatĂĄskĂ©nt biztosĂ­t, beleĂ©rtve a virtuĂĄlis szoftvercsomagokat, mint pĂ©ldĂĄul a cron vagy a sh, valamint az összes kĂŒlsƑ megosztott fĂŒggvĂ©nykönyvtĂĄrat. Azonos elemet biztosĂ­tĂł szoftvercsomagok egymĂĄs mellett is telepĂ­thetƑk, kivĂ©ve, ha legalĂĄbb egyikĂŒk hasznĂĄlja a conflicts tömböt.

Megjegyzés
  • A szoftvercsomag ĂĄltal biztosĂ­tott verziĂłt meg kell emlĂ­teni (pkgver Ă©s adott esetben a pkgrel), arra az esetre, ha a szoftverre hivatkozĂł szoftvercsomagoknak szĂŒksĂ©gĂŒk lenne rĂĄ. PĂ©ldĂĄul Önnek a következƑt kell hasznĂĄlnia egy mĂłdosĂ­tott qt szoftvercsomag 3.3.8 verziĂłjĂĄval, qt-foobar nĂ©ven: provides=('qt=3.3.8'). A verziĂłszĂĄm elhagyĂĄsa azt eredmĂ©nyeznĂ©, hogy a qt adott verziĂłjĂĄt igĂ©nylƑ szoftvercsomag-fĂŒggƑsĂ©gek meghiĂșsulnak.
  • Ne adja hozzĂĄ a pkgname vĂĄltozĂłt a provides tömbhöz, mivel ez automatikusan megtörtĂ©nik.

conflicts

Azon szoftvercsomagok tömbje, amelyek ĂŒtköznek a szoftvercsomaggal, vagy problĂ©mĂĄt okoznak szĂĄmĂĄra, ha telepĂ­tve vannak. Az összes ilyen szoftvercsomagot Ă©s az ezt az elemet biztosĂ­tĂł szoftvercsomagokat el kell tĂĄvolĂ­tani. Az ĂŒtközƑ szoftvercsomagok verziĂłtulajdonsĂĄgai ugyanabban a formĂĄtumban adhatĂłk meg, mint a depends tömb esetĂ©ben.

Vegye figyelembe, hogy az ĂŒtközĂ©sek ellenƑrzĂ©se a pkgname ellen, valamint a provides tömbben megadott nevekkel szemben is megtörtĂ©nik. EzĂ©rt, ha az Ön szoftvercsomagja biztosĂ­t egy foo funkciĂłt, akkor a foo megadĂĄsa a conflicts tömbben ĂŒtközĂ©st fog okozni az Ön szoftvercsomagja Ă©s minden mĂĄs szoftvercsomag között, amely tartalmazza a foo elemet a sajĂĄt provides tömbjĂ©ben (vagyis nincs szĂŒksĂ©g az összes ilyen ĂŒtközƑ szoftvercsomagnĂ©v megadĂĄsĂĄra az Ön conflicts tömbjĂ©ben). VegyĂŒnk egy konkrĂ©t pĂ©ldĂĄt:

  • A netbeans implicit mĂłdon biztosĂ­tja a netbeans elemet magĂĄn a pkgname nĂ©ven keresztĂŒl.
  • Egy hipotetikus netbeans-cpp szoftvercsomag biztosĂ­tanĂĄ a netbeans elemet, Ă©s ĂŒtközik a netbeans szoftvercsomaggal.
  • Egy hipotetikus netbeans-php szoftvercsomag biztosĂ­tanĂĄ a netbeans elemet, Ă©s ĂŒtközik a netbeans szoftvercsomaggal, de nem szĂŒksĂ©ges kifejezetten ĂŒtköznie a netbeans-cpp szoftvercsomaggal, mivel az ugyanazt a funkciĂłt biztosĂ­tĂł szoftvercsomagok implicit mĂłdon ĂŒtköznek egymĂĄssal.

Amikor a szoftvercsomagok ugyanazt a funkciĂłt biztosĂ­tjĂĄk a provides tömbön keresztĂŒl, kĂŒlönbsĂ©g van aközött, hogy az alternatĂ­v szoftvercsomag szĂĄndĂ©kosan hozzĂĄ van-e adva a conflicts tömbhöz vagy nincs hozzĂĄadva. Ha a conflicts tömb szĂĄndĂ©kosan deklarĂĄlva van, akkor az ugyanazt a funkciĂłt biztosĂ­tĂł kĂ©t szoftvercsomag alternatĂ­vnak lesz tekintve. Ha a conflicts tömb hiĂĄnyzik, akkor az ugyanazt a funkciĂłt biztosĂ­tĂł kĂ©t szoftvercsomag esetlegesen egyĂŒtt lĂ©tezƑnek lesz tekintve. A szoftvercsomag-kĂ©szĂ­tƑknek mindig figyelmen kĂ­vĂŒl kell hagyniuk a provides vĂĄltozĂł tartalmĂĄt annak eldöntĂ©sekor, hogy deklarĂĄljanak-e conflicts vĂĄltozĂłt vagy sem.

replaces

Azon elavult szoftvercsomagok tömbje, amelyeket a szoftvercsomag helyettesĂ­t, pl. a wireshark-qt a replaces=('wireshark') hasznĂĄlatĂĄval. SzinkronizĂĄlĂĄskor a pacman azonnal lecserĂ©l egy feltelepĂ­tett szoftvercsomagot, amint a szoftvercsomag-tĂĄrolĂłkban talĂĄl egy mĂĄsik szoftvercsomagot, amelynek replaces mezƑje egyezik. Amennyiben Ön egy mĂĄr lĂ©tezƑ szoftvercsomag alternatĂ­v verziĂłjĂĄt adja meg, vagy az AUR szoftvercsomag-tĂĄrolĂłba tölti fel, akkor hasznĂĄlja a conflicts Ă©s provides tömböket, amelyek csak akkor kerĂŒlnek kiĂ©rtĂ©kelĂ©sre, amikor a konfliktusos szoftvercsomag tĂ©nyleges feltelepĂ­tĂ©se törtĂ©nik.

Egyéb

backup

Egy fĂĄjlokbĂłl ĂĄllĂł tömb, amely felhasznĂĄlĂł ĂĄltal kĂ©szĂ­tett mĂłdosĂ­tĂĄsokat tartalmazhat, Ă©s amelyeket egy szoftvercsomag frissĂ­tĂ©se vagy eltĂĄvolĂ­tĂĄsa sorĂĄn meg kell Ƒrizni, elsƑsorban a /etc könyvtĂĄrban talĂĄlhatĂł beĂĄllĂ­tĂĄsfĂĄjlokhoz kĂ©szĂŒlt. Ha ezek a fĂĄjlok vĂĄltozatlanok ahhoz kĂ©pest, ahogyan a szoftvercsomaggal egyĂŒtt kerĂŒlnek szĂĄllĂ­tĂĄsra, akkor frissĂ­tĂ©s vagy eltĂĄvolĂ­tĂĄs sorĂĄn normĂĄl fĂĄjlokkĂ©nt törlĂ©sre kerĂŒlnek vagy lecserĂ©lƑdnek.

Az ebben a tömbben lĂ©vƑ fĂĄjloknak relatĂ­v Ăștvonalakat kell hasznĂĄlniuk a kezdƑ perjel (/) nĂ©lkĂŒl (pl. etc/pacman.conf, a /etc/pacman.conf helyett). A backup tömb nem tĂĄmogatja az ĂŒres könyvtĂĄrakat vagy a "*" jelhez hasonlĂł helyettesĂ­tƑ karaktereket.

FrissĂ­tĂ©skor az Ășj verziĂłk fĂĄjl.pacnew nĂ©ven kerĂŒlhetnek mentĂ©sre, hogy elkerĂŒljĂ©k egy mĂĄr lĂ©tezƑ Ă©s korĂĄbban a felhasznĂĄlĂł ĂĄltal mĂłdosĂ­tott fĂĄjl felĂŒlĂ­rĂĄsĂĄt. HasonlĂłan, a szoftvercsomag eltĂĄvolĂ­tĂĄsakor a felhasznĂĄlĂł ĂĄltal mĂłdosĂ­tott fĂĄjlok fĂĄjl.pacsave nĂ©ven kerĂŒlnek megƑrzĂ©sre, kivĂ©ve, ha a szoftvercsomag eltĂĄvolĂ­tĂĄsa a pacman -Rn paranccsal törtĂ©nt.

Tekintse meg a Pacnew és Pacsave fåjlok címƱ oldalt.

options

Ez a tömb lehetƑvĂ© teszi a makepkg alapĂ©rtelmezett viselkedĂ©sĂ©nek felĂŒlbĂ­rĂĄlĂĄsĂĄt, amely a /etc/makepkg.conf fĂĄjlban van meghatĂĄrozva. Egy opciĂł beĂĄllĂ­tĂĄsa Ă©rdekĂ©ben adja meg az opciĂł nevĂ©t a tömbben. Egy opciĂł letiltĂĄsa Ă©rdekĂ©ben helyezzen az opciĂł elĂ© egy ! jelet.

A rendelkezĂ©sre ĂĄllĂł opciĂłk teljes listĂĄja a PKGBUILD(5) § OPTIONS AND DIRECTIVES man sĂșgĂłban talĂĄlhatĂł meg.

install

A szoftvercsomagba belefoglalandĂł .install szkript neve.

A pacman kĂ©pes egy szoftvercsomag-specifikus szkript tĂĄrolĂĄsĂĄra Ă©s vĂ©grehajtĂĄsĂĄra, amikor egy szoftvercsomagot telepĂ­t, eltĂĄvolĂ­t vagy frissĂ­t. A szkript az alĂĄbbi fĂŒggvĂ©nyeket tartalmazza, amelyek kĂŒlönbözƑ idƑpontokban futnak:

  • pre_install — A szkript közvetlenĂŒl a fĂĄjlok kibontĂĄsa elƑtt fut le. Egy argumentum kerĂŒl ĂĄtadĂĄsra: Az Ășj szoftvercsomag verziĂłja.
  • post_install — A szkript közvetlenĂŒl a fĂĄjlok kibontĂĄsa utĂĄn fut le. Itt helyezendƑk el azok a tovĂĄbbi megjegyzĂ©sek, amelyeket a szoftvercsomag telepĂ­tĂ©se utĂĄn kell kiĂ­rni. Egy argumentum kerĂŒl ĂĄtadĂĄsra: Az Ășj szoftvercsomag verziĂłja.
  • pre_upgrade — A szkript közvetlenĂŒl a fĂĄjlok kibontĂĄsa elƑtt fut le. KĂ©t argumentum kerĂŒl ĂĄtadĂĄsra a következƑ sorrendben: Az Ășj szoftvercsomag verziĂłja, a rĂ©gi szoftvercsomag verziĂłja.
  • post_upgrade — A szkript közvetlenĂŒl a fĂĄjlok kibontĂĄsa utĂĄn fut le. KĂ©t argumentum kerĂŒl ĂĄtadĂĄsra a következƑ sorrendben: Az Ășj szoftvercsomag verziĂłja, a rĂ©gi szoftvercsomag verziĂłja.
  • pre_remove — A szkript közvetlenĂŒl a fĂĄjlok eltĂĄvolĂ­tĂĄsa elƑtt fut le. Egy argumentum kerĂŒl ĂĄtadĂĄsra: A rĂ©gi szoftvercsomag verziĂłja.
  • post_remove — A szkript közvetlenĂŒl a fĂĄjlok eltĂĄvolĂ­tĂĄsa utĂĄn fut le. Egy argumentum kerĂŒl ĂĄtadĂĄsra: A rĂ©gi szoftvercsomag verziĂłja.

Mindegyik fĂŒggvĂ©ny chroot környezetben fut, a pacman telepĂ­tĂ©si könyvtĂĄrĂĄn belĂŒl. RĂ©szletekĂ©rt tekintse meg ezt a tĂ©mĂĄt.

Tipp
MegjegyzĂ©s Ne fejezze be a szkriptet exit paranccsal. Ez megakadĂĄlyoznĂĄ a benne talĂĄlhatĂł fĂŒggvĂ©nyek vĂ©grehajtĂĄsĂĄt.

changelog

A szoftvercsomag vĂĄltozĂĄsnaplĂłjĂĄnak neve. A telepĂ­tett szoftvercsomag vĂĄltozĂĄsnaplĂłjĂĄnak megtekintĂ©se Ă©rdekĂ©ben a következƑ parancsot kell futtatni (amelyek a telepĂ­tett szoftvercsomag rendelkeznek vĂĄltozĂĄsnaplĂłfĂĄjllal):

$ pacman -Qc pkgname

ForrĂĄsok

source

Egy, a szoftvercsomag lĂ©trehozĂĄsĂĄhoz szĂŒksĂ©ges fĂĄjlokbĂłl ĂĄllĂł tömb. Tartalmaznia kell a szoftver forrĂĄsĂĄnak helyĂ©t, amely a legtöbb esetben egy teljes HTTP vagy FTP URL. A korĂĄbban beĂĄllĂ­tott pkgname Ă©s pkgver vĂĄltozĂłk itt hatĂ©konyan hasznĂĄlhatĂłk. PĂ©ldĂĄul: source=("https://example.com/${pkgname}-${pkgver}.tar.gz").

A fĂĄjlok a PKGBUILD szkriptfĂĄjlt tartalmazĂł könyvtĂĄrban is megadhatĂłk, Ă©s nevĂŒk hozzĂĄadhatĂł ehhez a tömbhöz. A tĂ©nyleges kĂłdfordĂ­tĂĄsi folyamat megkezdĂ©se elƑtt a tömbben hivatkozott összes fĂĄjl letöltĂ©sre kerĂŒl vagy ellenƑrzĂ©sre kerĂŒl a meglĂ©tĂŒk, Ă©s ha bĂĄrmelyik hiĂĄnyzik, akkor a makepkg nem folytatja a mƱveletet.

A .install fĂĄjlokat a makepkg automatikusan felismeri, Ă©s nem szabad Ƒket a source tömbbe felvenni. A source tömbben szereplƑ .sig, .sign vagy .asc kiterjesztĂ©sƱ fĂĄjlokat a makepkg PGP-alĂĄĂ­rĂĄskĂ©nt ismeri fel, Ă©s automatikusan felhasznĂĄlja a megfelelƑ forrĂĄsfĂĄjl integritĂĄsĂĄnak ellenƑrzĂ©sĂ©hez.

FigyelmeztetĂ©s A letöltött forrĂĄsfĂĄjl nevĂ©nek egyedinek kell lennie, mivel a SRCDEST könyvtĂĄr minden szoftvercsomag esetĂ©n ugyanaz lehet. PĂ©ldĂĄul a projekt verziĂłszĂĄmĂĄnak fĂĄjlnĂ©vkĂ©nt valĂł hasznĂĄlata ĂŒtközhet mĂĄs, azonos verziĂłszĂĄmĂș projektekkel. Ebben az esetben az alternatĂ­v, egyedi hasznĂĄlhatĂł fĂĄjlnĂ©v a source=('unique_package_name::file_uri') szintaxissal adhatĂł meg. PĂ©ldĂĄul: source=("${pkgname}-${pkgver}.tar.gz::https://github.com/coder/program/archive/v${pkgver}.tar.gz").
Tipp
  • TovĂĄbbi architektĂșra-specifikus tömbök adhatĂłk hozzĂĄ az alĂĄhĂșzĂĄs Ă©s az architektĂșra nevĂ©nek hozzĂĄfƱzĂ©sĂ©vel. PĂ©ldĂĄul: source_x86_64=(). Ennek megfelelƑen lĂ©teznie kell egy integritĂĄsi tömbnek is ellenƑrzƑösszegekkel. PĂ©ldĂĄul: sha256sums_x86_64=().
  • Egyes szerverek korlĂĄtozhatjĂĄk a letöltĂ©st az ĂŒgyfĂ©l User-Agent karakterlĂĄncĂĄnak szƱrĂ©sĂ©vel vagy egyĂ©b tĂ­pusĂș korlĂĄtozĂĄsokkal, amely korlĂĄtozĂĄsok a DLAGENTS hasznĂĄlatĂĄval megkerĂŒlhetƑk.
  • A file:// URL hasznĂĄlhatĂł a helyi szĂĄmĂ­tĂłgĂ©p fĂĄjlrendszerĂ©ben lĂ©vƑ könyvtĂĄr vagy fĂĄjl megadĂĄsĂĄra. PĂ©ldĂĄul egy helyi Git tĂĄrolĂł Ă­gy adhatĂł meg: "${pkgname}::git+file:///elĂ©rĂ©si/Ășt/a/tĂĄrolĂłhoz".
  • A magnet link tĂĄmogatĂĄs hozzĂĄadhatĂł a transmission-dlagentAUR hasznĂĄlatĂĄval DLAGENT formĂĄjĂĄban, valamint a magnet:// URI elƑtag hasznĂĄlatĂĄval a kanonikus magnet:? helyett.
  • Tekintse meg a PKGBUILD(5) § USING VCS SOURCES man sĂșgĂłt Ă©s a VCS package guidelines#VCS sources szakaszokat a VCS-specifikus beĂĄllĂ­tĂĄsok rĂ©szleteiĂ©rt, pĂ©ldĂĄul egy adott Git fejlesztĂ©si ĂĄg vagy commit cĂ©lzĂĄsĂĄhoz.

noextract

Egy fĂĄjlokbĂłl ĂĄllĂł tömb, amely a source tömb alatt van felsorolva, Ă©s amelyet a makepkg nem szabad, hogy kicsomagoljon az archĂ­vum formĂĄtumĂĄbĂłl. Ez hasznĂĄlhatĂł olyan archĂ­vumok esetĂ©n, amelyeket a /usr/bin/bsdtar nem tud kezelni, vagy amelyeket vĂĄltozatlan formĂĄban kell telepĂ­teni. Amennyiben alternatĂ­v kicsomagolĂł program van hasznĂĄlva (pĂ©ldĂĄul lrzip), akkor azt hozzĂĄ kell adni a makedepends tömbhöz, Ă©s a prepare() fĂŒggvĂ©ny elsƑ sorĂĄnak manuĂĄlisan kell kicsomagolnia a forrĂĄskĂłdot tartalmazĂł archĂ­vumfĂĄjlt. PĂ©ldĂĄul:

prepare() {
  lrzip -d source.tar.lrz
}

Vegye figyelembe, hogy míg a source tömb elfogad URL címeket, addig a noextract kizårólag a fåjlnév részét fogadja el:

source=("http://foo.org/bar/foobar.tar.xz")
noextract=('foobar.tar.xz')

Annak Ă©rdekĂ©ben, hogy semmi ne legyen kicsomagolva, vegye figyelembe a következƑket:

  • Ha a source csak egyszerƱ URL cĂ­meket tartalmaz egyĂ©ni fĂĄjlnevek nĂ©lkĂŒl, akkor a source tömbben a legutolsĂł perjel elƑtt vĂĄgja le:
noextract=("${source[@]##*/}")
  • Ha a source csak egyĂ©ni fĂĄjlneveket tartalmazĂł bejegyzĂ©seket tartalmaz, akkor a source tömböt a :: elvĂĄlasztĂł utĂĄn kell levĂĄgni (a firefox-i18n PKGBUILD egy korĂĄbbi verziĂłjĂĄbĂłl ĂĄtvĂ©ve):
noextract=("${source[@]%%::*}")
MegjegyzĂ©s Ha egy archĂ­vumfĂĄjl sok felsƑ szintƱ fĂĄjlt tartalmaz, akkor fennĂĄll a veszĂ©lye annak, hogy mĂĄs forrĂĄskĂłdot tartalmazĂł archĂ­vumfĂĄjlokbĂłl kicsomagolt fĂĄjlokat nem kĂ­vĂĄnt mĂłdon felĂŒlĂ­r. Ha ez a helyzet, akkor fontolja meg, hogy hozzĂĄadja a noextract tömbhöz, Ă©s manuĂĄlisan csomagolja ki egy alkönyvtĂĄrba.

validpgpkeys

PGP ujjlenyomatok tömbje. Ha hasznĂĄlva van, akkor a makepkg csak az itt felsorolt kulcsokbĂłl szĂĄrmazĂł alĂĄĂ­rĂĄsokat fogadja el, Ă©s figyelmen kĂ­vĂŒl hagyja a kulcstartĂłban talĂĄlhatĂł megbĂ­zhatĂłsĂĄgi Ă©rtĂ©keket. Ha a forrĂĄsfĂĄjlt egy al kulccsal lett alĂĄĂ­rva, akkor a makepkg tovĂĄbbra is a fƑkulcsot fogja hasznĂĄlni az összehasonlĂ­tĂĄshoz.

EgyedĂŒl teljes ujjlenyomatok fogadhatĂłk el. NagybetƱsnek kell lenniĂŒk, Ă©s nem tartalmazhatnak szĂłköz karaktereket.

MegjegyzĂ©s HasznĂĄlja a gpg --list-keys --fingerprint KEYID parancsot annak megĂĄllapĂ­tĂĄsĂĄra, hogy mi az adott kulcs megfelelƑ ujjlenyomata.

TovĂĄbbi informĂĄciĂłkĂ©rt kĂ©rjĂŒk, hogy olvassa el a makepkg#Szoftvercsomag alĂĄĂ­rĂĄsĂĄnak az ellenƑrzĂ©se cĂ­mƱ leĂ­rĂĄst.

IntegritĂĄs

Ezek a vĂĄltozĂłk olyan tömbök, amelyek elemei ellenƑrzƑösszeg-karakterlĂĄncok, Ă©s a megfelelƑ fĂĄjlok integritĂĄsĂĄnak ellenƑrzĂ©sĂ©re lesznek hasznĂĄlva a source tömbben. SzĂșrja be a SKIP Ă©rtĂ©ket egy adott fĂĄjlhoz, Ă©s annak ellenƑrzƑösszege nem lesz ellenƑrizve.

Az ellenƑrzƑösszeg tĂ­pusa Ă©s Ă©rtĂ©kei mindig az upstream ĂĄltal megadottak legyenek, pĂ©ldĂĄul a kiadĂĄsi bejelentĂ©sekben szereplƑk. Ha több tĂ­pus is elĂ©rhetƑ, akkor a legerƑsebb ellenƑrzƑösszeg rĂ©szesĂ­tendƑ elƑnyben (a leginkĂĄbb elƑnyöstƑl a legkevĂ©sbĂ© elƑnyösig): b2, sha512, sha384, sha256, sha224, sha1, md5, ck. Ez biztosĂ­tja legjobban a letöltött fĂĄjlok integritĂĄsĂĄt, a upstream bejelentĂ©stƑl a szoftvercsomag lĂ©trehozĂĄsĂĄig.

MegjegyzĂ©s TovĂĄbbĂĄ, amikor az upstream digitĂĄlis alĂĄĂ­rĂĄsokat tesz elĂ©rhetƑvĂ©, az alĂĄĂ­rĂĄsfĂĄjlokat hozzĂĄ kell adni a source tömbhöz, a PGP-kulcs ujjlenyomatĂĄt pedig a validpgpkeys tömbhöz kell hozzĂĄadni. Ez lehetƑvĂ© teszi a fĂĄjlok hitelesĂ­tĂ©sĂ©t a szoftvercsomag lĂ©trehozĂĄsi folyamata sorĂĄn.

Ezeknek a vĂĄltozĂłknak az Ă©rtĂ©kei automatikusan elƑállĂ­thatĂłk a makepkg -g/--geninteg kapcsolĂłjĂĄval, majd ĂĄltalĂĄban a makepkg -g >> PKGBUILD paranccsal kerĂŒlnek hozzĂĄfƱzĂ©sre. A pacman-contrib szoftvercsomagbĂłl szĂĄrmazĂł updpkgsums(8) parancs kĂ©pes frissĂ­teni a vĂĄltozĂłkat, bĂĄrhol is legyenek azok a PKGBUILD fĂĄjlban. MindkĂ©t segĂ©dprogram a PKGBUILD fĂĄjlban mĂĄr beĂĄllĂ­tott vĂĄltozĂłt fogja hasznĂĄlni, vagy ha egyik sincs beĂĄllĂ­tva, akkor visszatĂ©r a sha256sums vĂĄltozĂłra.

A hasznĂĄlandĂł fĂĄjlintegritĂĄs-ellenƑrzĂ©sek a /etc/makepkg.conf fĂĄjlban talĂĄlhatĂł INTEGRITY_CHECK beĂĄllĂ­tĂĄssal adhatĂłk meg. Tekintse meg a makepkg.conf(5) man sĂșgĂłt.

MegjegyzĂ©s TovĂĄbbi architektĂșraspecifikus tömbök adhatĂłk hozzĂĄ egy alĂĄhĂșzĂĄsjel Ă©s az architektĂșra nevĂ©nek hozzĂĄfƱzĂ©sĂ©vel. PĂ©ldĂĄul: sha256sums_x86_64=().

b2sums

Egy BLAKE2b ellenƑrzƑösszegeket tartalmazĂł tömb 512 bites kivonatmĂ©rettel.

sha512sums, sha384sums, sha256sums, sha224sums

Egy SHA-2 ellenƑrzƑösszegeket tartalmazĂł tömb rendre 512, 384, 256 Ă©s 224 bites kivonatmĂ©retekkel. Ezek közĂŒl a sha256sums a leggyakoribb.

sha1sums

A source tömbben felsorolt fĂĄjlok 160 bites SHA-1 ellenƑrzƑösszegeit tartalmazĂł tömb.

md5sums

Egy 128 bites MD5 ellenƑrzƑösszeg tömbje a source tömbben felsorolt fĂĄjlokrĂłl.

cksums

A source tömbben felsorolt fĂĄjlok CRC32 ellenƑrzƑösszegeit tartalmazĂł tömb (a UNIX-szabvĂĄny szerinti cksum alapjĂĄn).