Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HU] HOGYAN: A /etc/portage és használata
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Other Languages
View previous topic :: View next topic  
Author Message
SysOP XXL
Tux's lil' helper
Tux's lil' helper


Joined: 27 Jan 2004
Posts: 139
Location: Kecskemét, Hungary

PostPosted: Fri May 06, 2005 7:56 pm    Post subject: [HU] HOGYAN: A /etc/portage és használata Reply with quote

Danuvius javaslatára megpróbálom összefoglalni, miként lehet a portage-et finoman, kényelmesen és elegánsan szabályozni a /etc/portage könyvtár segítségével.

Elöljáróban, mivel még kelleni fog:

  • A portage szabályait DEPEND egységekbõl (angolul "atom"okbó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:
      Code:
      <kategória>/<csomagnév>


      Példa:
      Code:
      sys-kernel/gentoo-sources


    • Verziószámmal pedig:
      Code:
      <relációsjel><kategória>/<csomagnév>-<verzió>


      Példa:
      Code:
      >media-libs/alsa-lib-1.0.8
      =media-sound/beep-media-player-0.9.7-r5
      >=app-editors/gedit-2.9.7


  • 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.


  • 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.

    De azért egy élõ példa, mely minden csomagra engedélyezi a legfrissebb instabil verzió telepítését:
    /etc/make.conf wrote:
    Code:
    ACCEPT_KEYWORDS="~x86"



És akkor következzenek a fájlok, melyek befolyásolják a portage-et:

  1. /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:

    /etc/portage/package.mask/ wrote:

    Code:
    >media-libs/alsa-lib-1.0.8
    >media-libs/alsa-oss-1.0.8
    >media-sound/alsa-headers-1.0.8


  2. /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:

    /etc/portage/package.unmask wrote:
    Code:
    dev-java/sun-jre-bin


  3. /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:

    /etc/portage/package.keywords wrote:
    Code:
    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:

    /etc/portage/package.keywords wrote:
    Code:
    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:

    /etc/portage/package.keywords wrote:
    Code:
    x11-libs/cairo -*


  4. /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.
    FONTOS: A DEPEND elem csak verziószámos lehet, és nem kell elé egyenlõségjel!

    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:

    /etc/portage/package.use wrote:
    Code:
    =x11-libs/gtk+-2* doc


  5. /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:

    /etc/portage/profile/package.provided wrote:
    Code:
    sys-kernel/gentoo-sources


Remélem ez a kis szösszenet (készült másfél órán át) hasznosnak bizonyul. Bármiféle megjegyzést ide kérek.
_________________
Magyarok jelentkezzetek!
A /etc/portage és használata


Last edited by SysOP XXL on Sat May 21, 2005 8:10 pm; edited 2 times in total
Back to top
View user's profile Send private message
Danuvius
Guru
Guru


Joined: 18 Sep 2004
Posts: 375
Location: Toronto

PostPosted: Fri May 06, 2005 8:15 pm    Post subject: Reply with quote

Hát ez pompás! Nagyon köszönöm.

Ennek a felét én nem is tudtam. ;)
Back to top
View user's profile Send private message
mindegy
n00b
n00b


Joined: 05 May 2005
Posts: 25
Location: Hungary

PostPosted: Sun May 08, 2005 12:24 pm    Post subject: ALSA gájd Reply with quote

Ez nagyon jól sikerült, köszönjük.
Egy apró megjegyzésem van, ami nem konkrétan a témát érinti, hanem az ALSA-t. (Lehet, hogy külön szálat kellett volna indítani neki...)

SysOP XXL wrote:

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:

/etc/portage/package.mask:
Code:
>media-libs/alsa-lib-1.0.8
>media-libs/alsa-oss-1.0.8
>media-sound/alsa-headers-1.0.8


A kernelben lévõ ALSA verziója mindig régebbi, mint ami elérhetõ a portage-ben stabilként alsa-driver néven. Ezért érdemesebb a kernelben csak a hangot engedélyezni:
Code:
CONFIG_SOUND=m


majd az /etc/make.conf-ban megadni a hangkártyád típusát:
Code:
ALSA_CARDS="maestro3"
ALSA_TOOLS="maestro3"

és minden kernelfordítás után emergelni az alsa-driver-t.
Így nem lesz gondod a verzióbeli különbségekkel.

