tutorial: construirea unui mediu minimal bazat pe gnu/linux

sâmbătă, 18 aug. 2012, 00:47

Acest text pe care eu l-am numit „tutorial”, nu este – v-am mințit – de fapt un tutorial propriu-zis, ci mult mai puțin de atât. Problema cu tutorialul stă în faptul că nu m-am trezit eu atât de muncitor încât să stau să explic omului pas cu pas, amănunțit, cum să își construiască un mediu de programe, Interneții oricum dând pe dinafară de așa ceva. Și nu numai asta, dar trăiesc cu nădejdea că nu s-au trezit cititorii mei atât de proști încât să nu poată improviza cu Google în față, primind de la subsemnatul doar un set de idei generale care să îi ghideze spre soluție.

Să descriem întâi pe scurt lumea desktop-ului Linux așa cum se prezintă dânsa la ora actuală: un haos de nedescris. Anticipam într-un articol trecut că probabil nici 2011 nu va fi anul desktop-ului și pot spune cu aceeași tărie că lucrul e valabil și în cazul lui 2012 și poate și în ceea ce privește 2013 și 2014. În același paragraf susțineam sus și tare că dacă lucrurile se împut îmi bag picioarele în toate distribuțiile lor fancy și revin la ceva mai „basic” și sănătos și m-am ținut de cuvânt, ocazie pe care o voi folosi pentru a vă povesti cum am făcut asta și în ce stadiu am ajuns.

O primă oprire a fost Arch Linux, o distribuție faină care are în spate o comunitate foarte activă de oameni entuziaști, oameni care merg pe ideea de „rolling release” și de configurabilitate până-n măduva oaselor [i]. Distribuția este deci un imens nu pentru utilizatorii neexperimentați, dat fiind faptul că la un update mai delicat vă puteți face praf sistemul în doi timpi și trei mișcări dacă nu sunteți atenți – chiar și cu țșpe ani de experiență în spate.

A doua oprire a fost bineînțeles Debian, vechiul meu prieten pe care îl folosesc și pe servere de mai bine de cinci ani de zile. Ciclul de release din cadrul Debian e destul de interesant: dezvoltatorii scot la rampă o versiune „stable”, care e garantată a fi „rock solid” (în principiu din punctul de vedere al securității) și care e recomandată pentru medii de producție cum ar fi serverele. Versiunea imediat următoare e un fel de „rolling release”, numindu-se „testing” și conținând programe care nu au fost încă testate până în măduva oaselor. Aceasta nu conține însă cele mai noi versiuni de programe, care versiuni se găsesc în Debian-ul „unstable”, destinat de obicei dezvoltatorilor și masochiștilor. Restul sunt detalii, cum ar fi acela că la o anumită perioadă de timp „testing” devine „stable”, „unstable” devine „testing” iar „stable” trece în „old stable” sau ceva de genul.

Instalarea propriu-zisă de Debian e banală. Pentru a obține un mediu minimal am deselectat toate chestiile posibile la instalare, pachetele „extra” rămânând în sarcina lui apt-get la prima bootare [ii]. Demersul m-a lăsat bineînțeles fără o interfață grafică și fără un manager de sesiuni, ceea ce mi-am și dorit, pentru că manager-ul de sesiuni n-are ce căuta într-un mediu minimal: el doar ocupă memorie, fiind adresat în general hipsterilor și incompetenților în materie de calculatoare.

Apoi m-am apucat și am instalat alte utilitare: vim, tmux, ssh, mutt, git și multe alte chestii care îmi sunt imediat utile au aterizat pe sistemul meu în doar câteva zeci de minute, urmând abia apoi să îmi pun serverul X, care apropo, trebuie să aibă configurat în acest caz un script de inițializare, .xinitrc, care în cazul de față nu face decât să apeleze un alt script prin ceva aplicație de securizare și alte bălării:

exec ck-launch-session bash ~/.init

Vom reveni un pic mai încolo la script-ul .init, pentru că după instalarea Xorg – care nu prea necesită configurări, doar pachete legate de video, input și așa mai departe – avem nevoie de un manager de ferestre. Cu toate că am decis să îmi dau la o parte tot soiul de programe, nu caut să mă întorc în epoca de piatră, manager-ul de ferestre fiind o unealtă indispensabilă pe calculatoarele secolului nostru. Am ales xmonad, care da, are de-a face cu monadele și cu Haskell, fapt care la urma urmei e prea puțin important în acest caz. Dumneavoastră puteți alege la fel de bine openbox sau awesome sau Mate [iii], de unde am furat și eu câteva utilitare.

