View previous topic :: View next topic |
Author |
Message |
SysOP XXL Tux's lil' helper
Joined: 27 Jan 2004 Posts: 139 Location: Kecskemét, Hungary
|
Posted: Fri May 06, 2005 7:56 pm Post subject: [HU] HOGYAN: A /etc/portage és használata |
|
|
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:
- /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 |
|
/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 |
|
/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: | |
/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 |
|
/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 |
|
|
Danuvius Guru
Joined: 18 Sep 2004 Posts: 375 Location: Toronto
|
Posted: Fri May 06, 2005 8:15 pm Post subject: |
|
|
Hát ez pompás! Nagyon köszönöm.
Ennek a felét én nem is tudtam. |
|
Back to top |
|
|
mindegy n00b
Joined: 05 May 2005 Posts: 25 Location: Hungary
|
Posted: Sun May 08, 2005 12:24 pm Post subject: ALSA gájd |
|
|
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:
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 |
|
|
Bodri n00b
Joined: 04 May 2005 Posts: 26
|
Posted: Fri May 13, 2005 10:17 pm Post subject: |
|
|
Köszi. Ez jó.
Erről jut eszembe, honnan tudom, hogy melyik alsa verzió van a kernelben és milyen driver verzió ? |
|
Back to top |
|
|
Bodri n00b
Joined: 04 May 2005 Posts: 26
|
Posted: Fri May 20, 2005 4:46 pm Post subject: |
|
|
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 |
|
|
SysOP XXL Tux's lil' helper
Joined: 27 Jan 2004 Posts: 139 Location: Kecskemét, Hungary
|
Posted: Fri May 20, 2005 6:46 pm Post subject: |
|
|
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 |
|
|
krapansky n00b
Joined: 15 Mar 2005 Posts: 31 Location: Budapest, Hungary
|
Posted: Sat May 21, 2005 2:16 pm Post subject: |
|
|
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 |
|
|
|
|
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
|
|