Az ebuild szoftvercsomag-tároló

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Ebuild repository and the translation is 100% complete.


Resources

Az ebuild szoftvercsomag-tároló (nevezik még: ebuild forráskódtároló, ebuild tároló, ebuild repository), egy olyan - távoli számítógépen létrehozott - fájlstruktúra, amely a helyben használt Gentoo operációs rendszerünk számára biztosítja a letölthető és telepíthető szoftvercsomagokat. Az ebuild szoftvercsomag-tárolók ebuilds fájlokat, eclass fájlokat és más típusú leíró metaadat-fájlokat tartalmaznak. Ezek a fájlok a Portage szoftvercsomag-kezelőt lokálisan bináris gépi kódra legenerálható szoftvercsomagokkal látják el. Továbbá, ellátják a lokális Gentoo számítógépünk Portage szoftvercsomag-kezelőjét a távoli számítógépen már előre a forráskódból binárisra legenerált gépi kódú programokkal is. Ellátják a Portage szoftvercsomag-kezelőt a szoftvercsomag elemekről szóló hírekkel, profil célokkal stb.

A Gentoo ebuild szoftvercsomag-tároló a Gentoo Linux elsődleges és a hivatalos ebuild szoftvercsomag-tárolója. A Gentoo rendszert hivatalosan alkotó összes elsődleges szoftvercsomag felépítéséhez, és telepítéséhez szükséges információt tartalmazza. További hivatalos (de a felhasználók által karbantartott, ezért másodlagos) ebuild tárolók állíthatók be a Portage segítségével, mint például a GURU. Ezen tároló beállításával még több, a távolban fellelhető szoftvercsomagot tudunk a helyi Gentoo operációs rendszerünkre letölteni és telepíteni.

Alapértelmezés szerint a Portage az adott szoftvercsomagnak az elérhető legfrissebb verzióját telepíti bármely - a számítógépünkön a Portage szoftvercsomag-kezelőben beállított - távoli ebuild szoftvercsomag-tárolóból. Ha a legfrissebb elérhető szoftvercsomag verzió több távoli ebuild szoftvercsomag-tárolóban is benne van, akkor a helyi Gentoo operációs rendszerünk egy meghatározott prioritási sorrend alapján választja ki a ténylegesen telepítendő szoftvercsomagot. Innen ered a köznyelvben használatos átfedés (overlay) elnevezés.

A Gentoo operációs rendszerek rendszergazdái további ebuild szoftvercsomag-tárolókat is beállíthatnak a Portage szoftvercsomag-kezelő számára az alábbiakban ismertetett segédprogramok és módszerek segítségével.

A Gentoo ebuild szoftvercsomag-tároló

A Gentoo ebuild szoftvercsomag-tároló a Gentoo Linux operációs rendszereknek a fő ebuild szoftvercsomag-tárolója. Az alapértelmezett beállítások szerint az összes szoftvercsomag innen származik. A szoftvercsomag-tároló a gitweb.gentoo.org szerveren van karbantartva, és alapból ez a szerver fog a helyi Gentoo számítógépekkel leszinkronizálódni. A /var/db/repos/gentoo könyvtárban, kerül erre sor, hogy a szinkronizációt követően már offline módon, helyben is elérhető legyen a Portage szoftvercsomag-kezelő számára.

A Gentoo ebuild repository ebuild fájlokat tartalmaz, amelyek megmondják a Portage szoftvercsomag-kezelőnek, hogy hogyan kell felépíteni és telepíteni az egyes szoftvercsomagokat. Az ebuild-ek metaadatokat, szoftverfüggőségi információkat és minden mást tartalmaznak, ami a szoftvercsomag működéséhez szükséges.

