Handbook:Alpha/Portage/Advanced/hu

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Portage/Advanced and the translation is 100% complete.
Alpha kézikönyv
A Gentoo Linux telepítése
A telepítésről
Telepítőképfájl kiválasztása
Hálózat beállítása
Adathordozók előkészítése
Fokozat (stage) fájl
Alaprendszer telepítése
Kernel beállítása
Rendszer beállítása
Eszközök telepítése
Bootloader beállítása
Telepítés véglegesítése
Munka a Gentoo rendszerrel
Portage bemutatása
USE jelölőzászlók
Portage jellemzői
Init-szkript rendszer
Környezeti változók
Munka a Portage szoftvercsomag-kezelővel
Fájlok és könyvtárak
Változók
Szoftverágak keverése
További eszközök
Egyéni szoftvercsomag-tárolóhely
Fejlett funkciók
Hálózat beállítása OpenRC init-rendszeren
Munka elkezdése
Fejlett beállítások
Moduláris hálózat
Vezeték nélküli (Wi-Fi)
Funkcionalitás hozzáadása
Dinamikus menedzsment


Portage fejlett funkcióinak a bevezetése

A legtöbb olvasónak az eddig kapott információ bőven elegendő a Linux műveleteihez. Azonban a Portage szoftvercsomag-kezelő még ennél is jóval többre képes. Számos funkciója fejlett testreszabási célokra szolgál, vagy csak speciális esetekben alkalmazható.

Természetesen, a nagy rugalmasság a potenciális esetek nagyon hosszú listájával jár. Egyszerűen nem lehetséges mindet itt dokumentálni. Ehelyett a cél az, hogy néhány általános kérdésre összpontosítsunk, amelyeket aztán ki lehet egészíteni egy sajátos szakasszal. További finomhangolások és tippek, mint ezek, megtalálhatóak a Gentoo Wikipédián.

A legtöbb ezek közül a kiegészítő funkciók közül könnyen megtalálható a Portage szoftvercsomag-kezelőhöz mellékelt man súgókban:

user $man portage
user $man make.conf

Végül tudnia kell, hogy ezek fejlett funkciók, amelyek helytelen konfigurálása esetén a hibakeresés és a hibák elhárítása sokkal nehezebbé válhat. Ügyeljen arra, hogy az ilyen jellegű testreszabásokat kifejezetten említse meg, amikor Ön hibajelentést nyit.

Szoftvercsomagonkénti környezeti változók

Az /etc/portage/env használata

Alapértelmezés szerint a szoftvercsomagok lefordítása bináris futtatható kódra a /etc/portage/make.conf fájlban meghatározott környezeti változókat használja, mint például a CFLAGS, MAKEOPTS és mások. Bizonyos esetekben előnyös lehet különböző változókat megadni egyes szoftvercsomagok számára. Ennek érdekében a Portage támogatja a /etc/portage/env könyvtár és a /etc/portage/package.env fájl használatát.

A /etc/portage/package.env fájl tartalmaz egy listát azokról a szoftvercsomagokról, amelyekhez eltérő környezeti változók szükségesek, valamint egy specifikus azonosítót, amely jelzi a Portage számára, hogy melyik azonosító fájlt kell alkalmaznia. Az azonosítónév szabad formátumú. A Portage keresni fog egy pontosan ugyanazon névvel rendelkező, kis- és nagybetű érzékeny fájlt. Tekintse meg a következő példát további részletekért.

Példa: Hibakeresés használata konkrét szoftvercsomagok számára

A media-video/mplayer szoftvercsomag hibakeresésének az engedélyezéséhez:

Állítsa be a hibakeresési változókat egy /etc/portage/env/debug-cflags nevű fájlban. A fájl neve önkényesen választható, de természetesen a név tükrözi a fájl célját, ami később, felülvizsgálat során nyilvánvalóvá teszi, hogy miért létezik a fájl. Ha a /etc/portage/env könyvtár még nem létezik, akkor azt létre kell hozni.

