Gento - Para vagy nem para

Twitteren volt egy ilyen üzenetváltás:

@hron84: Kiprobaltam megint a #gentoo -t. Mar elfelejtettem, hogy mennyit kell varni egy firefoxra. […]

@team4world: @hron84 lehet én is kipróbálom. Mennyire parás egy frissítés?

@hron84: @team4world Ha mindenbol csak stabil verziot hasznalsz, akkor abszolut nem para. Ha elkezdesz a testing arch-csal ismerkedni, figyelni kell.

@hron84: @team4world Lehet este osszeszedek egy cikket az ajanlott konfigrol.

@team4world: @hron84 az nagyon jó lenne!

Itt tartunk tehát most. Nem aznap este lett ugyan összeszedve, de hát az “aznap” szó nem is szerepelt a twittben :-). Na jó, evezzünk komolyabb vizekre.

Előrebocsátom, hogy ez nem egy Gentoo tutorial lesz, nem fogok minden fogalmat elmagyarázni, csak a legszükségesebbeket. Ha nem értesz valamit, ott a Gentoo Handbook, ott a Gentoo Wiki, olvass utána. Ennek elsősorban terjedelmi okai vannak, a Gentoo-ról szóló irományokkal egy könyvtárat meg lehet tölteni (sőt, bizonyos értelemben ez már megtörtént), ez meg itt csak egy blog.

Para vagy nem para?

Nehéz kérdés, mert mindenkinek mást jelent a “parás”. Én, aki cirka 3-3.5 évet tuti lehúzott Gentoo desktop mellett, mást érzek parásnak, mint az, aki most adja ki élete első emerge parancsát. Szóval az első körös válaszom kicsit sántít, mert valójában nincs egzakt válasz a dologra.

Van, akinek para az, hogy egy Firefoxra - géptől függően - fél és két óra között kell várni. Nekem nem volt az, mert én ezzel már tisztában voltam, így a telepítés során előbb a Google Chrome-t tettem fel, és csak részben azért, mert az elmúlt két évben ez vált az elsődleges böngészőmmé, jobban belejátszott, hogy ez csak bináris formában van jelen (elérhető a Chromium is, forrásból fordul, de ezt még binárisan se szeretem, néha ugyanis bugosabb, mint a Chrome, nem tudom, miért).

Van, akinek para az, hogy több, ún. slot van, ami annyit takar, hogy egy adott nevű csomagból többféle verzió is lehet a gépünkön (gondoljunk a PHP-re, az 5.3 és az 5.4 az két különböző PHP-nak számít), és ha nem az alapértelmezett slot verziót szeretnénk, akkor célzottan kell telepíteni és maszkolni azt, amit nem szeretnénk (esetünkben én nem vagyok olyan nagy PHP 5.4 fan, akkor sem, ha a hardcore PHP-sok ezért megszólnak, szóval én hanyagolom azt a verziót).

Szóval hogy mi para és mi nem, az egyénfüggő. Nagyon fontos dolog, hogy a Gentoo egy teljesen más hozzáállást igényel, mint a legtöbb disztribúció. Ez elsősorban arra irányul, hogy pontosan tisztában kell lenned azzal, hogy mit és hogyan szeretnéd, valamint nagyon oda kell figyelned arra, hogy mit csinálsz. Ha valamit nem értesz, nem lehet elbliccelni, utána kell olvasni, át kell gondolni, sokszor. De cserébe egy végletekig testreszabható rendszert kapsz, és ez nagyon sokszor megéri.

Ajánlott hardverek

Töprengtem, hogy ne az legyen az alcím, hogy “Milyen hardvert ne vegyek”, de aztán arra gondoltam, hogy nem leszek ennyire destruktív.

Szóval, Gentoo esetében legyen egy jó procid, lehetőleg sok maggal, HyperThreading kiemelten jó, ha van és be is van kapcsolva. Minél több processzort listáz a /proc/cpuinfo, annál hamarább végzel a telepítéssel.

Legyen továbbá sok RAM-od. 2G RAM alatt eszünkbe se jusson Gentoo-t telepíteni! Tapasztalataim szerint 3-4G RAM az, amivel már tűrhető (pontosabban kivárható) idő alatt összeáll valami rendszernek már nevezhető tárgy.

A winyó kiemelten fontos. Nem csak a tárhely (a gyökérre lehet nyugodtan 30G-t szánni, meghálálja a rendszer, a home legyen külön partíció) fontos, de a merevlemez pörgési sebessége is. Ha 5400 RPM-es merevlemezünk van, ne egy bödön, hanem két bödön kávét készítsünk be. Ezt az infót szokás elrejteni a merevlemez címkéjén, vagy akár le is hagyni, így telepítés előtt mindenképp nézzünk el a Google felé, a merevlemez típusszámával, az első három találat a gyártó datasheetjére fog vinni, ha nem, tegyük hozzá, hogy ‘speed’. SSD felhasználók itt komoly előnnyel indulnak.

Mit rakjak fel?

Kezdőknél ez nagyon gyakori kérdés, és a kellemetlen élmények nagy része az ezen kérdésre adott rossz válaszokból adódik. Tisztában kell lennünk azzal, hogy a Gentoo egy forrásalapú rendszer, vagyis a bináris rendszerekkel ellentétben itt a legtöbb csomag a gépünkön, forrásból fordul, legyen szó a GCC-ről vagy a Gitről. Van néhány olyan csomag, ami elérhető binárisban is, vagy épp kizárólag abban mert a gyártó nem tette elérhetővé a szoftver forrását. Ez utóbbira példa az Adobe Flash playere, az előbbire pedig a LibreOffice, mert erről köztudott, hogy még erős gépen is fél nap egy fordítás.

Én az alábbi metodikát követem:

  • Először összerakok egy alaprendszert. Legyen konzolom, legyen egy friss és jól mőködő kernelem, Grub (1-es mert én azt szeretem), hálózatom, meg más effélék, egyszóval álljon meg a saját lábán a rendszer, ne kelljen hozzá LiveCD. Szerencsés esetben ez olyan 2 óra alatt abszolválható feladat, kezdőknek se sokkal több.
  • Következő lépés: Legyen egy alap grafikus felületem. Itt általában már felteszem a kérdést: most rögtön akarok a rendszerrel dolgozni, vagy van időm hogy mindent klappoljon? Ha az első a válasz, akkor mindenféle preferenciát figyelmen kívül hagyva, komolyabb USE flag állítgatások nélkül felszórok egy IceWM-et, egy Google Chrome-t, meg valami terminált, mondjuk XTerm-et. Ez nem eredményez összkomfortos rendszert, ennek csak az a célja, hogy miközben a ház épül-szépül, legyen hol dolgozni meg aludni. Amennyiben ráérek, átugrom ezt a pontot.
  • Ezután rá lehet térni a preferenciáknak megfelelő rendszer telepítésére. Először mindig az USE flag állítgatásokat kezdem el. Mivel én GNOME-fan vagyok, így a make.conf -ba mindenképpen bekerülnek a gnome, gtk, avahi flagek, ezen felül PulseAudio-ellenes vagyok, így a alsa és -pulseaudio is. Elég jó alapbeállításokat lehet szerezni az eseletc profile list kimenete alapján kiadott eselect profile set <szám> paranccsal is, ahol a <szám> a lista elemei mellett látható számot jelenti, kockás zárójelek nélkül. Sorrendileg először mindig a konzolos cuccokat szoktam felszórni, nem csak azért, mert ezek hamar fordulnak, hanem mert ezeket utána már tudom használni, amíg a grafikus cuccok születnek. A teljesség igénye nélkül egy kis lista:

    • flaggie: hasznos cucc a csomagonkénti USE flag es keyword állításra. Ezen felül tud licenceket is elfogadni, de én általában minden licencre rábólintok, mert így könnyebb az életem. A /usr/portage/licenses alatt lehet kultúrálódni egyébként.
    • portage-utils: újabban része a stage3 alaprendszernek. Hasznos kis utilityk győjteménye, a q --help parancs nagyon szolgálatkészen mutatja be őket egyenként.
    • eix: A Google helyi megfelelője :-). Alapvetően csomagkeresgélésre használható, részletes információkkal szolgál arról, hogy milyen csomagok érhetőek el a rendszerben. A kézikönyvekben ajánlott emerge --sync parancs helyett (ha már fenn van az eix) lehetőleg mindig az eix-sync parancsot használjuk, mert ez frissíti az eix adatbázisát is a sync végén, plusz ad egy kedves listát az új/frissült/törölt csomagokról. Ez utóbbitt gondosan tanulmányozzuk.
    • gentoolkit: Szintén hasznos csomagkezelő gyűjtemény. Én egy parancsot használok belőle permanensen, a többit csak szükség esetén, ez pedig a glsa-check. Mind desktopon, mind pedig szerveren kiemelten fontosnak tartom ugyanis, hogy ne legyen fenn olyan csomag, melyben ismert sebezhetőség van. Egy idő után hajlamos az ember rászokni arra, hogy ha egy frissebb verzió bugos lenne egy adott csomagból, akkor a bugos verziót és afelettieket kimaszkolja, majd az egészet elfelejtse. Ilyenkor jó a glsa-check, ami figyelmeztet, hogy bizony-bizony abba a verzióba már találtak egy komoly bugot, és tán érdemes lehet megfontolni a frissítést.
    • eselect és pluginjei: maga az eselect szintén az alaprendszer része, a pluginjei pedig a legtöbb esetben a hozzátartozó csomaggal kerülnek fel. Az update-alternatives-nek felel meg, csak kissé okosabb és színesebb. Érdemes ismerkedni vele.
    • bash-completion: akinél a Tab billentyűről már lekopott a festék (mint nálam :-) ), annak kötelező elem. Konfigurőlni eselect-tel lehet, hogy mely kiegészítések legyenek engedélyezve. Figyeljünk, hogy alapértelmezés szerint per-user állítgatjuk ezeket, globális engedélyezéshez használjuk a --global kapcsolót.
    • mc: kell-e bemutatni a Midnight Commandert? Szerintem nem. Figyeljünk, hogy kapjon samba és sftp flageket valahonnan, különben félkarú óriás. A slang flag pedig a szép magyar felülethez segít hozzá minket.
    • nano: Ha mcedit pártiak vagyunk, akkor nem érdekes, ha vim/emacs pártiak, nézzünk rá erre a kis editorra, amíg kedvencünk fordul. Syntax coloring, keresés, vágólap… és egyszerű használat. Része az alaprenszernek.
    • sudo: sajnos nem része az alaprendszernek ez a kötelező kis program. Tegyük fel, alig van függősége.
    • layman: a külső csomagtárólók kezelője. Okosan paraméterezve rögtön feldobja a 3 legnépszerűbb verziókezelőt is, függőségként.

    Ezután jön a grafikus rendszer. GNOME pártiként én a gnome-light csomaggal indítok, ez egy metacsomag, semmit nem telepít, csak függőségei vannak, mint egy rossz drogosnak. Viszont mindent felrak, ami egy alap GNOME desktophoz kell. Emellé érdemes beütemezni a xorg-x11 csomagot is, ami a grafikus felület megjelenítését szolgáló X11 szervert rakja fel. Figyeljünk arra, hogy ha sehol másutt nem is, de itt mindenképpen használjuk az emerge --ask vagy --pretend kapcsolóinak egyikét, hogy kiírja, mit telepítene. Azért fontos, mert első körben be kell lőni a videókártya és a beviteli eszközök típusát a make.conf -ban, és itt egész jó tippeket kapunk a lehetséges értékekről a xorg-drivers sorában. Ne feledjük, hogy a mínusz jel mindig kivonást jelöl, vagyis az nincs kiválasztva. Beviteli eszköznek általában a keyboard-ot, a mouse-t és az evdev-et szoktam választani (ez utóbbi mindenképp kell), tapipad mániákusok ne feledjék a synaptics-ot is kérni az eladótól a meglepetések elkerülése okán. Kell egy jó login manager is, GNOME esetében ez a GDM, bár én most LightDM-et raktam fel, csak úgy próbából. Nem rossz, de a GDM jobb.

    Most jövök rá, hogy KDE fanok is vannak itt. Nekik rossz hírem van: nem nagyon tudok mit ajánlani, mert ritkán vetemedek KDE használatra, mostanság ez a gyakoriság a sohához tendál. Asszem a kdebase-startkde csomag visz el az alaprendszerig, kdm csomag van, és a kde-l10n csomagtól lehet várni lokalizációt. A xorg-x11 pedig itt is kötelező elem.

    Figyeljünk arra, hogy amennyiben nem KDE desktop a cél, első két körben tiltsuk a qt4 USE flaget, mert ez magával hozná a Qt grafikus könyvtár telepítését, ami elég hosszadalmas móka. KDE-s álmok esetében viszont épp ellenkezőleg: engedélyezzük, méghozzá minél koraibb szakaszban, a KDE-s cuccok nagy része le fogja fikázni a rendszerünket, ha nincs mindenütt Qt támogatás. Ha már feltelepült a szívünknek tetsző rendszer, ki lehet venni a Qt4-re vonatkozó tiltást, ugyanis van néhány program, aminek a Qt-s felülete egyszerűen csak szebb, mint a Gtk-s.

    Grafikus cuccokra ajánlatok:

    • Porthole: Gtk alapú csomagkezelő, Debianon Synaptic-nak hívnak egy ehhez nagyon hasonló cuccot. Az USE flag kezelőjének használatát lehetőleg mellőzzük, a Ctrl+R megnyomására feljövő parancssorból használjuk a flaggie-t. Igy nem érnek meglepetések egy frissítésnél. KDE rendszerhez a Kuroo jobb, de a Kuroo4 fejlesztése még igen aktívan tart, nem tudom, mennyire stabil a cucc. USE flageket itt is inkább flaggie-vel, bár a régi Kuroo (a KDE 3-as) rendesen kezelte a package.use fájlt.
    • Gitg: Roppant hasznos cucc, ha Git-tel dolgozunk. Soronként stage-elhető commit és history tallózó segíti a munkát.
    • NetworkManager: furcsa, de nem alapértelmezett a telepítése. Desktopon, wifi-mentes környezetben nincs is rá szükség, laptopon viszont kötelező elem, a hálózati konfigokat másképp nem fogjuk tudni kényelmesen managelni. A hasonló nevű (csak végig kisbetűs) USE flag beállítása szintén fontos. Régebben volt valami PolicyKites para, de úgy tudom, az már megoldódott, mert más disztróban is volt, és azokban már meg van oldva.

Frissítés

Ide jön az, amit első körben válaszoltam a kérdezőnek: ha mindig csak stabil cuccokkal dolgozol, akkor nincs para, a Gentoo fejlesztőknél elég szigorú a QA, ha nincs elég community visszajelzés a csomagről, akkor nem is lesz stabil. Viszont amíg van komoly hiba vele, szintén nem lesz az. Vagyis stabil csomag általában csak stabil dologból lesz. Néha előfordulnak csomagolói melléfogások, véletlen stabilnak jelölések, de ez szimpla emberi mulasztás, és nagyon-nagyon ritka, mindenesetre érdemes hetente ellátogatni a Gentoo főoldalára, és csekkolni a híreket.

Azért arra mindenképp figyeljünk, hogy legalább hetente egyszer futtassuk meg a frissítő parancsot (ez az emerge -DuNa world), célszerően hétvégén, vagy lefekvés előtt. Reggelre tuti végez. Ha nagyon nincs időnk, havinál ritkább frissítést akkor se ütemezzünk, különben nagyon sokat kell várnunk.

Para akkor szokott lenni, ha külső csomagtárolókból (layman) teszel fel testinges (~ arch-os, ez egy tilde jellel prefixelt architektúra nevet, pl. ~amd64 jelent) csomagokat. Nagy para meg akkor, ha nagyon bevállalós vagy, és kipróbálsz pl. live ebuildeket (közvetlenül verziókezelőből forduló csomagokat), vagy két csillaggal megjelölt unstable cuccokat (a live ebuildek egyébként ez utóbbiak részhalmazát képezik). Kezdőknek és középhaladóknak nagy ívben kerülendő terület ez.

A fenti parancsot használva néha megjelennek sárga USE flagek is a csomagok mellett. Ez azért van, mert a -N kapcsoló a USE flag frissülésekre is rámegy, ez ugyanis sokszor valamilyen plusz támogatást is jelent, verzióváltás nélkül. Bekapcsolt ccache mellett, ha csak kikapcsolt flag került be, a csomagok secc-pecc lefordulnak, ha van bekapcsolt is, akkor pedig gazdagabbak leszünk egy, az igényeinknek jobban megfelelő csomagnak (amennyiben az USE flageket a saját, és nem a szomszéd ízlése alapján állítottuk be).

A frissítéseknél lehet azért trükközni. A -DuNa mindent felsorol, ami épp frissülni akar, de ha mondjuk nem akarunk egy Firefox forgatásba belekezdeni, akkor csinálhatjuk úgy is, hogy kézzel felsoroljuk a frissítendő csomagokat egy emerge -u1 parancs argumentumaiként, verziószám nélkül, kihagyva a Firefox-ot, egy későbbi időpontban frissítve azt.

Nagyjából ennyi lenne. Elég hosszúra nyúlt ez az írás is, nem véletlenül mondtam az elején, hogy könyvtárakat lehet megtölteni a Gentoo-ról szóló ismeret anyagokkal.

Comments