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)

A lap eredeti címe: „http://hu.gentoo-wiki.com/TIPP_etc_portage
Személyes eszközök