root #mkdir /etc/portage/env
FILE /etc/portage/env/debug-cflagsSpecifikus változók beállítása a hibakeresés számára.
# Add -ggdb to CFLAGS for debugging 
CFLAGS="-O2 -ggdb -pipe"
FEATURES="${FEATURES} nostrip"

Ezután a media-video/mplayer szoftvercsomag meg van jelölve, hogy használja az új hibakeresési azonosítót a package.env fájlban.

FILE /etc/portage/package.envA debug-cflags azonosító használata az mplayer szoftvercsomag számára
media-video/mplayer debug-cflags

Bekapcsolódás az emerge folyamatba

Az /etc/portage/bashrc és a kapcsolódó fájlok használata

Amikor a Portage ebuildekkel dolgozik, egy Bash környezetet használ, amelyben különböző build-funkciókat hív meg (például src_prepare, src_configure, pkg_postinst stb.). A Portage lehetővé teszi a rendszergazdák számára, hogy egy speciális Bash környezetet állítsanak be.

A speciális Bash környezet használatának előnye, hogy lehetővé teszi a hook-ok használatát az emerge folyamat minden végrehajtott lépése során. Ez megvalósítható minden emerge esetén (a /etc/portage/bashrc segítségével), vagy szoftvercsomagonkénti környezetek használatával (a korábban tárgyalt /etc/portage/env segítségével).

A Portage a fázishorgok (phase hooks) funkcióit hívja meg, ha azok definiálva vannak a /etc/portage/bashrc fájlban. Ezek a funkciók a következő névadási konvenciót követik: pre_phase_name és post_phase_name. Például a Portage a post_pkg_postinst horgot hívja meg közvetlenül a pkg_postinst fázisfunkció meghívása után.

A folyamat beillesztéséhez a Bash környezet figyelheti azokat a változókat, amelyek mindig elérhetők az ebuild fejlesztése során (mint például a CATEGORY, P, PF, ...). E változók értékei alapján további lépések és/vagy funkciók hajthatók végre.

Példa: Fájladatbázis frissítése.

Ebben a példában a /etc/portage/bashrc fájl lesz használva néhány fájladatbázis-alkalmazás meghívására annak érdekében, hogy ezek adatbázisai naprakészek legyenek a rendszerrel. A példában használt alkalmazások az aide (egy behatolás-észlelő eszköz) és az updatedb (az mlocate programmal használva), de ezek csak példaként szolgálnak. Ezt ne tekintse az AIDE útmutatójának.

/etc/portage/bashrc fájlt ebben az esetben a postinst (a fájlok telepítése után) és a postrm (a fájlok eltávolítása után) fázisokba kell "bekapcsolódni", mert ekkor változtak meg a fájlok a fájlrendszerben.

FILE /etc/portage/bashrcBekapcsolódás a postinst és postrm fázisokba
my_database_update() {
    echo ":: Calling aide --update to update its database"
    aide --update
    echo ":: Calling updatedb to update its database"
    updatedb
}

post_pkg_postinst() { my_database_update; }
post_pkg_postrm() { my_database_update; }

Feladatok végrehajtása az ebuild szoftvertároló szinkronizálása után

Az /etc/portage/postsync.d hely használata

Az ebuild fázisokhoz való csatlakozás mellett a Portage egy másik lehetőséget is kínál a hook funkciókhoz: a postsync.d-t. Ezek a hook típusok a Gentoo ebuild szoftvercsomag-kezelő frissítése (más néven 'szinkronizálása') után futnak le. Ha feladatokat szeretne futtatni a Gentoo szoftvercsomag-kezelő frissítése után, akkor helyezze el a szkripteket a /etc/portage/postsync.d könyvtárban. Ügyeljen arra, hogy a könyvtárban található fájlok végrehajthatónak legyenek jelölve, különben nem fognak futni.

Példa: Az eix-update futtatása

Amennyiben nem a eix-sync parancs lett használva a szoftvertároló szinkronizálására, akkor továbbra is lehetőség van az eix adatbázis frissítésére a emerge --sync (vagy emerge-webrsync) parancs futtatása után, ha létrehozunk egy symlinket a /usr/bin/eix fájlra, amely eix-update néven kerül elhelyezésre a /etc/portage/postsync.d könyvtárban.

