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
    • Pentru a determina toate pachetele ce conțin un fișier, rulați comanda (sau cu parametrul --search):
      dpkg -S /usr/games/sl
    • 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.

# Listarea tuturor pachetelor instalate în sistem, alături de versiune și o scurtă descriere, se poate face folosind comanda:

dpkg -l

#* Pentru a determina dacă un pachet ce conține linux în denumire este instalat, rulați comanda:

dpkg -l '*linux*'

#* Observați prima coloană a tabelului afișat. Acest câmp este format din două sau trei litere. # 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. # 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: <code bash> dpkg-reconfigure tzdata </code> și navigați prin meniu. # 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: <code bash> apt-get update </code> #* Pentru a căuta un pachet se folosește utilitarul apt-cache}: <code bash> apt-cache search “octave” </code> #* De asemenea, se pot extrage informații despre un pachet (asemenea parametrilor info} și print-avail} ai dpkg}): <code bash> apt-cache show octave </code> #* Instalarea unui pachet (alături de dependențe) se face folosind comanda: <code bash> apt-get install octave </code> Î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: <code bash> apt-get purge octave apt-get remove –purge octave </code> 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: <code bash> apt-file search apache2.conf </code> # Dacă pachetul apt-file nu este instalat, instalați-l.

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

  2. Î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.1476084110.txt.gz · Last modified: 2016/10/10 10:21 by mihaic