Arch Linux csomagkezelés

A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „Az Arch Linux egyik legfontosabb építőköve, a pacman csomagkezelő sokban hasonlít az elterjedtebb disztribúciók megoldásaihoz (apt, yum), azonban egy-két esetben…”)
 
(Gyakori problémák csomagok készítésénél)
 
(egy szerkesztő 9 közbeeső változata nincs mutatva)
8. sor: 8. sor:
   
 
=== A pacman használata ===
 
=== A pacman használata ===
  +
  +
Egy szembetűnő különbség a debian alapú disztribúciók csomagkezelésétől
  +
abból a tényből adódik, hogy az Arch Linux egy rolling release disztribúció,
  +
nincsenek release-ek (persze image snapshotok készülnek néha), ezáltal nem kell
  +
a fejlesztőknek
  +
verziónként a tárolókat karbantartani, és a felhasznlónak mindig a
  +
legfrissebb csomagok érhetők el.
  +
 
Csomagok telepítése:
 
Csomagok telepítése:
 
<pre>
 
<pre>
23. sor: 31. sor:
 
A pacman képes úgynevezett package group-okat kezelni, amik több különböző
 
A pacman képes úgynevezett package group-okat kezelni, amik több különböző
 
csomagot tartalmaznak, ezáltal nem kell minden egyes csomagot telepíteni
 
csomagot tartalmaznak, ezáltal nem kell minden egyes csomagot telepíteni
kézzel. Ilyen csomag group például az X vagy gnome. Egy package group
+
kézzel. Ilyen csomag group például az X vagy gnome.
   
Csomagjainak listázása:
+
Egy package group csomagjainak listázása:
 
<pre>
 
<pre>
 
pacman -Sg <group>
 
pacman -Sg <group>
39. sor: 47. sor:
 
pacman -Syu
 
pacman -Syu
 
</pre>
 
</pre>
Ez a parancs frissíti a csomagok listáját, es elvégzi azok frissítését.
+
Ez a parancs frissíti a csomagok listáját, és elvégzi azok frissítését.
 
Látható, hogy sokkal tömörebb, mint az apt-get update && apt-get upgrade.
 
Látható, hogy sokkal tömörebb, mint az apt-get update && apt-get upgrade.
 
Ezen kívűl a debian világból megszokott apt-get dist-upgrade szerű dologgal
 
Ezen kívűl a debian világból megszokott apt-get dist-upgrade szerű dologgal
50. sor: 58. sor:
   
 
Egy csomag függőségi fáját a <pre>pactree <csomag></pre> paranccsal kérhetjük le.
 
Egy csomag függőségi fáját a <pre>pactree <csomag></pre> paranccsal kérhetjük le.
 
Egy szembetűnő különbség a debian alapú disztribúciók csomagkezelésétől
 
abból a tényből adódik, hogy az Arch Linux egy rolling release disztribúció,
 
nincsenek release-ek (persze image snapshotok készülnek néha), ezáltal nem kell
 
verziónként a tárolókat karbantartani, és a felhasznlónak mindig a
 
legfrissebb csomagok érhetők el.
 
   
 
A pacman lényegesen eltér az apt/dpkg párostól abból a szempontból, hogy
 
A pacman lényegesen eltér az apt/dpkg párostól abból a szempontból, hogy
67. sor: 69. sor:
 
Érdekesség, hogy a csomag elérhetősége http url is lehet.
 
Érdekesség, hogy a csomag elérhetősége http url is lehet.
   
  +
A tárolókból elérhető csomagok legtöbbször tar.gz tömörített állományok,
  +
újabban tar.xz (xz egy fájl formátum és tömörítő program, mely az lzma2 algoritmusra épül).
   
 
=== Pacman konfigurációs fájl ===
 
=== Pacman konfigurációs fájl ===
 
A tárolókból elérhető csomagok legtöbbször tar.gz tömörített állományok,
 