root #ln -s /usr/bin/eix /etc/portage/postsync.d/eix-update
Note
Ha más név kerül kiválasztásra, akkor egy olyan szkriptet kell létrehozni, amely a /usr/bin/eix-update fájlt hívja meg. Az eix bináris fájl ellenőrzi, hogyan lett meghívva annak eldöntése érdekében, hogy melyik funkciót hajtsa végre. Ha egy symlink jön létre, amely az eix-re mutat, de nem eix-update néven lett meghívva, akkor nem fog megfelelően működni.

Profilbeállítások felülbírálása

Az /etc/portage/profil beállítása

Alapértelmezés szerint a Gentoo a /etc/portage/make.profile által meghivatkozott profilban található beállításokat használja, amely egy szimbolikus hivatkozás a célprofil könyvtárra. Ezek a profilok meghatároznak specifikus beállításokat, és más profilokból (a parent fájlokon keresztül) örökölnek beállításokat.

A /etc/portage/profile használatával a rendszergazdák felülírhatják a profilbeállításokat, például a szoftvercsomagokat (mely szoftvercsomagokat tekintik az @system készlet részének), USE jelölőzászlókat kényszeríthetnek és egyebeket.

Példa: nfs-utils hozzáadása a rendszerkészlethez

Ha NFS-alapú fájlrendszereket használ kritikus fájlrendszerekhez, akkor szükség lehet arra, hogy a net-fs/nfs-utils szoftvercsomagot rendszercsomagként jelölje meg. Ez azt eredményezi, hogy a Portage erőteljesen figyelmezteti a rendszergazdákat, ha megpróbálják eltávolítani.

Ennek eléréséhez a szoftvercsomagot hozzá kell adni a /etc/portage/profile/packages fájlhoz, az elejére egy * (csillag szimbólum) jelzéssel:

FILE /etc/portage/profile/packagesA net-fs/nfs-utils megjelölése a rendszer szoftvercsomag jelöléssel
*net-fs/nfs-utils

A nem szabványos szoftverjavítások alkalmazása

Forráskód megjavítása felhasználói szoftverjavításokkal a /etc/portage/patches/ könyvtárban

A felhasználóktól származó szoftverjavítások lehetővé teszik a szoftvercsomagok forráskódjainak a kijavítását, amikor a forráskódokat a telepítés előtt kicsomagoljuk. Ez a módszer hasznos lehet az upstream javítások alkalmazására a megoldatlan hibák számára, vagy egyszerűen a helyi testreszabások számára.

A szoftverjavításokat a /etc/portage/patches/ könyvtárba kell elhelyezni. A szoftverjavítások automatikusan alkalmazásra kerülnek a csomagneve telepítése során.

A szoftverjavítások az alábbi könyvtárak bármelyikébe elhelyezhetők:

  • /etc/portage/patches/${CATEGORY}/${P}/, például /etc/portage/patches/dev-lang/python-3.3.5-r1/
  • /etc/portage/patches/${CATEGORY}/${PN}/, például /etc/portage/patches/dev-lang/python-3.4.2/
  • /etc/portage/patches/${CATEGORY}/${P}-${PR}/, például /etc/portage/patches/dev-lang/python-3.3.5-r0/

Példa: Szoftverjavítás alkalmazása a Firefox esetében

A www-client/firefox szoftvercsomag egyike azon csomagoknak, amely már az ebuild-en belül (esetleg implicit módon) hívta meg az eapply_user parancsot, így nincs szükség semmi konkrét felülírására.

Ha valamilyen okból (például mert egy fejlesztő biztosított egy szoftverjavítást, és kérte annak ellenőrzését, hogy megoldja-e a jelentett hibát) szükséges a Firefox szoftverjavítása, akkor mindössze annyit kell tenni, hogy a szoftverjavítást el kell helyezni a /etc/portage/patches/www-client/firefox/ könyvtárban (érdemes lehet a teljes nevet és verziót használni, hogy a javítás ne zavarja a későbbi verziókat), majd újból létre kell hozni a futtatható Firefox szoftvercsomagot.