Debian tip: aptitude
In ultima vreme am inceput sa folosesc aptitude in loc de apt pentru managementul pachetelor de pe laptopul personal si de pe alte cateva sisteme desktop. Unul din motive este faptul ca incepand cu sarge aptitude este package managerul recomandat si vreau sa ma obisnuiesc cu noul mod de lucru inainte de a il folosi si pe alte sisteme. Celalalt motiv este faptul ca face diferenta intre pachetele cerute explicit si pachetele instalate automat ca dependinte, feature care ma scuteste de sesiunile lunare de debfoster si deborphan de pana acum (instalez si dezinstalez foarte des pachete pe sistemul meu, ceea ce tindea sa ma lase cu o gramada de pachete nefolosite).
De retinut ca pe langa interfata ncurses afisata implicit, aptitude poate lucra foarte bine si in linie de comanda, ceea ce in combinatie cu varietatea de expresii de cautare (prezentate ceva mai jos) rezulta intr-o unealta mai puternica decat traditionalele combinatii de apt-get, apt-cache si dpkg-query.
Inainte sa ajung la cautari, vreau sa trec rapid in revista alte functionalitati mai putin evidente ale interfetei text:
- Navigarea prin arborele de pachete se face mai simplu daca folosesti [ si ] care desfac respectiv colapseaza complet subarborele curent, impreuna cu ^ (caret) , care sare la nodul parinte. Tasta Enter extinde sau colapseaza doar nodul curent, sau deschide o noua pagina cu descrierea pachetului curent (dar asta este relativ usor de descoperit pentru toata lumea).
- O pagina se inchide cu q , ultima pagina inchisa inchide si aptitude. Paginile apar similar cu tab-urile din Firefox, in partea de sus.
- Daca este instalat pachetul debtags, se poate face cautare dupa taguri, deschizand o pagina din Views -> New Debtag Browser (scuze, nu stiu cum e in romana, eu am sistemul in engleza)
- In afara de Enter, pe un pachet se mai pot folosi d si r care afiseaza lista cu dependintele pachetului, respectiv cea cu reverse-depends (pachetele care depind de pachetul curent)
- Se poate vizualiza direct changelogul unui pachet cu shift+c (doar pentru pachete oficiale Debian). Aceasta functe impreuna cu apt-listbugs (care afiseaza bugurile curente ale pachetelor inainte sa fie instalate) imi sunt foarte utile in a-mi mentine sistemul unstable functional
- Operatiile pe pachete sunt "+" instalare, "-" dezinstalare, "_" purge (dezinstalare, impreuna cu stergerea fisierelor de configurare), "=" hold , ":" revenirea la starea curenta, "m" marcare pachet ca fiind instalat manual, "M" marcare ca automat (pachetul va fi dezinstalat automat in momentul in care nu mai e cerut de nici un alt pachet)
- De notat ca spre deosebire de apt, aptitude considera in mod implicit si dependintele de tip "Suggests" (desi se poate configura asta in mai multe feluri)
- Pe langa cautari (care se fac cu / inainte sau \ inapoi) se poate limita lista de pachete doar la cele care corespund criteriuui de cautare, folosind l (L mic, in caz ca nu se intelege)
Daca am ajuns la cautari, sa insir cateva:
- implicit, se folosesc expresii regulate si se cauta doar in numele pachetului (exemplu: '^lib.*sql')
- alte cautari se fac cu subcomenzi care incep cu ~. Astfel, cautarea in numele pachetului se face cu "~n": '~n^lib.*sql'
- pachetele instalate automat se cauta cu "~M"
- "~i" sunt pachete instalate automat
- "~D" si "~R" sunt cautari dupa dependintele (directe, respectiv inverse) ale unui pachet. Se poate specifica si tipul de dependinta satisfacut
- "~c" cauta intre pachetele care nu sunt instalate, dar au fisiere de configurare prezente.
- Lista completa se gaseste in ghidul de utilizare, disponibil in pachetul "aptitude-doc", sau pe web, la http://people.debian.org/~dburrows/aptitude-doc/en/
Inainte de final, doua exemple:
- Ce pachete as putea sa mai instalez dintre cele recomandate de pachetele de prioritate "important" disponibile deja in sistem? Posibil raspuns: '!~i~Rrecommends:~pimportant'
- Cum se poate inlocui populara comanda "COLUMNS=200 dpkg -l | grep ^rc | awk '{print $2}' | xargs dpkg -P" care iti sterge fisierele de cofigurare ramase de la pachete dezinstalate? Posibil raspuns: aptitude purge '~c'
Spor la instalari
Update:
Am gasit o metoda eleganta de a migra un sistem la aptitude fara a trece manual prin toate pahetele:
- aptitude markauto '~i' . Atentie, o sa vrea sa dezinstaleze cam toate pachetele, nu trebuie lasat (probabil -d ajuta)
- aptitude unmarkauto '~M!~R~i' . Asta marcheaza ca "manual" toate pachetele care nu depind de nimeni altcineva, astea ar trebui sa fie cele instalate explicit sau cele orfane.
- Va mai trebui probabil nitel finetuning, in functie de ce pachete vrea sa scoata, dar e o metoda rapida de a aduce sistemul aproape de starea dorita.