A metaadatok megadják a szoftvercsomag nevét, verzióját, a forráskódok beszerzésének helyeit, a rendelkezésre álló USE jelölőzászlókat, a licencet, a webhelyet stb. Az ebuilds szoftverfüggőségi információi lehetővé teszik a Portage szoftvercsomag-kezelő számára, hogy begyűjtsön minden más szoftvercsomagot, amely a telepítendő szoftvercsomag felépítéséhez és futtatásához szükséges - nem többet, és nem kevesebbet csinál. A szoftverfüggőségek nagyon aprólékosak a Gentoo operációs rendszerben, még attól függően is változhatnak, hogy milyen USE jelölőzászlókat választottunk, a végső szelektivitás érdekében. Talán a legfontosabb, hogy az ebuild-ek tartalmazzák az egyes szoftvercsomagokhoz szükséges beállításokat az összeállítás számára, (bináris kódra történő lefordítás és becsomagolás). Ugyanilyen fontos, hogy pontosan leírják a telepítéséhez szükséges Portage szoftvercsomag-kezelő által végrehajtandó utasításokat. Szükséges információkat adnak a szoftvercsomag teszteléséhez. Általában a projekt saját forráskódjából származnak.

Az ebuild-eken kívül a Gentoo ebuild szoftvercsomag-tároló a hivatalos profilokat is tartalmazza. Minden egyes profil meghatározza, a USE jelölőzászlók alapértelmezett értékeit. Továbbá meghatározza a legtöbb változó alapértelmezett értékét a /etc/portage/make.conf fájlban. Valamint az alapértelmezett rendszerszoftvercsomagok készletét is meghatározza, stb.

A Gentoo ebuild tároló egyben az elemekkel kapcsolatos hírek közzétételének helye is. Ezért minden új hír ki lesz emelve a Gentoo ebuild szoftvercsomag-tárolójának a szinkronizálódása után.

A Gentoo ebuild szoftvercsomag-tárolót és annak ebuildjeit a Gentoo fejlesztői és a közösség egyéb tagjai tartják karban.

Note
A Gentoo ebuild szoftvercsomag-tárolót néha rövidebb vagy akár köznyelvi stílusban is emlegetik, mint például a Gentoo szoftvercsomag-tároló, a Gentoo repo, ::gentoo, gentoo.git, vagy néha csak "repo". Történelmileg és általánosságban a Gentoo közösségen belül Portage fa, rsync fa, vagy néha csak "a fa" néven is említik.
Tip
A GURU egy hivatalos ebuild szoftvercsomag-tároló, amelyet néhány Gentoo-fejlesztő kis segítségével, de valójában a Gentoo felhasználók közösen tartanak karban. Kiegészítik a Gentoo ebuild szoftvercsomag-tárolót, valamint a karbantartók arra törekszenek, hogy a biztosított szoftvercsomagok észszerű minőségi szintjét fenntartsák. Itt megtalálható a a repos.gentoo.org oldalán regisztrált nyilvános ebuild szoftvercsomag-tárolók listája is.

Hol vannak az ebuild szoftvercsomag-tárolók?

Mivel az ebuild szoftvercsomag-tároló egyszerűen csak fájlok és könyvtárak struktúrája, ezért egy új ebuild szoftvercsomag-tároló elérhetővé tehető a Portage számára egyszerűen a fájlok és könyvtárak átmásolásával egy olyan helyre amit a Portage szoftvercsomag-kezelővel is ismertetünk. Az ebuild szoftvercsomag-tárolók és fájljaik általában a /var/db/repos/ könyvtár alatt találhatók, de a Portage szoftvercsomag-kezelőnél beállított tárolók helye az /etc/portage/repos.conf fájlban vannak megadva. Az ebuild szoftvercsomag-tárolók bármilyen hozzáférhető fájlrendszeren látrehozhatóak, még nfs vagy SSHFS fájlrendszeren is – lehetővé téve azok hálózati vagy internetes szerveren való tárolását.

Amint azt korábban megbeszéltük, a Gentoo ebuild szoftvercsomag-tároló a gitweb.gentoo.org webhelyen található. Az a szerver más ebuild szoftvercsomag-tárolókat is tárol.

Valójában a gyakorlatban minden további ebuild szoftvercsomag-tárolót nem úgy hoznak létre általában, hogy csak egyszerűen átmásolják egy másik könyvtárba, majd konfigurálnak a Portage részére (azaz hozzáadják az /etc/portage/repos.conf fájlhoz). Általában elmondható, hogy az új szoftvercsomag-tárolót harmadik felek tesznek elérhetővé, és ha egyszer konfigurálták a Portage számára, akkor a Portage fogja összeszinkronizálni őket. A konfiguráció szerint a szinkronizálási folyamat letükrözi az összes fájlt egy távoli helyről egy helyileg elérhető fájlrendszerre.

