.\" -*- 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 .