User Tools

Site Tools


linux-admin:capitole:capitol-12

This is an old revision of the document!


12. Gestiunea pachetelor

Instalarea aplicațiilor pe distribuțiile Linux se face prin intermediului managerului de pachete. In practica exista doua tipuri de pachete:

  • .deb - pentru sistemele Debian-based (aici se evidențiază comenzile dpkg și apt-get). dpkg-ul lucreaza direct cu fișierele .deb, dar nu rezolvă dependințe. apt-get este managerul de pachete care rezolva inclusiv dependințele.
  • .rpm - pentru sistemele RedHat-based (aici se evidențiază comenzile rpm[echivalent dpkg] și yum[echivalent apt-get).

Utilitare folosite

Debian-based

  • dpkg - gestionează pachete .deb
  • dpkg-reconfigure - reconfigurează un pachet deja instalat
  • apt-get - descarcă pachete din repo-uri și le gestionează
  • apt-cache - interoghează baza de date locală
  • apt-file - extrage informații despre fișierele conținute de un pachet
  • /etc/apt/sources.list - specifică adresele repo-urilor
  • aptitude - folosit cu același scop ca suita apt-*

RedHat-based

  • rpm - gestionează pachete .rpm
  • yum - descarcă și gestionează pachete .rpm
  • yumdownloader - descărcă un pachet .rpm fără a-l instala
  • rpm2cpio - convertește un pachet .rpm într-o arhivă .cpio
  • /etc/yum.conf - conține diverse configurații ale utilitarului yum și, eventual, adrese de repo-uri
  • /etc/yum.repos.d/ - conține date despre repo-uri, câte un fișier pentru fiecare

Bune practici

  • Afișarea pachetului care a pus la dispoziție un fișier:
    dpkg -S <nume_fișier>
    rpm -qf <nume_fișier>
  • Afișare conținut pachet instalat:
    dpkg -L <nume_pachet>
    rpm -ql <nume_pachet>
  • Upgrade la toate pachetele din sistem:
    sudo apt-get upgrade
  • Ștergere pachete instalate pentru a satisface anumite dependințe (nu mai sunt folositoare):
    sudo apt-get autoremove
  • Ștergere pachete descărcate din repository local:
    sudo apt-get autoclean
  • După modificarea repository-urilor, nu uitati:
    sudo apt-get update

    Comanda utilizată pentru resincronizarea pachetelor.

Resurse utile

Exerciții

Demo-uri

  1. Folosind utilitarul apt-get, descărcați următorul pachet .deb (fără a-l instala):
    apt-get install --download-only sl

    și apoi navigați în folderul /var/cache/apt/archives.

  2. Pentru a afla informații despre pachetul anterior, cum ar fi versiunea, pachetele de care depinde sau arhitectura pe care poate fi instalat, folosiți opțiunea -I a utilitarului dpkg (sau --info):
    dpkg -I <nume pachet>

    Numele complet pachetului depinde de versiunea sa și de arhitectura pentru care a fost compilat, dar va începe cu sl.

  3. Pentru a instala pachetul (fără dependențele acestuia), folosiți parametrul -i:
    dpkg -i <nume pachet>

    unde <nume pachet> este fișierul .deb descărcat.

  4. Pentru a determina toate fișierele ce aparțin pachetului instalat, rulați comanda (sau cu parametrul --listfiles):
    dpkg -L sl
  5. Pentru a determina toate pachetele ce conțin un fișier, rulați comanda (sau cu parametrul --search):
    dpkg -S /usr/games/sl
  6. Dezinstalarea pachetului se face cu comanda:
    dpkg -r sl

    În loc de -r poate folosi parametrul -P (purge) pentru a șterge și fișierele de configurare.

  7. Listarea tuturor pachetelor instalate în sistem, alături de versiune și o scurtă descriere, se poate face folosind comanda:
    dpkg -l
  8. Pentru a determina dacă un pachet ce conține linux în denumire este instalat, rulați comanda:
    dpkg -l '*linux*'
  9. Observați prima coloană a tabelului afișat. Acest câmp este format din două sau trei litere.
    1. Prima literă reprezintă starea dorită a pachetului. Aceasta poate fi: i - install, u - unknown, r - remove, p - purge, h - hold.
    • A doua literă reprezintă starea curentă a pachetului: n - not installed, i - installed, u - unpacked etc.
    • Dacă există și o a treia literă, aceasta este r și reprezintă apariția unei erori la instalare iar pachetul va trebui reinstalat.
  10. Configurările unui pachet se pot face fie înainte de a-l instala, fie după ce a fost instalat. Pentru a schimba timezone-ul pe ora Moscovei, având în vedere că pachetul tzdata a fost deja instalat, folosiți comanda:
    dpkg-reconfigure tzdata

    și navigați prin meniu.

  11. Folosirea utilitarului apt-get pentru managementul pachetelor presupune existența unei baze de date locale cu pachetele disponibile și locul din care pot fi luate. Pentru a actualiza această bază de date, folosiți comanda:
    apt-get update
    • Pentru a căuta un pachet se folosește utilitarul apt-cache:
      apt-cache search "octave"
    • De asemenea, se pot extrage informații despre un pachet (asemenea parametrilor --info și --print-avail ai dpkg):
      apt-cache show octave
    • Instalarea unui pachet (alături de dependențe) se face folosind comanda:
      apt-get install octave

      În cazul în care pachetul este deja instalat, se instalează ultima versiunea a acestuia (update), dacă există.

    • Dezinstalarea unui pachet se face executând comanda:
      apt-get purge octave
      apt-get remove --purge octave

      Parametrul --purge are aceeași semnificație ca în cazul dpkg.

    • Uneori, știm de ce comandă sau fișier avem nevoie dar nu știm pachetul în care acesta se poate găsi. În aceste cazuri este folositor utilitarul apt-file, care caută prin fișierele conținute de un pachet:
      apt-file search apache2.conf
      • Dacă pachetul apt-file nu este instalat, instalați-l.
  12. Un alt utilitar pentru managementul pachetelor în cadrul sistemelor Debian-based este aptitude. Avantajul major al acestuia peste suita apt-* este unificarea opțiunilor în cadrul unei singure comenzi. În plus, rulând:
    aptitude

    este pusă la dispoziție și o interfață grafică (pentru ieșire, folosiți tasta q).

    • Căutarea unui pachet în cache-ul local se face cu comanda:
      aptitude search "apache"
    • Diferența între aptitue search și apt-cache search constă în faptul că prima afișeaza și dacă pachetul este instalat sau nu în sistem.
    • Pentru afișarea informațiilor despre un pachet, rulați:
      aptitude show apache2
    • Pentru a instala un pachet, folosiți comanda:
      aptitude install apache2
    • Dezinstalarea se face astfel:
      aptitude purge apache2

      Se poate folosi opțiunea remove în locul purge.

    • O opțiune utilă este clean. Aceasta șterge pachetele păstrate în cache:
      aptitude clean

      Opțiunea autoclean șterge doar pachetele out-of-date, ce nu mai pot fi descărcate. Aceste două operații sunt utile pentru a împiedica creșterea cache-ului în timp și a elibera spațiu pe disc.

  13. În cadrul unui sistem, la un moment dat, pot exista mai multe programe care să aibă același scop (cum ar fi un browser: poate fi Firefox, Chrome etc.). Sistemele Debian-based folosesc grupuri de alternative pentru fiecare scop; fiecare grup menține un link simbolic către programul preferat.
    • Utilitarul folosit pentru gestionarea acestor grupuri este update-alternatives. Listarea alternativelor pentru grupul de browsere (www-browser) se face astfel:
      update-alternatives --list x-www-browser

      Dacă executabilul căutat nu se află în listă, el va trebui adăugat manual.

    • Selectarea opțiunii dorite se poate face interactiv sau neinteractiv. Pentru a folosi varianta interactivă, rulați:
      update-alternatives --config x-www-browser

Exercițiu 1

Afișați informații despre starea pachetelor de pe sistemul local ce conțin șirul make. (Hint: folosiți șirul *make* pentru căutare).

Căutați în repository pachetele ce conțin fișierul header gdk.h.

Determinați toate pachetele ce pot satisface dependențele pachetului hevea. (Hint: man apt-cache, depends).

Actualizați editorul implicit folosit în sistem în vim. Numele grupului de alternative este editor.

linux-admin/capitole/capitol-12.1476084262.txt.gz · Last modified: 2016/10/10 10:24 by mihaic