Mivel az ebuild szoftvercsomag-tárolók valójában csak fájlstruktúrák, ezért sokféle módszer használható a szinkronizálásukra. A Portage számos lehetőséget kínál fel erre a célra. Az Rsync az alapértelmezett szinkronizálási módszer, de a git is ugyanúgy népszerű. A szinkronizálási módszert a /etc/portage/repos.conf fájlban adjuk meg a szoftvercsomag-tároló beállításakor, a lekéréséhez szükséges információkkal együtt.

Szoftvercsomag-tároló kezelése

Használja az eselect repository eszközt a Portage konfigurációjához amivel ebuild szoftvercsomag-tárolót bír egyszerűen hozzáadni, letiltani, vagy eltávolítani. Ez az eszköz praktikus módot is kínál a repos.gentoo.org oldalon való regisztrációval elérhető szoftvercsomag-tárolók listázására és hozzáadására.

Az ebuild szoftvercsomag-tárolók manuálisan mindig beállíthatók az /etc/portage/repos.conf fájl szerkesztésével.

Warning
Míg a Gentoo ebuild szoftvercsomag-tároló vagy írják vagy reviewed a Gentoo fejlesztők, és a GURU szoftvercsomag-tárolónak van némi fejlesztői felügyelete, addig ez nem mindig igaz más ebuild szoftvercsomag-tárolókra. Lehetséges, hogy egyes ebuild tárolók sérülékeny, súlyosan hibás, vagy elméletileg akár rosszindulatú szoftvereket is tartalmazhatnak.

A felhasználó új ebuild tárolókat is létrehozhat a Portage használatával.

Az aktív ebuild szoftvercsomag-tárolók listája a következő parancsok egyikének kimenetén keresztül érhetőek el:

user $emerge --info
user $portageq repos_config /

Szoftvercsomagok telepítése más szoftvercsomag-tárolókból

Azok a szoftvercsomagok amelyek a Gentoo ebuild szoftvercsomag-tárolótól eltérő szoftvercsomag-tárolókból származnak, szintén a szokásos módon, az emerge paranccsal telepíthetőek.

Például a GURU szoftvercsomag-tároló hozzáadása után telepítse az x11-misc/xbanish szoftvercsomagot abból a szoftvercsomag-tárolóból:

root #emerge --ask x11-misc/xbanish
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
Dependency resolution took 2.96 s.
 
