TIPP etc portage
A Gentoo Linux Wiki wikiből
A /etc/portage könyvtár segítségével a portage elegánsan és kényelmesen szabályozható. Ennek részleteit mutatja be ez a cikk.
Tartalomjegyzék |
[szerkesztés] Bevezetés
[szerkesztés] A DEPEND egység és formái
A portage szabályait DEPEND egységekből (angolul "atomokból") építi fel. Minden egység kötelezően tartalmaz egy csomagnevet és a csomag kategóriáját, esetleg tartalmazhat a verziójára is utasításokat.
- Verziószám nélkül alakja:
<kategória>/<csomagnév>
- Példa:
sys-kernel/gentoo-sources
- Verziószámmal pedig:
<relációsjel><kategória>/<csomagnév>-<verzió>
- Példa:
>media-libs/alsa-lib-1.0.8 =media-sound/beep-media-player-0.9.7-r5 >=app-editors/gedit-2.9.7
[szerkesztés] Kulcsszavak (KEYWORDS)
Minden ebuild rendelkezik egy kulcsszóval (KEYWORD), ami megmondja a portage-nek, hogy az adott csomag milyen rendszereken fut, és stabilnak minősítette-e már a gentoo stáb. A példákhoz a leggyakoribb, az x86 architektúrát fogom használni:
- x86: A stáb az adott csomagot stabillá nyilvánította az x86 rendszereken.
- ~x86: A csomagot instabillá nyilvánították, tehát már feltelepíthető, de még felléphetnek problémák vele. Az esetek nagy részében ez csak annyit jelent, hogy nem tesztelték még eleget, a csomag nem mutat különösebb tüneteket. A legújabb verziók általában ebbe a státuszba kerülnek.
- -x86: A stáb az x86 architektúrán letiltotta az adott csomagot. Például SPARC alapú gépekhez írt rendszerszoftvereknek nincs semmi értelme egy x86 gépen, ezért letiltásra kerülnek.
- -*: A csomag teljes letiltása. Általában el se indul, vagy veszélyes lehet. A FluidPortage nevű, CVS ebuildeket tartalmazó overlay is így jelöli meg a csomagjait - bővebben majd a package.keywords-ben.
[szerkesztés] Az ACCEPT_KEYWORDS
A make.conf rendelkezik egy ACCEPT_KEYWORDS paraméterrel, mely az egész rendszerre kiterjedően szabályozza, hogy a portage milyen kulcsszavú csomagokat telepíthet. Használata manapság nem ajánlott, nem elegáns, és instabilitáshoz vezethet.
Íme egy élő példa, mely minden csomagra engedélyezi a legfrissebb instabil verzió telepítését:
| File: /etc/make.conf |
ACCEPT_KEYWORDS="~x86" |
[szerkesztés] A /etc/portage fájljai és használatuk
[szerkesztés] /etc/portage/package.mask
A package.mask segítségével csomagok, vagy a csomagok megadott verziói tilthatók le, melyeket így a portage nem telepít fel semmiképpen - ha nem lehet megkerülni, akkor hibaüzenettel megáll.
A letiltandó csomagokat soronként, minden sorba egyetlen DEPEND elemet írva kell megadni.
Példa: Az ALSA 1.0.9-rc3-as verziója nálam segfaultokat okoz (gondolom nem kompatibilis a kernelbe épített régebbi ALSAval). Ezért megmondom a portage-nek, hogy felejtse el a legutóbbi stabil utáni verziókat:
| File: /etc/portage/package.mask |
>media-libs/alsa-lib-1.0.8 >media-libs/alsa-oss-1.0.8 >media-sound/alsa-headers-1.0.8 |
[szerkesztés] /etc/portage/package.unmask
A package.unmask ennek ellenkezőjét végzi, a globális package.mask által letiltott csomagok korlátozását oldja fel. MEGJEGYZÉS: A kulcsszavak által letiltott csomagokat ez a fájl nem engedélyezi!
A feloldandó csomagokat soronként, minden sorba egyetlen DEPEND elemet írva kell megadni.
Példa: A sun-jre-bin 1.5-öt a globális package.mask blokkolja, mert vannak olyan Java programok, amelyek nem fordulnak le vele. De én szeretném ezt használni az azureusomhoz, ezért a következővel feloldom az összes korlátot a JREről:
| File: /etc/portage/package.unmask |
dev-java/sun-jre-bin |
[szerkesztés] /etc/portage/package.keywords
A package.keywords ugyanazt teszi, mint az ACCEPT_KEYWORDS, csak egy-egy csomagra vonatkozóan. Ezt preferálják mostanság amaz helyett, mert nem veszélyezteti a teljes rendszert.
Minden sor tartalmaz egy DEPEND egységet és az engedélyezett kulcsszót.
Példa: Az EasyTAG legújabb verziója instabilnak minősített, de szeretném telepíteni, ezért beírom ezt a sort:
| File: /etc/portage/package.keywords |
media-sound/easytag ~x86 |
Ennek a fordítottja is lehetséges, egy ~x86-os rendszeren lekorlátozni egy csomagot stabil verzióra (idézem a manból): a következő példa csak a stabil mplayert engedi fel:
| File: /etc/portage/package.keywords |
media-video/mplayer -~x86 |
Szintén ezt a fájlt kell használni a FluidPortage-hez, ahol minden csomag -* -ot kapott. Itt a CVS ebuild engedélyezéséhez -* -ot kell megadni, például:
| File: /etc/portage/package.keywords |
x11-libs/cairo -* |
[szerkesztés] /etc/portage/package.use
A package.use is a make.conf egy paraméterét szabályozza csomagonként, névlegesen a USE-flageket. Segítségével a globális USE lista mérete csökkenthető, vagy (a manból idézve) megoldható, hogy az egyik csomag így, a másik úgy települjön.
Minden sor egy DEPEND elemből és a USE-flagek szóközzel tagolt listájából áll.
Példa: Egy GTK2-t használó programozó szeretné felrakni a dokumentációkat is a gtk+2-höz, de nem akarja a helyet minden egyes csomag dokumentációival foglalni. Ezért beírja a következőt:
| File: /etc/portage/package.use |
=x11-libs/gtk+-2* doc |
[szerkesztés] /etc/portage/profile/package.provided
A package.provided az emerge --inject parancsot hivatott kiváltani. A portage az ebben megadott csomagokat úgy tekinti, hogy már fenn vannak a gépen, így nem próbálja őket telepíteni. Célszerű egyedi kerneleknél, külsőleg, egyénileg fordított csomagoknál használni.
Minden sor egy DEPEND elemet tartalmaz.
Példa: A legújabb dark kernelt használom, amihez ebuild nem tartozik. Egyes csomagoknak kell egy telepített kernelforrás, ha nem szólnék semmit, a portage automatikusan feltenne egyet a portage-ből. Ami teljesen felesleges. Ezért:
| File: /etc/portage/profile/package.provided |
sys-kernel/vanilla-sources |
--SysOP XXL 08:14, 8 Máj 2005 (GMT)