xmonad e o chestie care poate părea ușor ciudată pentru utilizatorul obișnuit cu Windows. Paradigma „tiling” se face însă că are foarte mult sens în contextul în care dorim în primul rând să putem configura aspecte precum ordinea în care se afișează ferestrele pe ecran și mărimea acestora, și în al doilea rând să obținem un spor de eficiență folosindu-ne de tastatură în loc de mouse. Configurarea wm-ului poate părea și mai ciudată – dat fiind faptul că se face cu ajutorul unui script Haskell -, însă dezvoltatorii au pus la dispoziție o arhivă de fișiere de configurare, la care adaug și eu fișierul propriu, în caz că vă interesează.

A se observa că m-am bazat pe diverse alte utilitare cum ar fi xmobar sau dmenu, la care am adăugat câteva programe din Mate, pe care le pornesc în .init după voia proprie, împreună cu xscreensaver și însuși xmonad.

Toate acestea duc către un mediu care la o primă vedere poate părea eterogen, însă care după o privire mai atentă se poate observa că trimite la o filosofie anume de utilizare a calculatorului, una în care accentul se pune nu atât pe împopoțonare și funcționalitate cât pe eficiență. Întâmplător configurația de mai sus e făcută în așa fel încât gestiunea ferestrelor să se pupe cu aplicațiile Gnome și de exemplu să permită rularea unui film full-screen.

Deasupra acestui nucleu am adăugat orice alte aplicații am găsit de cuviință: Pidgin, un browser web, Wesnoth, gimp, Audacity, VLC, toate astea funcționează fără probleme, cu avantajul că nu mai am de-a face cu toată căruța de aplicații inutile pe care mi le bagă pe gât Gnome sau Unity. Ca de obicei, eu nu vă bag pe gât stilul ăsta de lucru, însă vă invit să îl încercați timp de măcar două săptămâni. După care bineînțeles, putem dezbate avantajele și dezavantajele paradigmei de utilizare raportat la cea sau cele cu care suntem obișnuiți în mod normal.

  1. Cam la fel ca Gentoo, minus timpii de compilare. []
  2. Într-un mod interesant, sistemul de bază are fix utilitarele necesare și nimic mai mult. De exemplu sudo nu e un utilitar necesar, ci doar unul care e bine să existe în sistem. []
  3. Mate nu-i nimic altceva decât vechiul Gnome 2 rebranduit, pentru că vechea echipă Gnome a abandonat proiectul, în prostia și neputința ei. Țineți cont însă că Mate, la fel ca orice alt „desktop environment”, oferă un întreg mediu de programe, nu doar gestiunea ferestrelor. []

Comments

  • Sincer, voi testa și eu un setup de ăsta, mă tot gândesc de ceva vreme la asta.

    Pe de altă parte, de la Gnome3 îmi plăceau multe lucruri, probabil va trebui să le emulez cumva 🙂

  • spyked spune:

    Și eu am avut câteva lucruri la care a trebuit să renunț când am terminat cu Gnome3.

    Name a few, poate reușesc să-mi dau seama cu ce ai putea înlocui `for $f in $features`.

  • Păi am bucata de notificări, vreau să fie cât mai vizibile undeva și când mai puțin intrusive. G3 reușise o combinație perfectă între cele 2 scopuri antagonice.

    Și vreau workspace-uri create în mod dinamic. Practic, puțin management suplimentar al ferestrelor 🙂

  • spyked spune:

    Eu folosesc drept notificări baloanele clasice din Gnome 2 (adică mate-libnotify sau ceva de genul). Cu toate astea am simțit din ce în ce mai puțin nevoia de ele, mai ales că înafară de Pidgin și IRC nu folosesc nimic care m-ar putea bâzâi.

    S-ar putea să meargă configurat un soi de sistem de workspace-uri dinamice în xmonad. Unul din config-uri are ceva de genul, dar nu m-am uitat exact să văd cum e realizată chestia.

  • Awesome :D:D Mersi 🙂

  • Comentariile sunt dezactivate.