[ebuild   R   #] x11-misc/xbanish-1.7::guru  0 KiB
 
Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Vegye figyelembe, hogy a szoftvercsomag-tároló nincs megadva a parancsban. A "::guru" a szoftvercsomag atomjához lett fűzve, így az megmutatja, hogy a szoftvercsomag melyik szoftvercsomag-tárolóból lesz telepítve. Ez azért működik, mert az x11-misc/xbanish szoftvercsomag megtalálható a GURU szoftvercsomag-tárolóban, de nincs benne a Gentoo szoftvercsomag-tárolóban.

Ha ugyanannak a szoftvercsomagnak több verziója is elérhető két vagy több különböző ebuild szoftvercsomag-tárolóból, akkor a Portage szoftvercsomag-kezelő a legújabb verziójú szoftvercsomagot fogja telepíteni.

Tip
Rendszerfrissítések végrehajtásakor ügyeljen arra, hogy ha egy újonnan hozzáadott ebuild szoftvercsomag-tároló a jelenleg telepített szoftvercsomagok újabb verzióit tartalmazza, akkor ezek a szofvercsomagok az átfedés újabb verzióira cserélődnek. Fontolja meg, hogy szükséges-e a frissítésük.

Tekintse meg az engedélyezett ebuild szoftvercsomag-tárolók elfedése leírást, hogy elkerülje az ebuild szoftvercsomag-tárolókból a szoftvercsomagok átfogó frissítését. Vegye figyelembe, hogy a GURU ebuild szoftvercsomag-tároló szándékosan kerüli olyan verziók rendelkezésre bocsátását, amelyek lecserélnék a Gentoo ebuild szoftvercsomag-tároló szoftvercsomagjait.

Ha egy szoftvercsomag legújabb verziója több ebuild szoftvercsomag-tárolóból is elérhető, akkor a legmagasabb prioritású szoftvercsomag-tároló lesz használva. A prioritás az /etc/portage/repos.conf fájlban állítható be egy ebuild szoftvercsomag-tároló számára. A Gentoo ebuild szoftvercsomag-tároló alapértelmezett prioritása -1000, és ha egy szoftvercsomag-tárolóhoz nincs prioritás beállítva, akkor az alapértelmezett értéke 0. Ha több ebuild szoftvercsomag-tárolónak is ugyanaz a prioritása (például kettőnek vagy többnek nincs beállítva prioritása, ezért a prioritásuk 0), akkor a sorrend nincs meghatározva. Ebben az esetben a telepítendő szoftvercsomag önkényesen kerül kiválasztásra.

A Portage szoftvercsomag-kezelőt lehet arra utasítani, hogy telepítsen egy szoftvercsomagot egy adott ebuild szoftvercsomag-tárolóból a :: verzióspecifikátorral (különböző emerge utasításokhoz használható, pl. szoftvercsomag eltávolítása a --depclean segítségével):

root #emerge --ask category/atom::repository-name

Tekintse meg a szoftvercsomag-tároló kezelése szakaszt, hogy megtudja, hogyan listázhatja ki a Portage szoftvercsomag-kezelőre beállított szoftvercsomag-tárolókat a megfelelő prioritásokkal.

Szoftvercsomag-tároló szinkronizálása

Az ebuild szoftvercsomag-tárolókat szinkronizálni kell, hogy a helyi letükrözések a távoli szoftvercsomag-tárolók legújabb állapotát mutassák. Ez szükséges a rendszer naprakészen tartásához és az új szoftverek telepítéséhez.

Note
A Gentoo szoftvercsomag-tárolóval való rendszeres szinkronizálás, és a rendszerünk ilyen módon történő frissítése fontos azért, hogy a legfrissebb biztonsági frissítések telepítve legyenek, és hogy a helyi rendszer ne kerüljön túlságosan ki a szinkronból a Gentoo tárolóval, mivel ez bonyolulttá teheti a frissítéseket ha a dolgok túl távolra haladtak el az szoftvercsomag-tárolóban a saját Gentoo rendszerünkhöz képest.
Tip
Szinkronizáljon és frissítsen naponta vagy hetente azért, hogy a Gentoo Linux telepítés zökkenőmentesen működjön a legújabb biztonsági frissítésekkel. Néhány hétnél tovább várva a frissítés kissé bonyolultabbá teheti a dolgokat a frissítési kísérlet során. Kérjük, ne szinkronizáljon naponta többször, hogy elkerülje a szerverek megterhelését.
Important
Ha a helyi számítógépen a szoftvercsomag-tárolók nem túl naprakészek, akkor még a szoftvercsomagok telepítése előtt szinkronizálja a szoftvercsomag-tárolókat, majd frissítse az operációs rendszert.

A szoftvercsomag-tároló szinkronizálása az emaint sync paranccsal történik, és az /etc/portage/repos.conf fájlban állítható be:

user $emaint --help

Az összes olyan szoftvercsomag-tároló szinkronizálásához, amelyhez az auto-sync=true be van állítva, futtassa az emaint sync parancsot a --auto kapcsolóval (röviden -a). Általában ezt a parancsot kell rendszeresen futtatni, a rendszerfrissítések és a szoftvercsomagok telepítése előtt (és egyenértékű a régi emerge --sync paranccsal):

root #emaint sync --auto

A "foo" szoftvercsomag-tároló szinkronizálása érdekében (a "foo" automatikus szinkronizálási beállításától függetlenül):

root #emaint sync --repo foo

Az összes szoftvercsomag-tároló szinkronizálása érvényes szinkronizálási típussal (sync-type) és szinkronizálási URL-lel (sync-url). (Az automatikus szinkronizálási beállítások figyelmen kívül hagyásával):

root #emaint sync --allrepos
Warning
Minden olyan szoftvercsomag-tárolónak, amit nem szabad szinkronizálni amikor futtatjuk az emaint sync --auto parancsot, muszáj beállítani az auto-sync = no értéket a megfelelő fájlban az /etc/portage/repos.conf-ben, mivel az alapértelmezett érték a auto-sync = true.
Note
A emerge --sync parancs mostanra már csak egy kompatibilitási paranccsá lett. Az összes szinkronizálási művelet elsődleges vezérlése átkerült a emerge parancsból a emaint parancsba, és a emerge --sync mostanra már csak azt csinálja, hogy meghívja az emaint sync modult a --auto opcióval. Ez csak azokon a szoftvercsomag-tárolókon hajt végre szinkronizálást, amelyeknél az auto-sync beállítása yes vagy true. Ha az auto-sync opció nincs beállítva vagy hiányzik a beállított tárolókban, akkor az emerge --sync egyáltalán nem szinkronizálhat szoftvercsomag-tárolókat.
Tip
Az emerge-webrsync eszköz használható a Gentoo szoftvercsomag napi rsync pillanatképének letöltésére és telepítésére, például azért, hogy segítse a tűzfal korlátozásokat, vagy például, hogy felgyorsítsa az első szinkronizálást.

Tekintse meg a man emaint oldalt a portage szinkronizálási parancsok használatáról. Olvassa el a Portage project sync cikket az új moduláris szinkronizálási rendszerre való átállásról a Portage 2.2.16-os verziójáról. Fontos információkat tartalmaz, különösen a eix-sync, esync -l, and emerge --sync parancsokat használó felhasználók számára.

Legjobb gyakorlatok

Gyorsítótár generálása

Ha nagy ebuild szoftvercsomag-tárolók vannak telepítve, akkor a Portage hosszú időt vehet igénybe olyan műveletek végrehajtásához, mint a szoftverfüggőségi feloldás. Ennek az az oka, hogy az ebuild szoftvercsomag-tárolók általában nem tartalmaznak metaadat-gyorsítótárat.

Hozzon létre egy helyi metadata gyorsítótárat az emerge --regen futtatásával az ebuild szoftvercsomag-tárolók szinkronizálása után:

root #emaint sync --allrepos
root #( ulimit -n 4096 && emerge --regen )

Legyen óvatos, mert az emerge --regen sok időt vesz igénybe, és nem ajánlott az rsync felhasználóknak, mivel az rsync szerveroldali gyorsítótárak segítségével frissíti a gyorsítótárat (a legtöbb portage felhasználó rsync felhasználó). Az rsync felhasználóknak egyszerűen a emaint (vagy a eix-sync) segítségével kell újra létrehozni a gyorsítótárat. Valószínűleg csak a nagyon nagy ebuild szoftvercsomag-tárolókat használók próbálhatják ki a emerge --regen parancsot.

Bekapcsolt ebuild szoftvercsomag-tárolók elfedése

Amikor nagy ebuild szoftvercsomag-tároló vagy ismeretlen/alacsony minőségű kód van használatban, akkor a legjobb gyakorlat az egész ebuild szoftvercsomag-tároló kemény elrejtése, és csak bizonyos ebuildek elfogadása eseti alapon. Például a "repository-foobar" nevű átfedéshez:

FILE /etc/portage/package.maskÖsszes szoftvercsomag elfedése (maszkolása) egy ebuild szoftvercsomag-tárolóban
*/*::repository-foobar

Majd adja hozzá az adott szoftvercsomago(ka)t a repository-foobar átfedésből, hogy azok láthatóak legyenek a Portage szoftvercsomag-kezelő számára a telepítéshez:

FILE /etc/portage/package.unmaskEgy adott szoftvercsomag felfedése (unmaszkolása) egy ebuild szoftvercsomag-tárolóban
foo-category/bar::repository-foobar

A fenti felfedése után a "foo-category/bar" nevű szoftvercsomagnak elérhetőnek kell lennie, és a repository-foobar átfedésből származó többi szoftvercsomag sem lesz elérhető.

További olvasnivaló a témában

Külső források