Így írja a Gentoo Linux ALSA Guide is:
http://www.gentoo.org/doc/en/alsa-guide.xml

Egy eset van, amikor a kernelben lévõ drájvert kell használnod: ha bele akarod fordítani és nem modulokat akarsz.


Last edited by mindegy on Thu Jun 09, 2005 11:27 am; edited 1 time in total
Back to top
View user's profile Send private message
Bodri
n00b
n00b


Joined: 04 May 2005
Posts: 26

PostPosted: Fri May 13, 2005 10:17 pm    Post subject: Reply with quote

Köszi. Ez jó.

Erről jut eszembe, honnan tudom, hogy melyik alsa verzió van a kernelben és milyen driver verzió ?
Back to top
View user's profile Send private message
Bodri
n00b
n00b


Joined: 04 May 2005
Posts: 26

PostPosted: Fri May 20, 2005 4:46 pm    Post subject: Reply with quote

Találtam egy hibát, legalábbis nekem úgy tűnik, hogy a package.use file-ban a sor elejére nem kell =, mert ugy nem működik.
Jó lenne kiegésziteni egy kicsit a leírást, hogy világos legyen mindenkinek, hogy ez a USE flag dolog hogy működik. Gondolok itt arra pl., hogy az "emerge -pv"-vel kideríthetjük, hogy mik lesznek beállítva és mik nem. Érdemes tisztázni, hogy USE flag által megadott funkciók értelemszerűleg nem csak a funkcionalitást befolyásoljak, hanem hogy milyen dependency-kre lesz szükség. Ezzel csökkenthetjük, vagy növeljuk a felrakandó portok számat. Itt érdemes kitérni a USE flag-ek prioritására is. Ezeket én is most tanulom, ezért amig friss az élmény gondoltam lírom, hogy minek kelett ezzel kapcsolatba még utánanéznem. Gyakorlatilag a http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2 fordítását kéne beleszőni.
Back to top
View user's profile Send private message
SysOP XXL
Tux's lil' helper
Tux's lil' helper


Joined: 27 Jan 2004
Posts: 139
Location: Kecskemét, Hungary

PostPosted: Fri May 20, 2005 6:46 pm    Post subject: Reply with quote

Bodri wrote:
Találtam egy hibát, legalábbis nekem úgy tűnik, hogy a package.use file-ban a sor elejére nem kell =, mert ugy nem működik.
Jó lenne kiegésziteni egy kicsit a leírást, hogy világos legyen mindenkinek, hogy ez a USE flag dolog hogy működik. Gondolok itt arra pl., hogy az "emerge -pv"-vel kideríthetjük, hogy mik lesznek beállítva és mik nem. Érdemes tisztázni, hogy USE flag által megadott funkciók értelemszerűleg nem csak a funkcionalitást befolyásoljak, hanem hogy milyen dependency-kre lesz szükség. Ezzel csökkenthetjük, vagy növeljuk a felrakandó portok számat. Itt érdemes kitérni a USE flag-ek prioritására is. Ezeket én is most tanulom, ezért amig friss az élmény gondoltam lírom, hogy minek kelett ezzel kapcsolatba még utánanéznem. Gyakorlatilag a http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2 fordítását kéne beleszőni.


Kösz az észrevételt. Most azonnal nem tudok nekimenni, de amint befejeztem a LANom, legkésőbb holnap megcsinálom.
_________________
Magyarok jelentkezzetek!
A /etc/portage és használata
Back to top
View user's profile Send private message
krapansky
n00b
n00b


Joined: 15 Mar 2005
Posts: 31
Location: Budapest, Hungary

PostPosted: Sat May 21, 2005 2:16 pm    Post subject: Reply with quote

Bodri wrote:
Köszi. Ez jó.

Errõl jut eszembe, honnan tudom, hogy melyik alsa verzió van a kernelben és milyen driver verzió ?


A kernelben: linux/include/sound/version.h itt talalod a verziot.

amugy erdemes ugy csinalni, hogy a make.conf-ban megadod a kartyadhoz szukseges alsa module nevet, a kernel configban pedig kilovod az alsat, majd sajat magad leszeded az alsa-drivert, igy mindig az aktualis legujabb alsahoz jutsz.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Other Languages All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum