27 July, 2009

Cu sau fără diacritice - terminale

În urma unei „flame” pe lista RLUG am primit o sugestie de la Petru Rațiu, și anume să documentez cum trebuie configurat un sistem Linux pentru a avea suport corect pentru limba română. În consecință am instalat din nou toate terminalele din Debian și le-am testat pe rând cu mutt (1.5.20) și mc (4.6.2). Am folosit mc nu atât pentru suportul de diacritice ci pentru că am observat fenomene „ciudate” când variabila LANG este setată pe ceva UTF-8. Testele au fost făcute cu configurația implicită, cu excepția lui pterm care la primul test a fost foarte aproape de suportul fără probleme. Știu că versiunile programelor sunt relativ noi (doar folosesc Debian unstable), dar nu mă aștept la surprize mari nici cu variante mai vechi. În general avem două categorii mari:
  1. Fără probleme:
    • evilvte (0.4.4.1)
    • gnome-terminal (2.22.3)
    • konsole (4.2.4)
    • lxterminal (0.1.6)
    • mlterm (2.9.4)
    • roxterm (1.15.2)
    • urxvt/rxvt-unicode (9.06)
    • xfce4-terminal (0.4.0)
    • xterm (243)
  2. Fără suport (în mc și mutt apăreau caractere ciudate în locul caracterelor cu diacritice dar și în locul caracterelor de linii):
    • aterm (1.0.1)
    • eterm (0.9.5)
    • mrxvt (0.5.4)
    • multi-aterm (0.2.1)
    • rxvt (2.6.4)
    • wterm (6.2.9)
    • xvt (6.2.9)
Excepții: kterm (6.2.0): - mc: nu are linii și pe alocuri afișează caractere asiatice - mutt: unele caractere nu apar de loc, altele (exemplu „î”) sunt înlocuite cu caractere asiatice powershell (0.9): la prima vedere pară să „înghită” anumite diacritice (nu le afișează de loc, în special „ș”) și afișează niște linii orizontale ciudate. Prima impresie e că suportul UTF-8 e cam prost (inexistent?). Probabil că nu e de mirare ținând cont că folosește gtk 1.2 ... pterm (0.60): - mc: ok - mutt: ok, dar diacriticele erau înlocuite cu un punct până când l-am pornit cu „-fn Terminus-20” Concluzie: din păcate aproape toată gama de terminale „ușoare” au probleme dacă locala este UTF-8. Deocamdată nu am găsit decât patru emulatoare de terminal clasice care să suporte UTF-8: xterm, urxvt/rxvt-unicode, mlterm și pterm. pterm e posibil să aibă un mic defect (bug) deoarece n-a detectat că fontul implicit suportă UTF-8 (și automat n-a comutat modul UTF-8). După cum era de așteptat toate terminalele pe bază de GTK/GNOME și QT/KDE au suport corect. Singurul cu probleme, powershell, ar trebui evitat oricum deoarece încă mai folosește vechea bibliotecă gtk 1.2 Dacă mai știți și alte emulatoare de terminal (cu sau fără suport UTF-8) vă rog să scrieți un comentariu.

27 June, 2009

Unde dai și unde crapă

Pornind de la o simplă discuție pe mesageria instant despre instalat pachete am început să descriu sistemul de gestionare a pachetelor din Debian. Cum interlocutorul meu nu avea răbdare și/sau chef să mă asculte am început să compun un e-mail, care a devenit destul de lung, după care m-am gândit să-l trimit la mai multe persoane interesate de subiect și până la urmă am ajuns să-l postez pe blog. Deci, pentru cine e interesat, o scurtă introducere în sistemul de gestionare a pachetelor din Debian.

Despre managementul de pachete din Debian

În general totul e construit pe filozofia UNIX "fă un singur lucru, dar fă-l bine". Adică mai multe programe specializate pe domeniul lor, care comunică între ele, în locul unui mega-program care să facă tot. dpkg program pentru manipularea pachetelor .deb este programul care se ocupă de instalarea efectivă a pachetelor (fișierele .deb) și este folosit de toate celelalte programe care „instalează/șterg” pachete[1]. Poate fi folosit pentru a instala fișiere .deb și pentru a afla informații despre pachetele instalate (respectiv fișierele lor). Necesită root pentru instalări/ștergeri dar poate fi folosit de orice utilizator pentru a obține informații. Nu este recomandat pentru instalare/ștergere decât în cazuri speciale. Exemple[2]:
# dpkg -i un_fișier.deb
instalează fișierul .deb. Va eșua dacă nu sunt îndeplinite toate dependențele
# dpkg -i pachet.deb dep1.deb dep2.deb
instalează pachetele. dep1 și dep2 sunt dependențe pentru pachet (ordinea nu contează dacă sunt specificate toate odată, sau se instalează pe rând: mai întâi dependențele după care pachetul respectiv)
$ dpkg -l
afișează TOATE pachetele instalate sau care au fost vreodată instalate. Util pentru a vedea starea unui pachet: ii - totul ok.
$ dpkg -l nume_pachet $ dpkg -l nume_parțial* $ dpkg -l *nume_parțial $ dpkg -l *nume_parțial*
afișează starea pachetelor instalat/șters/necunoscut/...
$ dpkg -S nume_fișier
afișează pachetul instalat care conține fișierul.
$ man dpkg
manualul de utilizare apt (scris și APT) - Advanced Package Tool Este sistemul de gestionare a pachetelor. Pachetele pot proveni din diverse surse (CD, DVD, ftp, ...) enumerate în /etc/apt/sources.list sau în fișierele din /etc/apt/sources.list.d/ Pachetele sunt instalate conform următoarelor priorități:
  • prioritatea sursei
  • versiunea cea mai nouă a pachetului
  • ordinea listării sursei în sources.list
Prioritățile pot fi ajustate în /etc/apt/preferences (nu există implicit) sau prin opțiunea Default-Release din /etc/apt/apt.conf (nu există implicit). Poate fi folosit prin intermediul programelor apt-get și apt-cache sau apelat ca „bibliotecă” de către alte programe.
$ man apt $ man apt.conf $ man sources.list $ man apt_preferences
manualul pentru apt și fișierele de configurare apt-get program din pachetul apt (interfață pentru apt) Poate fi folosit pentru instalare/ștergere de pachete. Considerat de nivel destul de jos, dar poate fi folosit pentru managementul sistemului. Necesită root pentru instalări/ștergeri, dar poate fi folosit de orice utilizator pentru descărcări de pachete, pachete-sursă. Exemple:
# apt-get update
actualizeaza listele cu pachete (această comandă ar trebui să fie rulată întotdeauna înainte de a instala sau actualiza pachete)
# apt-get upgrade
actualizeaza toate pachetele care pot fi actualizate
# apt-get install pidgin
descarcă (dacă este necesar) pachetul pidgin, împreună cu toate dependențele și folosește dpkg pentru a le instala
# apt-get purge pidgin
șterge pachetul pidgin (inclusiv toate fișierele de configurare la nivel de sistem)
# apt-get autoremove
șterge toate pachetele care au fost instalate doar ca dependențe pentru alte pachete
$ man apt-get
manualul de utilizare apt-cache program din pachetul apt (interfață pentru apt) Poate fi folosit pentru a obține informații despre pachete (instalate sau nu). Este mai rapid la căutări decât aptitude dar nu știe să caute decât în numele pachetelor sau descrieri. Exemple:
$ apt-cache search total commander
toate pachetele care conțin total și commander în nume sau în descriere
$ apt-cache search -n pidgin
toate pachetele care conțin pidgin în denumire
$ apt-cache policy
afișează prioritățile surselor de pachete
$ apt-cache policy pidgin
afișează versiunile pachetului din toate sursele respectiv prioritatea și „versiunea candidată”, adică cea care va fi instalată implicit cu apt-get/aptitude/synaptic
$ man apt-cache
manualul de utilizare aptitude program pentru management de pachete și interfață pentru apt aptitude folosește anumite funcții din apt, dar are implementat propriul rezolvator de dependențe (mai complex și mai puternic) și propria funcție de căutare. Pentru funcțiile de bază se poate spune că aptitude = apt-get + apt-cache dar fiecare implementează funcții pe care celelalte nu le au. Este recomandat față de apt-get de mai mulți ani, deși unii mai conservatori susțin că apt-get este mai bun. aptitude are două moduri principale de lucru: linie de comandă și interactiv. Comenzile de bază sunt similare cu apt-get/apt-cache. În modul interactiv (text) folosește combinații de taste și meniuri. Există și o interfață grafică (gtk[1]), dar este încă în stadiu experimental. Comenzile de bază sunt documentate în pagina man dar mult mai multă informație se găsește în fișierul /usr/share/doc/aptitude și în pachetul aptitude-doc-en. synaptic interfață grafică pentru apt (gtk) Folosește direct apt (nu apt-get) pe post de „bibliotecă”. Este interfața grafică recomandată pentru apt, cel puțin până când aptitude-gtk va fi utilizabil. adept interfață grafică pentru apt (KDE) A fost creat special pentru apt, dar n-a mai fost actualizat. De curând s-a fost demarat un proiect (Google Summer of Code) pentru a-l actualiza (adept 3.0). Există deja și o versiune beta, vrea cineva să testeze? :) kpackage interfață generică pentru management de pachete Se pare că folosește comenzi apt-get în fundal (în loc să folosească direct apt) și nu implementează anumite funcții importante. NU este recomandat. [1] în ghilimele pentru că toate acele programe apelează de fapt la dpkg [2] # înseamnă că acea comanda necesită root, $ înseamnă că poate fi executată de orice utilizator [3] gtk este toolkitul folosit de Gnome. Programele pot fi folosite fără probleme în KDE dar arată cam „deplasate” (grafică diferită). KDE folosește toolkitul qt. Apare destul de des și terminologia „biblioteci gtk” față de „biblioteci gnome”. Distincția este subtilă, dar destul de importantă. Un program care folosește biblioteci gnome, respectiv kde probabil că folosește părți importante din mediul respectiv și e posibil să „tragă” multe dependențe (sau toată suita). Programele care folosesc doar bibliotecile gtk respectiv qt vor fi (mult) mai „ușoare”.

14 June, 2009

Bere cu ocazia lansării Fedora 11

Ieri seară am participat la lansarea Fedora 11 în Sibiu și cu această ocazie am cunoscut și eu SbLUG SbLUG ! Sper să fie începutul unei colaborări interesante și cu multă bere :)

19 October, 2008

Software liber la Radio Guerrilla

Nu degeaba e Guerrilla postul meu preferat de radio. Tocmai au avut o prezentare despre Ubuntu la secțiunea Internetologie. Viva la revolución!

16 October, 2008

Software liber peste tot

Săptămâna trecută mi-am cumpărat un router nou după ce l-am făcut cadou pe cel vechi mamei mele. De data asta n-am mai cumpărat la nimereală (am ales D-Link pentru că pe cutie scria că suportă Linux) ci m-am documentat. În final m-am hotărât pe Asus modelul 500gP v2 (P de la Premium).Deși are un procesor puțin mai lent decât predecesorul (240 MHz față de 266 MHz) pentru mine ar trebui să fie mai mult decât suficient și l-am găsit și la un preț mult mai bun decât mă așteptam. Planul este desigur să instalez Debian pe el, dar deocamdată am înlocuit softul original (bazat tot pe Linux) cu DD-WRT pentru că aveam probleme de conectare și stabilitate. Cu noul soft este foarte stabil și suportă funcții pe care softul original nu le avea. Debian urmează când voi avea și un adaptor de sunet USB.

07 October, 2008

Din nou compiz și Xfce4

Astăzi m-am gândit că e timpul să încerc din nou să folosesc compiz. Doar dispun de o configurație mult mai puternică (deși era utilizabil și pe P4 1,6GHz cu placă integrată Intel). Pachetele erau deja instalate de mai de mult deci tot ce a trebuit să fac a fost să modific ~/.config/xfce4-session/xfce4-session.rc astfel încât să includă ceva de genul:
[Failsafe Session] Count=5 Client0_Command=compiz Client0_PerScreen=False Client1_Command=gtk-window-decorator Client1_PerScreen=False Client2_Command=xfce4-panel Client2_PerScreen=False Client3_Command=Thunar,--daemon Client3_PerScreen=False Client4_Command=xfdesktop Client4_PerScreen=False
Desigur nu am scris toate astea singur, ci doar le-am copiat din /etc/xdg/xfce4-session/xfce4-session.rc și am făcut mici modificări:
  1. am înlocuit managerul de ferestre xfwm4 cu compiz
  2. am renumerotat clienții de la 1 la 3 astfel încât să pot include un nou Client1 pentru gtk-window-decorator.
Totul bine și frumos, compiz pornește fără diverse comenzi din terminal, dar parcă ceva nu e în regulă, se mișcă prea încet! Desigur, așa se întâmplă dacă nu este instalat pachetul libgl1-mesa-dri...