.\" -*- coding: UTF-8 -*- '\" t .\" Title: pkgbuild .\" Author: [see the "Authors" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024-11-27 .\" Manual: Pacman Manual .\" Source: Pacman 7.0.0 .\" Language: English .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH PKGBUILD 5 "27 noiembrie 2024" "Pacman 7\&.0\&.0" "Manualul Pacman" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH NUME PKGBUILD \- fișier de descriere a construcției pachetului .SH SINOPSIS .sp PKGBUILD .SH DESCRIERE .sp Această pagină de manual descrie regulile generale despre PKGBUILD. Odată ce un PKGBUILD este scris, pachetul real este construit utilizând makepkg și instalat cu pacman. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNotă\fP .ps -1 .br .sp Un exemplu de PKGBUILD, util pentru referință, este localizat în \fI/usr/share/pacman\fP împreună cu alte fișiere de exemplu, cum ar fi un script de instalare. Puteți copiați fișierul PKGBUILD.proto furnizat într\-un nou director de creare a pachetului și să faceți personalizări în funcție de nevoile dvs. .sp .5v .RE .SH "OPȚIUNI ȘI DIRECTIVE" .sp Următoarea este o listă de opțiuni și directive standard disponibile pentru a fi utilizate într\-un PKGBUILD. Toate acestea sunt înțelese și interpretate de makepkg, iar cele mai multe dintre ele vor fi transferate direct în pachetul construit. Câmpurile obligatorii pentru un PKGBUILD minim funcțional sunt \fBpkgname\fP, \fBpkgver\fP, \fBpkgrel\fP și \fBarch\fP. .sp Dacă trebuie să creați variabile personalizate pentru a le utiliza în procesul de construire, se recomandă este recomandat să prefixați numele acestora cu un caracter \fI_\fP (liniuță de subliniere). Acest lucru va preveni orice posibile ciocniri de nume cu variabilele interne makepkg. De exemplu, pentru a stoca versiunea nucleului de bază într\-o variabilă, utilizați ceva similar cu $_basekernver. .PP \fBpkgname (listă)\fP .RS 4 Fie numele pachetului, fie o serie de nume pentru pachete divizate. Caracterele valide pentru membrii acestei serii sunt alfanumerice și oricare dintre următoarele caractere: „@ \&. _ + \-”. În plus, numele nu sunt trebuie să înceapă cu liniuțe de unire sau puncte. .RE .PP \fBpkgver\fP .RS 4 Versiunea software\-ului eliberată de autor (de ex, \fI2\&.7\&.1\fP). Variabila nu are voie să conțină două puncte (:), bare oblice (/), liniuțe de unire (\-) sau spații albe. .sp Variabila pkgver poate fi actualizată automat prin furnizarea unei funcții pkgver() în PKGBUILD care produce noua versiune a pachetului. Aceasta este rulată după descărcarea și extragerea surselor și după rularea funcției prepare() (dacă este prezentă), astfel încât să poată utiliza aceste fișiere pentru a determina noua valoare a pkgver. Aceasta este foarte utilă atunci când este utilizată cu surse din sisteme de control al versiunilor (a se vedea mai jos). .RE .PP \fBpkgrel\fP .RS 4 Valoarea acestei variabile este numărul de versiune specific distribuției. Aceasta permite deținătorilor de pachete să facă actualizări ale fanioanelor de configurare ale pachetului, de exemplu. Aceasta este de obicei definită la \fI1\fP pentru fiecare nouă versiune de software din amonte și incrementată pentru actualizările PKGBUILD intermediare. Variabila este un număr întreg pozitiv, cu un nivel subversiune opțional specificat prin adăugarea unui alt număr întreg pozitiv separat de un punct (adică sub forma x.y). .RE .PP \fBepoch\fP .RS 4 Utilizată pentru a forța pachetul să fie văzut ca fiind mai nou decât orice versiune anterioară cu o epocă mai mică, chiar dacă numărul versiunii nu ar declanșa în mod normal o astfel de actualizare. Această valoare trebuie să fie un număr întreg pozitiv; valoarea implicită dacă nu este specificată este \fI0\fP. Acest lucru este util atunci când schema de numerotare a versiunilor unui pachet se schimbă (sau este alfanumerică), rupând logica normală de comparare a versiunilor. Consultați \fBpacman\fP(8) pentru mai multe informații despre compararea versiunilor. .RE .PP \fBpkgdesc\fP .RS 4 Aceasta ar trebui să fie o scurtă descriere a pachetului și a funcționalității sale. Încercați să limitați descrierea la un singur rând de text și să nu folosiți numele pachetului. .RE .PP \fBurl\fP .RS 4 Acest câmp conține o adresă URL care este asociată cu software\-ul care este împachetat. Aceasta este de obicei adresa sitului web al proiectului. .RE .PP \fBlicense (câmp)\fP .RS 4 Acest câmp specifică licența(ele) care se aplică pachetului. Dacă se aplică mai multe licențe, listați\-le pe toate: license=(\*(AqGPL\*(Aq \*(AqFDL\*(Aq). .RE .PP \fBinstall\fP .RS 4 Specifică un script special de instalare care urmează să fie inclus în pachet. Acest fișier trebuie să se afle în același director ca PKGBUILD și va fi copiat în pachet de către makepkg. Nu este necesar să fie inclus în lista sursă (de exemplu, install=$pkgname.install). .RE .PP \fBchangelog\fP .RS 4 Specifică un fișier changelog care urmează să fie inclus în pachet. Fișierul changelog trebuie să se încheie cu o singură linie nouă. Acest fișier trebuie să se afle în același director ca PKGBUILD și va fi copiat în pachet de către makepkg. Nu este necesar să fie inclus în lista sursă (de exemplu, changelog=$pkgname.changelog). .RE .PP \fBsource (listă)\fP .RS 4 O serie de fișiere sursă necesare pentru construirea pachetului. Fișierele sursă trebuie fie să se afle în același director ca PKGBUILD, fie să fie o adresă URL complet calificată pe care makepkg o poate utiliza pentru a descărca fișierul. Pentru a simplifica întreținerea PKGBUILD\-urilor, utilizați variabilele $pkgname și $pkgver atunci când specificați locația de descărcare, dacă este posibil. Fișierele comprimate vor fi extrase automat dacă nu sunt găsite în lista noextract descrisă mai jos. .sp Surse suplimentare specifice arhitecturii pot fi adăugate prin adăugarea unui caracter de subliniere și a numelui arhitecturii, de exemplu, \fIsource_x86_64=()\fP. Trebuie să existe o matrice de integritate corespunzătoare cu sume de control, de exemplu \fIcksums_x86_64=()\fP. .sp De asemenea, este posibil să se schimbe numele fișierului descărcat, ceea ce este util în cazul adreselor URL ciudate și pentru gestionarea mai multor fișiere sursă cu același nume. Sintaxa este: source=(\*(Aqfilename::url\*(Aq). .sp makepkg suportă, de asemenea, construirea versiunilor de dezvoltare ale pachetelor folosind surse descărcate din sisteme de control al versiunilor (VCS). Pentru mai multe informații, consultați secțiunea «Utilizarea surselor VCS», de mai jos. .sp Fișierele din lista de surse cu extensiile .sig, .sign sau .asc sunt recunoscute de makepkg ca semnături PGP și vor fi utilizate automat pentru a verifica integritatea fișierului sursă corespunzător. .RE .PP \fBvalidpgpkeys (listă)\fP .RS 4 O listă de amprente digitale PGP. Dacă această listă nu este goală, makepkg va accepta numai semnături de la cheile enumerate aici și va ignora valorile de încredere din breloc. Dacă fișierul sursă a fost semnat cu o subcheie, makepkg va utiliza în continuare cheia principală pentru comparație. .sp Sunt acceptate numai amprentele digitale complete. Acestea trebuie să fie scrise cu majuscule și nu trebuie să conțină caractere de spațiu alb. .RE .PP \fBnoextract (listă)\fP .RS 4 Un șir de nume de fișiere corespunzătoare celor din șirul sursă. Fișierele enumerate aici nu vor fi extrase împreună cu restul fișierelor sursă. Acest lucru este util pentru pachetele care utilizează direct date comprimate. .RE .PP \fBcksums (câmp)\fP .RS 4 Această linie conține sumele de control CRC (cksums) pentru fiecare fișier sursă specificat în linia sursă (în aceeași ordine). makepkg va utiliza această linie pentru a verifica integritatea fișierelor sursă în timpul compilărilor ulterioare. Dacă \fISKIP\fP este pus în această linie în locul unei sume de control, verificarea integrității pentru fișierul sursă respectiv va fi omisă. Pentru a genera ușor sume de control (cksums), executați «makepkg \-g >> PKGBUILD». Dacă doriți, mutați linia sumelor de control într\-o locație corespunzătoare. Rețineți că sumele de control generate de «makepkg \-g» trebuie verificate folosind valorile sumelor de control furnizate de dezvoltatorul de software. .RE .PP \fBmd5sums, sha1sums, sha224sums, sha256sums, sha384sums, sha512sums, b2sums (câmp)\fP .RS 4 Verificări alternative de integritate acceptate de makepkg; toate acestea se comportă similar cu opțiunea cksums descrisă mai sus. Pentru a permite utilizarea și generarea acestor sume de control, asigurați\-vă că configurați opțiunea INTEGRITY_CHECK în \fBmakepkg.conf\fP(5). .RE .PP \fBgroups (listă)\fP .RS 4 O listă de nume simbolice care reprezintă grupuri de pachete, permițându\-vă să instalați mai multe pachete prin solicitarea unui singur obiectiv. De exemplu, se pot instala toate pachetele KDE prin instalarea grupului \fIkde\fP. .RE .PP \fBarch (listă)\fP .RS 4 Definește pe ce arhitecturi este disponibil pachetul dat (de exemplu, arch=(\*(Aqi686\*(Aq \*(Aqx86_64\*(Aq)). Pachetele care nu conțin fișiere specifice arhitecturii trebuie să utilizeze arch=(\*(Aqany\*(Aq). Caracterele valide pentru membrii acestei serii sunt alfanumerice și „_”. .RE .PP \fBbackup (listă)\fP .RS 4 O listă de nume de fișiere, fără bare oblice la începutul acestora, care ar trebui să fie salvate dacă pachetul este eliminat sau actualizat. Acest lucru este frecvent utilizat pentru pachetele care plasează fișiere de configurare în \fI/etc\fP. Consultați GESTIONAREA FIȘIERELOR DE CONFIGURARE în \fBpacman\fP(8) pentru mai multe informații. .RE .PP \fBdepends (listă)\fP .RS 4 O listă de pachete de care depinde acest pachet pentru a rula. Intrările în această listă trebuie să fie încadrate cu ghilimele simple și să conțină cel puțin numele pachetului. De asemenea, intrările pot include o cerință de versiune de forma \fInume<>versiune\fP, unde <> este una dintre cele cinci comparații: >= (mai mare sau egal cu), <= (mai mic sau egal cu), = (egal cu), > (mai mare decât) sau < (mai mic decât). .sp Dacă numele dependenței pare a fi o bibliotecă (se termină cu .so), makepkg va încerca să găsească un binar care depinde de bibliotecă în pachetul construit și va adăuga versiunea necesară pentru binar. Adăugarea versiunii de către dvs. înșivă, dezactivează detectarea automată. .sp Pot fi adăugate dependențe suplimentare specifice arhitecturii prin adăugarea unui semn de subliniere și a numelui arhitecturii, de exemplu, \fIdepends_x86_64=()\fP. .RE .PP \fBmakedepends (listă)\fP .RS 4 O listă de pachete de care depinde acest pachet pentru a fi construit, dar care nu sunt necesare la momentul rulării. Pachetele din această listă urmează același format ca și pachetele dependente. .sp Se pot adăuga dependențe de construire (makedepends) suplimentare specifice arhitecturii prin adăugarea unei liniuțe de subliniere și a numelui arhitecturii, de exemplu, \fImakedepends_x86_64=()\fP. .RE .PP \fBcheckdepends (listă)\fP .RS 4 O listă de pachete de care depinde acest pachet pentru a rula suita sa de teste, dar care nu sunt necesare în timpul rulării. Pachetele din această listă urmează același format ca și „depends”. Aceste dependențe sunt luate în considerare numai atunci când funcția check() este prezentă și trebuie să fie executată de makepkg. .sp Se pot adăuga dependențe de verificare „checkdepends” suplimentare specifice arhitecturii prin adăugarea unui semn de subliniere și a numelui arhitecturii, de exemplu, \fIcheckdepends_x86_64=()\fP. .RE .PP \fBoptdepends (câmp)\fP .RS 4 O serie de pachete (și explicațiile aferente) care nu sunt esențiale pentru funcționalitatea de bază, dar pot fi necesare pentru a utiliza pe deplin conținutul acestui pachet. Dependențele opționale „optdepends” sunt în prezent doar în scopuri informative și nu sunt utilizate de pacman în timpul rezolvării dependențelor. Pachetele din această listă respectă același format ca și pachetele dependente „depends”, cu o descriere opțională adăugată. Formatul pentru specificarea descrierilor optdepends este: .sp .if n \{\ .RS 4 .\} .nf optdepends=(\*(Aqpython: for library bindings\*(Aq) .fi .if n \{\ .RE .\} .sp Alte dependențe opționale „optdepends” specifice arhitecturii pot fi adăugate prin adăugarea unui semn de subliniere și a numelui arhitecturii, de exemplu, \fIoptdepends_x86_64=()\fP. .RE .PP \fBconflicts (câmp)\fP .RS 4 O serie de pachete care vor intra în conflict cu acest pachet (adică nu pot fi instalate toate în același timp). Această directivă urmează același format ca și „depends”. Conflictele în funcție de versiune sunt acceptate utilizând operatorii descriși în „depends”. .sp Alte conflicte „conflicts” specifice arhitecturii pot fi adăugate prin adăugarea unei liniuțe de subliniere și a numelui arhitecturii, de exemplu, \fIconflicts_x86_64=()\fP. .RE .PP \fBprovides (câmp)\fP .RS 4 O serie de „dispoziții virtuale” pe care le oferă acest pachet. Acest lucru permite unui pachet să furnizeze dependențe altele decât propriul nume de pachet. De exemplu, pachetul dcron poate furniza \fIcron\fP, ceea ce permite pachetelor să depindă de \fIcron\fP mai degrabă decât de \fIdcron OR fcron\fP. .sp De asemenea, sunt posibile dispoziții în versiune, în formatul \fInume=versiune\fP. De exemplu, dcron poate furniza \fIcron=2.0\fP pentru a satisface dependența \fIcron>=2.0\fP a altor pachete. Dispozițiile care implică operatorii > și < nu sunt valabile, deoarece pot fi furnizate numai versiuni specifice ale unui pachet. .sp Dacă numele dispoziției pare a fi o bibliotecă (se termină cu .so), makepkg va încerca să găsească biblioteca în pachetul construit și va adăuga versiunea corectă. Adăugând versiunea dvs. înșivă, dezactivați detectarea automată. .sp Se pot adăuga furnizări „provides” suplimentare specifice arhitecturii prin adăugarea unei liniuțe de subliniere și a numelui arhitecturii, de exemplu, \fIprovides_x86_64=()\fP. .RE .PP \fBreplaces (listă)\fP .RS 4 O listă de pachete pe care acest pachet ar trebui să le înlocuiască. Aceasta poate fi utilizată pentru a gestiona pachetele redenumite/combinate. De exemplu, dacă pachetul \fIj2re\fP este redenumit în \fIjre\fP, această directivă permite actualizărilor viitoare să continue conform așteptărilor, chiar dacă pachetul a fost mutat. Înlocuirile pe versiuni sunt acceptate utilizând operatorii descriși în „depends”. .sp Sysupgrade este în prezent singura operație pacman care utilizează acest câmp. O sincronizare sau o actualizare normală nu va utiliza valoarea acestuia. .sp Se pot adăuga înlocuiri „replaces” suplimentare specifice arhitecturii prin adăugarea unei liniuțe de subliniere și a numelui arhitecturii, de exemplu, \fIreplaces_x86_64=()\fP. .RE .PP \fBoptions (serie de opțiuni)\fP .RS 4 Această listă vă permite să suprascrieți unele dintre comportamentele implicite ale makepkg atunci când construiți pachete. Pentru a defini o opțiune, trebuie doar să includeți numele opțiunii în lista de opțiuni. Pentru a inversa comportamentul implicit, plasați un „!” în fața opțiunii. Specificați numai opțiunile pe care doriți în mod specific să le înlocuiți, restul vor fi preluate din \fBmakepkg.conf\fP(5). \fBNOTĂ:\fP \fIforce\fP este o opțiune eliminată acum în favoarea variabilei de nivel superior \fIepoch\fP. .PP \fBstrip\fP .RS 4 Îndepărtează simbolurile din binare și biblioteci\&. Dacă folosiți frecvent un depanator pentru programe sau biblioteci, poate fi util să dezactivați această opțiune\&. .RE .PP \fBdocs\fP .RS 4 Salvați directoarele doc. Dacă doriți să ștergeți directoarele doc, specificați !docs în listă. .RE .PP \fBlibtool\fP .RS 4 Lasă fișierele libtool (\&.la) în pachete\&. Specificați !libtool pentru a le elimina\&. .RE .PP \fBstaticlibs\fP .RS 4 Lasă fișierele de bibliotecă statică (.a) în pachete. Specificați !staticlibs pentru a le elimina (dacă au o contraparte partajată). .RE .PP \fBemptydirs\fP .RS 4 Lasă directoare goale în pachete\&. .RE .PP \fBzipman\fP .RS 4 Comprimă paginile man și info cu gzip. .RE .PP \fBccache\fP .RS 4 Permite utilizarea ccache în timpul build(). Mai utilă în forma sa negativă !ccache cu pachete selectate care au probleme de compilare cu ccache. .RE .PP \fBdistcc\fP .RS 4 Permite utilizarea distcc în timpul build() Mai utilă în forma sa negativă !distcc cu pachete selectate care au probleme de compilare cu distcc. .RE .PP \fBbuildflags\fP .RS 4 Permite utilizarea de fanioane de compilare „buildflags” specificate de utilizator (CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS) în timpul build(), după cum se specifică în \fBmakepkg.conf\fP(5). Mai utilă în forma sa negativă !buildflags cu pachete selectate care au probleme de compilare cu „buildflags” personalizate. .RE .PP \fBmakeflags\fP .RS 4 Permite utilizarea de fanioane de construcție „makeflags” specificate de utilizatori în timpul build(), după cum se specifică în \fBmakepkg.conf\fP(5). Mai utilă în forma sa negativă !makeflags cu pachete selectate care au probleme de compilare cu „makeflags” personalizate, cum ar fi \-j2 (sau superior). .RE .PP \fBdebug\fP .RS 4 Adaugă fanioanele de depanare specificate de utilizator (DEBUG_CFLAGS, DEBUG_CXXFLAGS) la contrapartida lor „buildflags”, după cum se specifică în \fBmakepkg.conf\fP(5). Atunci când este utilizată în combinație cu opțiunea „strip”, este creat un pachet separat care conține simbolurile de depanare. .RE .PP \fBlto\fP .RS 4 Activează construirea de pachete folosind optimizarea timpului de legătură. Adaugă \fI\-flto\fP la CFLAGS și CXXFLAGS. .RE .RE .SH "FUNCȚII DE ÎMPACHETARE" .sp În plus față de directivele de mai sus, PKGBUILD\-urile necesită un set de funcții care oferă instrucțiuni pentru construirea și instalarea pachetului. PKGBUILD trebuie să conțină cel puțin o funcție package() care instalează toate fișierele pachetului în directorul de împachetare, funcțiile opționale prepare(), build() și check() fiind utilizate pentru a crea aceste fișiere din sursă. .sp Aceasta este direct furnizată și executată de makepkg, astfel încât tot ceea ce Bash sau sistemul are disponibil este disponibil pentru utilizare aici. Asigurați\-vă că orice comenzi exotice utilizate sunt acoperite de lista „makedepends”. .sp Dacă creați variabile proprii în oricare dintre aceste funcții, se recomandă utilizarea cuvântului\-cheie local Bash pentru a defini variabila în interiorul funcției. .PP \fBFuncția package()\fP .RS 4 Funcția package() este utilizată pentru a instala fișiere în directorul care va deveni directorul rădăcină al pachetului construit și este executată după toate funcțiile opționale enumerate mai jos. Etapa de împachetare este executată utilizând fakeroot pentru a asigura permisiunile corecte ale fișierelor în pachetul rezultat. Toate celelalte funcții vor fi executate ca utilizator care apelează makepkg. Această funcție este executată în interiorul $srcdir. .RE .PP \fBFuncția verify()\fP .RS 4 O funcție opțională verify() poate fi specificată pentru a implementa o autentificare arbitrară a sursei. Funcția trebuie să returneze un cod de ieșire diferit de zero atunci când verificarea eșuează. Această funcție este executată înainte de extragerea surselor. Această funcție este executată în interiorul $startdir. .RE .PP \fBFuncția prepare()\fP .RS 4 Se poate specifica o funcție opțională prepare() în care se efectuează operațiuni de pregătire a surselor pentru compilare, cum ar fi aplicarea de plasturi (corecții). Această funcție este executată după extragerea sursei și înainte de funcția build(). Funcția prepare() este omisă atunci când extragerea sursei este omisă. Această funcție este executată în interiorul $srcdir. .RE .PP \fBFuncția build()\fP .RS 4 Funcția opțională build() este utilizată pentru a compila și/sau ajusta fișierele sursă în vederea instalării de către funcția package(). Această funcție este executată în interiorul $srcdir. .RE .PP \fBFuncția check()\fP .RS 4 Se poate specifica o funcție opțională check() în care poate fi rulată suita de teste a unui pachet. Această funcție este executată între funcțiile build() și package(). Asigurați\-vă că orice comenzi „exotice” utilizate sunt acoperite de lista „checkdepends”. Această funcție este executată în interiorul $srcdir. .RE .sp Toate variabilele de mai sus, cum ar fi $pkgname și $pkgver, sunt disponibile pentru utilizare în funcțiile de împachetare. În plus, makepkg definește următoarele variabile: .PP \fBsrcdir\fP .RS 4 Aceasta conține directorul în care makepkg extrage sau copiază toate fișierele sursă. .RE .PP \fBpkgdir\fP .RS 4 Aceasta conține directorul în care makepkg împachetează pachetul instalat. Acest director va deveni directorul rădăcină al pachetului construit. Această variabilă trebuie utilizată numai în funcția package(). .RE .PP \fBstartdir\fP .RS 4 Aceasta conține ruta absolută către directorul în care se află PKGBUILD, care este de obicei rezultatul $(pwd) atunci când makepkg este inițiat. Utilizarea acestei variabile este depreciată și puternic descurajată. .RE .SH "SCINDAREA PACHETULUI" .sp makepkg permite construirea mai multor pachete dintr\-un singur PKGBUILD. Acest lucru se realizează prin atribuirea unei liste de nume de pachete directivei pkgname. Fiecare pachet scindat utilizează o funcție de împachetare corespunzătoare cu numele package_foo(), unde foo este numele pachetului scindat. .sp Toate opțiunile și directivele pentru pachetele scindate au implicit valorile globale indicate în PKGBUILD. Cu toate acestea, următoarele pot fi suprascrise în cadrul funcției de ambalare a fiecărui pachet scindat: pkgdesc, arch, url, license, groups, depends, optdepends, provides, conflicts, replaces, backup, options, install și changelog. .sp Rețineți că makepkg nu ia în considerare dependențele pachetelor scindate atunci când verifică dacă dependențele sunt instalate înainte de construirea pachetului și cu „\-\-syncdeps”. Toate pachetele necesare pentru realizarea pachetului trebuie să fie specificate în listele globale depends și makedepends. .sp O directivă globală opțională este disponibilă la construirea unui pachet scindat: .PP \fBpkgbase\fP .RS 4 Numele utilizat pentru a face referire la grupul de pachete în rezultatul makepkg și în denumirea arhivelor\-tar numai din codurile\-sursă. Dacă nu este specificat, se utilizează primul element din lista variabilei „pkgname”. Caracterele valide pentru această variabilă sunt alfanumerice și oricare dintre următoarele caractere: „@ \&. _ + \-”. În plus, nu este permis ca variabila să înceapă cu cratime sau puncte. .RE .SH "SCRIPT DE INSTALARE/ACTUALIZARE/ELIMINARE" .sp Pacman are capacitatea de a stoca și executa un script specific pachetului atunci când instalează, elimină sau actualizează un pachet. Acest lucru permite unui pachet să se configureze singur după instalare și să efectueze o acțiune opusă la eliminare. .sp Momentul exact în care scriptul este rulat variază în funcție de fiecare operație și ar trebui să fie auto\-explicativ. Rețineți că, în timpul unei operații de actualizare, nu va fi apelată niciuna dintre funcțiile de instalare sau eliminare. .sp Scripturilor le sunt transmise unul sau două „șiruri de versiuni complete”, unde un șir de versiune completă este fie \fIpkgver\-pkgrel\fP, fie \fIepoch:pkgver\-pkgrel\fP, dacă „epoch” este diferită de zero. .PP \fBpre_install\fP .RS 4 Se execută chiar înainte de extragerea fișierelor. I se pasează un argument: șirul versiunii complete a noului pachet. .RE .PP \fBpost_install\fP .RS 4 Se execută imediat după extragerea fișierelor. I se pasează un argument: șirul versiunii complete a noului pachet. .RE .PP \fBpre_upgrade\fP .RS 4 Se execută chiar înainte de extragerea fișierelor. Îi sunt pasate două argumente în această ordine: șirul versiunii complete a pachetului nou, șirul versiunii complete a pachetului vechi. .RE .PP \fBpost_upgrade\fP .RS 4 Se execută după ce fișierele sunt extrase. Sunt pasate două argumente în această ordine: șirul versiunii complete a pachetului nou, șirul versiunii complete a pachetului vechi. .RE .PP \fBpre_remove\fP .RS 4 Se execută chiar înainte de eliminarea fișierelor. I se pasează un argument: șirul versiunii complete a vechiului pachet. .RE .PP \fBpost_remove\fP .RS 4 Se execută imediat după eliminarea fișierelor. I se trece un argument: șirul versiunii complete a pachetului vechi. .RE .sp Pentru a utiliza această caracteristică, creați un fișier precum \fIpkgname.install\fP și puneți\-l în același director cu scriptul PKGBUILD. Apoi utilizați directiva «install»: .sp .if n \{\ .RS 4 .\} .nf install=nume\-pachet\&.install .fi .if n \{\ .RE .\} .sp Scriptul de instalare nu trebuie să fie specificat în lista de surse. Un fișier de instalare șablon este disponibil în \fI/usr/share/pacman\fP ca \fIproto.install\fP pentru referință cu toate funcțiile disponibile definite. .SH "UTILIZAREA SURSELOR VCS" .sp Construirea unei versiuni de dezvoltare a unui pachet folosind surse dintr\-un sistem de control al versiunilor (VCS) este activată prin specificarea sursei de forma: .sp .if n \{\ .RS 4 .\} .nf source=(\*(Aqdirector::url#fragment?interogare\*(Aq) .fi .if n \{\ .RE .\} .sp În prezent, makepkg acceptă sistemele de control al versiunilor Bazaar, Git, Subversion, Fossil și Mercurial. Pentru alte sisteme de control al versiunilor, clonarea manuală a depozitelor din amonte trebuie efectuată în funcția prepare(). .sp Unele surse VCS, cum ar fi Git, acceptă fixarea „checkout\-ului” printr\-o sumă de control a conținutului său, utilizând funcționalități de export deterministe, cum ar fi „git archive”. .sp Adresa URL a sursei este împărțită în patru componente: .PP \fBdirector\fP .RS 4 (opțional) Specifică un nume de director alternativ în care makepkg să descarce sursa VCS. .RE .PP \fBurl\fP .RS 4 Adresa URL a depozitului VCS. Aceasta trebuie să includă VCS în protocolul URL pentru ca makepkg să o recunoască ca sursă VCS. Dacă protocolul nu include numele VCS, acesta poate fi adăugat prin prefixarea adresei URL cu vcs+. De exemplu, utilizarea unui depozit Git prin HTTPS ar avea o adresă URL a sursei sub forma: git+https://.... .RE .PP \fBfragment\fP .RS 4 (opțional) Permite specificarea unui număr de revizuire sau a unei ramuri pentru ca makepkg să facă „checkout” din VCS. Un fragment are forma tip=valoare; de exemplu, pentru a extrage o anumită revizuire, linia sursă ar fi source=(url#revision=123). Tipurile disponibile depind de VCS\-ul utilizat: .PP \fBbzr\fP .RS 4 revision (a se vedea «bzr help revisionspec» pentru detalii) .RE .PP \fBfossil\fP .RS 4 branch, commit, tag .RE .PP \fBgit\fP .RS 4 branch, commit, tag .RE .PP \fBhg\fP .RS 4 branch, revision, tag .RE .PP \fBsvn\fP .RS 4 revision .RE .RE .PP \fBquery\fP .RS 4 (opțional) Permite specificarea dacă o verificare VCS ar trebui să fie verificată pentru revizuirile semnate PGP. Linia sursă trebuie să aibă formatul source=(url#fragment?signed) sau source=(url?signed#fragment). În prezent este acceptată doar de către Git. .RE .SH EXEMPLU .sp Ceea ce urmează, este un exemplu de PKGBUILD pentru pachetul \fIpatch\fP. Pentru mai multe exemple, consultați fișierele de construire ale pachetelor din distribuția dumneavoastră. .sp .if n \{\ .RS 4 .\} .nf # Maintainer: Joe User pkgname=patch pkgver=2\&.7\&.1 pkgrel=1 pkgdesc="A utility to apply patch files to original sources" arch=(\*(Aqi686\*(Aq \*(Aqx86_64\*(Aq) url="https://www\&.gnu\&.org/software/patch/patch\&.html" license=(\*(AqGPL\*(Aq) groups=(\*(Aqbase\-devel\*(Aq) depends=(\*(Aqglibc\*(Aq) makedepends=(\*(Aqed\*(Aq) optdepends=(\*(Aqed: for "patch \-e" functionality\*(Aq) source=("ftp://ftp\&.gnu\&.org/gnu/$pkgname/$pkgname\-$pkgver\&.tar\&.xz"{,\&.sig}) sha256sums=(\*(Aq9124ba46db0abd873d0995c2ca880e81252676bb6c03e0a37dfc5f608a9b0ceb\*(Aq \*(AqSKIP\*(Aq) build() { cd "$srcdir/$pkgname\-$pkgver" \&./configure \-\-prefix=/usr make } package() { cd "$srcdir/$pkgname\-$pkgver" make DESTDIR="$pkgdir/" install } .fi .if n \{\ .RE .\} .SH "CONSULTAȚI ȘI" .sp \fBmakepkg\fP(8), \fBpacman\fP(8), \fBmakepkg.conf\fP(5) .sp Consultați situl web pacman la https://archlinux\&.org/pacman/ pentru informații actuale despre «pacman» și instrumentele sale conexe\&. .SH ERORI .sp Hibe? Probabil că glumiți; nu există nicio hibă în acest software&. Dar dacă se întâmplă să fie ceva greșit, depuneți o cerere de rezolvare a problemei cu cât mai multe detalii posibile la: https://gitlab\&.archlinux\&.org/pacman/pacman/\-/issues\&. .SH AUTORI .sp Responsabilii actuali: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Allan McRae .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andrew Gregory .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Morgan Adamiec .RE .sp Contribuitori importanți din trecut: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Judd Vinet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aurelien Foret .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aaron Griffin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dan McGee .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Xavier Chantry .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Nagy Gabor .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dave Reisner .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Eli Schwartz .RE .sp Pentru contribuitori suplimentari, folosiți «git shortlog \-s» în depozitul \&.git pacman\&. .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .