User Tools

Site Tools


linux-admin:capitole:capitol-12

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.

    1. 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.

    2. 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.

    3. Pentru a determina toate fișierele ce aparțin pachetului instalat, rulați comanda (sau cu parametrul --listfiles):
      dpkg -L sl
    4. Pentru a determina toate pachetele ce conțin un fișier, rulați comanda (sau cu parametrul --search):
      dpkg -S /usr/games/sl
    5. 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.

  2. Listarea tuturor pachetelor instalate în sistem, alături de versiune și o scurtă descriere, se poate face folosind comanda:
    dpkg -l
    1. Pentru a determina dacă un pachet ce conține linux în denumire este instalat, rulați comanda:
      dpkg -l '*linux*'
    2. Observați prima coloană a tabelului afișat. Acest câmp este format din două sau trei litere.
    3. Prima literă reprezintă starea dorită a pachetului. Aceasta poate fi: i - install, u - unknown, r - remove, p - purge, h - hold.
      1. A doua literă reprezintă starea curentă a pachetului: n - not installed, i - installed, u - unpacked etc.
      2. Dacă există și o a treia literă, aceasta este r și reprezintă apariția unei erori la instalare iar pachetul va trebui reinstalat.
  3. 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.

  4. 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
    1. Pentru a căuta un pachet se folosește utilitarul apt-cache:
      apt-cache search "octave"
    2. De asemenea, se pot extrage informații despre un pachet (asemenea parametrilor --info și --print-avail ai dpkg):
      apt-cache show octave
    3. 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ă.

    4. 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.

    5. 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
    6. Dacă pachetul apt-file nu este instalat, instalați-l.
  5. 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).

    1. 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.
    1. Pentru afișarea informațiilor despre un pachet, rulați:
      aptitude show apache2
    2. Pentru a instala un pachet, folosiți comanda:
      aptitude install apache2
    3. Dezinstalarea se face astfel:
      aptitude purge apache2

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

    4. 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.

  6. Î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.
    1. 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.

    2. 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.txt · Last modified: 2016/10/11 13:41 by mihaic