újabban tar.xz (xz egy fájl formátum, mely az lzma2 algoritmusra épül).
 
   
 
A pacman beállításai a /etc/pacman.conf állományban érhetőek el.
 
A pacman beállításai a /etc/pacman.conf állományban érhetőek el.
127. sor: 128. sor:
 
[archlinuxfr]
 
[archlinuxfr]
 
Server = http://repo.archlinux.fr/i686
 
Server = http://repo.archlinux.fr/i686
  +
</pre>
  +
  +
== Pacman package name tab completition ==
  +
Kényelmes fícsőr a csomagok nevének automatikus kiegészítése, mely a
  +
bash-completition csomaggal érhető el. Telepítése:
  +
<pre>
  +
pacman -S bash-completion
  +
</pre>
  +
  +
== Pacman orphan csomagok ==
  +
Pacman-nal lehetséges az "árva" csomagok nyomonkövetése. Ha egy olyan csomagot
  +
távolítunk el, mely függ egy másik csomagtól, akkor az utóbbi dependencia
  +
nem távolítódik el, árva lesz. A pacman-nal nyomonkövethetjük ezen
  +
csomagokat (debian alatt ehhez szükséges a a deporphan csomag).
  +
Az árva csomagok eltávolítása:
  +
<pre>
  +
pacman -Qdt
  +
</pre>
  +
Az árva csomagok listázása:
  +
<pre>
  +
pacman -Qqdt
  +
</pre>
  +
  +
Egy csomag és függőségeinek eltávolítása (ha más csomag nem függ az
  +
egyes csomagoktól):
  +
<pre>
  +
pacman -Rs <csomag>
  +
</pre>
  +
  +
Egy csomag, a csomag függőségeinek és azon csomagok eltávolítása, melyek
  +
függnek a csomagtól:
  +
<pre>
  +
pacman -Rsc <csomag>
  +
</pre>
  +
  +
== Pacman pgp ==
  +
A pacman csomagkezelő A GnuPG kriptográfiai szoftvercsomagot használja a
  +
csomagok aláírására. Jelenleg öt különböző master key érhető el, ezek a
  +
hivatalos aláíró kulcsai a csomagoknak.
  +
[https://www.archlinux.org/master-keys/ https://www.archlinux.org/master-keys/]
  +
  +
Ezekkel a master key-ekkel az egyes fejlesztők kulcsát aláírják. Ezután
  +
ha a fejlesztő a (master key-el aláírt) kulcsával aláír egy csomagot,
  +
akkor az a csomag hivatalos lesz. A felhasználó a saját kulcsával
  +
aláírta a master kulcsokat, ezáltal megbízik a csomagban.
  +
  +
Konfigurálás
  +
A /etc/pacman.conf-ban az egyes repository-khoz megadható, hogy
  +
szükséges-e az adott csomagban megbízni.
  +
<pre>
  +
[core]
  +
Include = /etc/pacman.d/mirrorlist
  +
SigLevel = Required DatabaseOptional TrustedOnly
  +
</pre>
  +
Ez esetben csak az általunk megbízhatónak vélt kulcsokkal aláírt
  +
csomagokat fogadjuk el.
  +
  +
A keyring inicializálása:
  +
<pre>
  +
pacman-key --init
  +
</pre>
  +
Ezzel a saját kulcsunkat legenerálja, a "trust" adatbázist
  +
frissíti, a konfigurációs fájlt létrehozza.
  +
  +
A master key-ek verifikálása:
  +
<pre>
  +
pacman-key --populate archlinux
  +
</pre>
  +
  +
Ezek után már nem kell minden fejlesztő kulcsát verifikálnunk
  +
(megbízni bennük), mivel a master kulcsokkal ezek alá lettek írva.
  +
  +
=== Nem hivatalos kulcs hozzáadása ===
  +
Először le kell tölteni a kulcs szerverről az adott kulcsot:
  +
<pre>
  +
pacman-key -r <kulcs id>
  +
</pre>
  +
(Az alapértelmezett kulcs szervert a /etc/pacman.d/gnupg/gpg.conf
  +
fájlban tudjuk beállítani)
  +
  +
Ezután ezt a saját kulcsunkkal alá kell írni. Ezzel jelezzük, hogy
  +
megbízunk az adott kulccsal aláírt csomagokban.
  +
<pre>
  +
pacman-key --lsign-key <kulcs id>
  +
</pre>
  +
  +
  +
== Egy case study ==
  +
2012. szeptemberében az Arch Linux fejlesztők úgy döntöttek, hogy a /lib
  +
könyvtárat megszüntetik, helyette minden a /usr/lib-ben lesz, a /lib
  +
pedig egy symlink lesz a usr/lib-re (nem /usr/lib, chroot esetén fontos).
  +
Ez elég nagy galibát okozott a felhasználóknak. A következő hibával
  +
találkoztak:
  +
<pre>
  +
error: failed to commit transaction (conflicting files)
  +
glibc: /lib exists in filesystem
  +
Errors occurred, no packages were upgraded.
  +
</pre>
  +
  +
Alapesetben elég volt kiadni a következő parancsokat:
  +
<pre>
  +
pacman -Syu --ignore glibc
  +
pacman -Su
  +
</pre>
  +
  +
Tehát első körben a glibc telepítését ki kellett hagyni, minden mást
  +
frissíteni. Ezután a glibc-t már lehetett frissíteni, a symlink sikeresen
  +
létrejön a tranzakció commitolásakor. A problémák akkor kezdődtek, amikor a
  +
felhasználók manuálisan próbálták megoldani a linkelést, tehát először
  +
elmozgatták a /lib-et, hogy majd a helyére megcsinálják a symlinket.
  +
Igen ám, de a /lib-ben található például a ld*.so shared object is, ami
  +
a dinamikus linkeléshez szükséges, és az ln parancsnak a libjei is
  +
dinamikusan vannak linkelve, ezáltal az nem fog működni (meg semmi,
  +
aminek szintén dinamikusan linkelt libjei vannak), ha a /lib-et
  +
elmozgatjuk.
  +
  +
Ha a fenti paranccsal se működött a frissítés, akkor nagy
  +
valószínűséggel más csomag is tulajdonosa volt néhány lib-nek a
  +
/lib-ben. Ilyen például a virtualbox vagy egy régebbi kernel moduljai.
  +
Ekkor először érdemes megnézni, milyen tulajdonosai vannak a /lib-ben a
  +
fájloknak:
  +
<pre>
  +
pacman -Qo /lib/*
  +
</pre>
  +
  +
Ezen csomagokat frissíteni kell, hogy a /usr/lib-be rakják a fájljaikat
  +
(Vagy ha nem hivatalos tárolóból szereztük be, akkor rávenni, hogy a /usr/lib-be
  +
rakja a libeket).
  +
  +
  +
== AUR ==
  +
Az Arch User Repository egy közösség által irányított tároló. A tárolón
  +
tarball-ok találhatók, melyekben ún. PKGBUILD illetve egyéb szükséges
  +
fájlok találhatók.
  +
A PKGBUILD egy csomag leíró fájl a makepkg csomaghoz. Ebben a leíróban adjuk
  +
meg a fordítás illetve build-elés paramétereit.
  +
Az AUR csomagjait a következő oldalon is böngészhetjük:
  +
[https://aur.archlinux.org/ https://aur.archlinux.org/]
  +
  +
=== Gyakori problémák csomagok készítésénél ===
  +
  +
''ERROR: One or more files did not pass the validity check!''
  +
  +
A letöltött források valamelyike hashcheck-nél megbukott. Valószínű, hogy a
  +
PKGBUILD készítője nem frissítette a letöltendő források hash-ét.
  +
Számítsuk ki a forrás hash-ét (ez esetben md5):
  +
<pre>
  +
md5sum <source>
  +
</pre>
  +
majd a PKGBUILD fájlban írjuk át a az md5sum változót:
  +
<pre>
  +
md5sums=('<sum_1>' ... '<sum_n>')
  +
</pre>
  +
  +
''Függőség nem található''
  +
  +
Előfordulhat, hogy az AUR csomagot nem tartják karban, és a függőségeit nem
  +
frissítik megfelelően a PKGBUILD fájlban. Nem ritka, hogy egyes csomagoknál
  +
major verzió váltáskor a nevüket is megváltoztatják, és ezt nem frissítik a
  +
PKGBUILD-ben. Ezt kézzel megtehetjük:
  +
<pre>
  +
depends=('<dep_1>' ... '<dep_n>')
  +
makedepends=('<mdep_1>' ... '<mdep_n>')
  +
</pre>
  +
Utóbbinál a fordításhoz szükséges függőségeket adtuk meg.
  +
  +
''patch''
  +
  +
Gyakori probléma, hogy patchelni szeretnénk egy programot, új fícsőr miatt,
  +
vagy egyszerűen csak egy bug miatt. A PKGBUILD-nek köszönhetően
  +
kényelmesen megtehtjuk ezt. A sources változóhoz hozzáadjuk a diff fájlt:
  +
<pre>
  +
sources('source_1' ... 'patch.diff')
  +
</pre>
  +
Ahol a patch.diff lehet egy lokális fájl (a tarballon belül), vagy egy URL.
  +
Ezután már csak a build függvényen belül kell apply-olni a patchet:
  +
<pre>
  +
patch -b -p1 < patch.diff || return 1
  +
</pre>
  +
  +
== yaourt ==
  +
A yaourt amellett, hogy egy frontend a pacman fölé, további szolgáltatásokat
  +
is nyújt. Segítségével az AUR repository-ból tudunk csomagokat buildelni,
  +
telepíteni. A yaourt paraméterezése nagyon hasonló a pacman-éhoz.
  +
Sajnos semelyik hivatalos tárolóban nem található meg, vagy AUR-ból
  +
telepítjük, vagy egy nem hivatalos tárolóból (pl. archlinuxfr).
  +
  +
A csomagok telepítése nagyon könnyű:
  +
<pre>
  +
yaourt <keresési minta>
  +
</pre>
  +
A fenti parancs kiadása után a mintára illeszkedő csomagok közül
  +
kiválasztjuk a számunkra megfelelőt (a megfelelő tárolóból), és már
  +
telepíti is.
  +
  +
<pre>
  +
~/ yaourt fluxus [13:29:50]
  +
1 aur/fluxus 0.17rc5-2 (12)
  +
A rapid prototyping, livecoding and playing/learning environment for 3D
  +
graphics and games.
  +
2 aur/fluxus-git 20120126-1 [installed: 20120819-1] (7)
  +
A rapid prototyping, livecoding and playing/learning environment for 3D
  +
graphics and games.
  +
==> Enter n° of packages to be installed (ex: 1 2 3 or 1-3)
  +
==> -------------------------------------------------------
  +
==>
 
</pre>
 
</pre>

A lap jelenlegi, 2012. december 2., 14:45-kori változata

Az Arch Linux egyik legfontosabb építőköve, a pacman csomagkezelő sokban hasonlít az elterjedtebb disztribúciók megoldásaihoz (apt, yum), azonban egy-két esetben kényelmesebb a kezelése, illetve az Arch Build System-mel még rugalmasabbá teszi a csomagok menedzsmentjét.


Tartalomjegyzék

[szerkesztés] 1 Pacman áttekintés

[szerkesztés] 1.1 A pacman használata

Egy szembetűnő különbség a debian alapú disztribúciók csomagkezelésétől abból a tényből adódik, hogy az Arch Linux egy rolling release disztribúció, nincsenek release-ek (persze image snapshotok készülnek néha), ezáltal nem kell a fejlesztőknek verziónként a tárolókat karbantartani, és a felhasznlónak mindig a legfrissebb csomagok érhetők el.

Csomagok telepítése:

pacman -S <csomagok>

Sajnos az apt-get csomagkezelővel ellentétben nem használható wildcard (*) a csomagok nevében.

Csomag keresés:

pacman -Ss <regex>

A regex pattern-re illeszkedő csomagokat listázza.

A pacman képes úgynevezett package group-okat kezelni, amik több különböző csomagot tartalmaznak, ezáltal nem kell minden egyes csomagot telepíteni kézzel. Ilyen csomag group például az X vagy gnome.

Egy package group csomagjainak listázása:

pacman -Sg <group>

Csomag eltávolítása:

pacman -R <csomag>

Csomagok frissítése:

pacman -Syu

Ez a parancs frissíti a csomagok listáját, és elvégzi azok frissítését. Látható, hogy sokkal tömörebb, mint az apt-get update && apt-get upgrade. Ezen kívűl a debian világból megszokott apt-get dist-upgrade szerű dologgal se kell foglalkozni.

A lokális csomag adatbázis lekérdezés:

pacman -Q
Egy csomag függőségi fáját a
pactree <csomag>
paranccsal kérhetjük le.

A pacman lényegesen eltér az apt/dpkg párostól abból a szempontból, hogy mind a repository-ból letöltött, mind a felhasználó által készített vagy harmadik féltől letöltött csomag kezeléséért egy program felelős.

Egy nem a repository-ból származó csomag telepítése:

pacman -U <csomag elérhetősége>

Érdekesség, hogy a csomag elérhetősége http url is lehet.

A tárolókból elérhető csomagok legtöbbször tar.gz tömörített állományok, újabban tar.xz (xz egy fájl formátum és tömörítő program, mely az lzma2 algoritmusra épül).

[szerkesztés] 1.2 Pacman konfigurációs fájl

A pacman beállításai a /etc/pacman.conf állományban érhetőek el.

[szerkesztés] 1.2.1 Az options szekció

Egyes csomagok illetve csomagok csoportjának frissítése letiltható az alábbi módon:

IgnorePkg = <csomagok space-el elválasztva>
IgnoreGroup = <csomag csoportok>

Ez az opció hasznos lehet például akkor, ha egy régebbi X verziót akarunk megtartani egy legacy videokártya driver miatt.

SyncFirst = <csomagok space-el elválasztva>

Ha frissítés érhető el az adott csomagokból, először azokat tölti le. Alapesetben ilyen maga a pacman csomag is.

CacheDir = <útvonal>

A pacman a csomagokat a megadott könyvtárba cache-eli. Több könyvtár is megadható.

CheckSpace

Ellenőrízze-e a pacman, hogy van-e hely a diszken.

SigLevel

Aláírás ellenőrzés módja.

[szerkesztés] 1.2.2 Pacman tárolók

A pacman számára engedélyezett repository-k listája a /etc/pacman.conf fájlban szerkeszthető.

A három leggyakrabban használt tároló: core, extra, community

Lehetséges a /etc/pacman.conf-ban megadni a tároló elérhetőségét, vagy egy másik fájlban rögzíteni az Include paraméter megadásával. pl:

[core]
Include = /etc/pacman.d/mirrorlist

Felvehetünk tetszőleges tárolókat a listába; ilyen például az archlinuxfr, melyen hasznos csomagok érhetők el, melyek valamiért kimaradtak az előre definiált tárolókból. Ilyen csomag például a yaourt.

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

[szerkesztés] 2 Pacman package name tab completition

Kényelmes fícsőr a csomagok nevének automatikus kiegészítése, mely a bash-completition csomaggal érhető el. Telepítése:

pacman -S bash-completion

[szerkesztés] 3 Pacman orphan csomagok

Pacman-nal lehetséges az "árva" csomagok nyomonkövetése. Ha egy olyan csomagot távolítunk el, mely függ egy másik csomagtól, akkor az utóbbi dependencia nem távolítódik el, árva lesz. A pacman-nal nyomonkövethetjük ezen csomagokat (debian alatt ehhez szükséges a a deporphan csomag). Az árva csomagok eltávolítása:

pacman -Qdt

Az árva csomagok listázása:

pacman -Qqdt

Egy csomag és függőségeinek eltávolítása (ha más csomag nem függ az egyes csomagoktól):

pacman -Rs <csomag>

Egy csomag, a csomag függőségeinek és azon csomagok eltávolítása, melyek függnek a csomagtól:

pacman -Rsc <csomag>

[szerkesztés] 4 Pacman pgp

A pacman csomagkezelő A GnuPG kriptográfiai szoftvercsomagot használja a csomagok aláírására. Jelenleg öt különböző master key érhető el, ezek a hivatalos aláíró kulcsai a csomagoknak. https://www.archlinux.org/master-keys/

Ezekkel a master key-ekkel az egyes fejlesztők kulcsát aláírják. Ezután ha a fejlesztő a (master key-el aláírt) kulcsával aláír egy csomagot, akkor az a csomag hivatalos lesz. A felhasználó a saját kulcsával aláírta a master kulcsokat, ezáltal megbízik a csomagban.

Konfigurálás A /etc/pacman.conf-ban az egyes repository-khoz megadható, hogy szükséges-e az adott csomagban megbízni.

[core]
Include = /etc/pacman.d/mirrorlist
SigLevel = Required DatabaseOptional TrustedOnly

Ez esetben csak az általunk megbízhatónak vélt kulcsokkal aláírt csomagokat fogadjuk el.

A keyring inicializálása:

pacman-key --init

Ezzel a saját kulcsunkat legenerálja, a "trust" adatbázist frissíti, a konfigurációs fájlt létrehozza.

A master key-ek verifikálása:

pacman-key --populate archlinux

Ezek után már nem kell minden fejlesztő kulcsát verifikálnunk (megbízni bennük), mivel a master kulcsokkal ezek alá lettek írva.

[szerkesztés] 4.1 Nem hivatalos kulcs hozzáadása

Először le kell tölteni a kulcs szerverről az adott kulcsot:

pacman-key -r <kulcs id>

(Az alapértelmezett kulcs szervert a /etc/pacman.d/gnupg/gpg.conf fájlban tudjuk beállítani)

Ezután ezt a saját kulcsunkkal alá kell írni. Ezzel jelezzük, hogy megbízunk az adott kulccsal aláírt csomagokban.

pacman-key --lsign-key <kulcs id>


[szerkesztés] 5 Egy case study

2012. szeptemberében az Arch Linux fejlesztők úgy döntöttek, hogy a /lib könyvtárat megszüntetik, helyette minden a /usr/lib-ben lesz, a /lib pedig egy symlink lesz a usr/lib-re (nem /usr/lib, chroot esetén fontos). Ez elég nagy galibát okozott a felhasználóknak. A következő hibával találkoztak:

error: failed to commit transaction (conflicting files)
glibc: /lib exists in filesystem
Errors occurred, no packages were upgraded.

Alapesetben elég volt kiadni a következő parancsokat:

pacman -Syu --ignore glibc
pacman -Su

Tehát első körben a glibc telepítését ki kellett hagyni, minden mást frissíteni. Ezután a glibc-t már lehetett frissíteni, a symlink sikeresen létrejön a tranzakció commitolásakor. A problémák akkor kezdődtek, amikor a felhasználók manuálisan próbálták megoldani a linkelést, tehát először elmozgatták a /lib-et, hogy majd a helyére megcsinálják a symlinket. Igen ám, de a /lib-ben található például a ld*.so shared object is, ami a dinamikus linkeléshez szükséges, és az ln parancsnak a libjei is dinamikusan vannak linkelve, ezáltal az nem fog működni (meg semmi, aminek szintén dinamikusan linkelt libjei vannak), ha a /lib-et elmozgatjuk.

Ha a fenti paranccsal se működött a frissítés, akkor nagy valószínűséggel más csomag is tulajdonosa volt néhány lib-nek a /lib-ben. Ilyen például a virtualbox vagy egy régebbi kernel moduljai. Ekkor először érdemes megnézni, milyen tulajdonosai vannak a /lib-ben a fájloknak:

pacman -Qo /lib/*

Ezen csomagokat frissíteni kell, hogy a /usr/lib-be rakják a fájljaikat (Vagy ha nem hivatalos tárolóból szereztük be, akkor rávenni, hogy a /usr/lib-be rakja a libeket).


[szerkesztés] 6 AUR

Az Arch User Repository egy közösség által irányított tároló. A tárolón tarball-ok találhatók, melyekben ún. PKGBUILD illetve egyéb szükséges fájlok találhatók. A PKGBUILD egy csomag leíró fájl a makepkg csomaghoz. Ebben a leíróban adjuk meg a fordítás illetve build-elés paramétereit. Az AUR csomagjait a következő oldalon is böngészhetjük: https://aur.archlinux.org/

[szerkesztés] 6.1 Gyakori problémák csomagok készítésénél

ERROR: One or more files did not pass the validity check!

A letöltött források valamelyike hashcheck-nél megbukott. Valószínű, hogy a PKGBUILD készítője nem frissítette a letöltendő források hash-ét. Számítsuk ki a forrás hash-ét (ez esetben md5):

md5sum <source>

majd a PKGBUILD fájlban írjuk át a az md5sum változót:

md5sums=('<sum_1>' ... '<sum_n>')

Függőség nem található

Előfordulhat, hogy az AUR csomagot nem tartják karban, és a függőségeit nem frissítik megfelelően a PKGBUILD fájlban. Nem ritka, hogy egyes csomagoknál major verzió váltáskor a nevüket is megváltoztatják, és ezt nem frissítik a PKGBUILD-ben. Ezt kézzel megtehetjük:

depends=('<dep_1>' ... '<dep_n>')
makedepends=('<mdep_1>' ... '<mdep_n>')

Utóbbinál a fordításhoz szükséges függőségeket adtuk meg.

patch

Gyakori probléma, hogy patchelni szeretnénk egy programot, új fícsőr miatt, vagy egyszerűen csak egy bug miatt. A PKGBUILD-nek köszönhetően kényelmesen megtehtjuk ezt. A sources változóhoz hozzáadjuk a diff fájlt:

sources('source_1' ... 'patch.diff')

Ahol a patch.diff lehet egy lokális fájl (a tarballon belül), vagy egy URL. Ezután már csak a build függvényen belül kell apply-olni a patchet:

patch -b -p1 < patch.diff || return 1

[szerkesztés] 7 yaourt

A yaourt amellett, hogy egy frontend a pacman fölé, további szolgáltatásokat is nyújt. Segítségével az AUR repository-ból tudunk csomagokat buildelni, telepíteni. A yaourt paraméterezése nagyon hasonló a pacman-éhoz. Sajnos semelyik hivatalos tárolóban nem található meg, vagy AUR-ból telepítjük, vagy egy nem hivatalos tárolóból (pl. archlinuxfr).

A csomagok telepítése nagyon könnyű:

yaourt <keresési minta>

A fenti parancs kiadása után a mintára illeszkedő csomagok közül kiválasztjuk a számunkra megfelelőt (a megfelelő tárolóból), és már telepíti is.

~/ yaourt fluxus                                                        [13:29:50]
1 aur/fluxus 0.17rc5-2 (12)
    A rapid prototyping, livecoding and playing/learning environment for 3D 
    graphics and games.
2 aur/fluxus-git 20120126-1 [installed: 20120819-1] (7)
    A rapid prototyping, livecoding and playing/learning environment for 3D 
    graphics and games.
==> Enter n° of packages to be installed (ex: 1 2 3 or 1-3)
==> -------------------------------------------------------
==> 
Személyes eszközök