Cap. 2. Gestionarea pachetelor Debian

# Cap. 2. Gestionarea pachetelor Debian

| Notă
Acest capitol este scris presupunând că cea mai recentă versiune stabilă este nume în cod: `trixie`. Sursa de date a sistemului APT este denumită în mod colectiv lista surselor în acest document . Aceasta poate fi definită oriunde în fișierul „`/etc/apt/sources.list`”, în fișierele „`/etc/apt/sources.list.d/*.list`” sau în fișierele „`/etc/apt/sources.list.d/*.sources`”.

## 2.1. Cerințe preliminare pentru gestionarea pachetelor Debian

### 2.1.1. Sistemul de gestionare a pachetelor Debian

Debian este o organizație voluntară care creează distribuții consistente de pachete binare precompilate de software liber și le distribuie din arhiva sa.

Arhiva Debian este oferită de multe situri oglindă la distanță pentru acces prin metode HTTP și FTP. Este disponibilă și pe CD-ROM/DVD.

Sistemul actual de gestionare a pachetelor Debian care poate utiliza toate aceste resurse este Advanced Packaging Tool (APT).

Sistemul de gestionare a pachetelor Debian, atunci când este utilizat corect, oferă utilizatorului posibilitatea de a instala seturi consistente de pachete binare în sistem din arhivă. În prezent, există 73987 de pachete disponibile pentru arhitectura amd64.

Sistemul de gestionare a pachetelor Debian are o istorie bogată și oferă numeroase opțiuni pentru programul de interfață cu utilizatorul final și metoda de acces la arhiva care urmează să fie utilizată. În prezent, recomandăm următoarele.

- `apt`(8) pentru toate operațiile interactive din linia de comandă, inclusiv instalarea, eliminarea și actualizarea pachetelor.

- `apt-get`(8) pentru apelarea sistemului de gestionare a pachetelor Debian din scripturi. Este, de asemenea, o opțiune de rezervă atunci când `apt` nu este disponibil (adesea în cazul sistemelor Debian mai vechi).

- `aptitude`(8) pentru o interfață text interactivă pentru gestionarea pachetelor instalate și căutarea pachetelor disponibile.

Tabel 2.1. Lista instrumentelor de gestionare a pachetelor Debian

pachet | popcon(popularitate) | dimensiune | descriere
--- | --- | --- | ---
`dpkg` | V:889, I:999 | 6385 | sistem de gestionare a pachetelor de nivel scăzut pentru Debian (bazat pe fișiere)
`apt` | V:875, I:999 | 4670 | interfață APT pentru gestionarea pachetelor cu CLI:(interfață de linie de comandă) `apt`/`apt-get`/`apt-cache`
`aptitude` | V:36, I:181 | 4624 | interfață APT pentru gestionarea interactivă a pachetelor cu consolă pe ecran complet: `aptitude`(8)
`tasksel` | V:36, I:983 | 349 | interfață APT pentru instalarea sarcinilor selectate: `tasksel`(8)
`unattended-upgrades` | V:124, I:184 | 317 | pachet de îmbunătățiri pentru APT pentru a permite instalarea automată a actualizărilor de securitate
`gnome-software` | V:165, I:274 | 4476 | Centru software pentru GNOME (interfață grafică pentru APT)
`synaptic` | V:37, I:304 | 7788 | administrator grafic de pachete (interfață GTK APT)
`apt-utils` | V:399, I:997 | 1151 | programe utilitare APT: `apt-extracttemplates`(1), `apt-ftparchive`(1) și `apt-sortpkgs`(1)
`apt-listchanges` | V:382, I:888 | 547 | instrument de notificare a istoricului modificărilor pachetelor
`apt-listbugs` | V:5, I:7 | 514 | listează erorile critice înainte de fiecare instalare APT
`apt-file` | V:15, I:58 | 89 | instrument de căutare a pachetelor APT — interfață linie de comandă
`apt-rdepends` | V:0, I:4 | 39 | listează recursiv dependențele pachetului

### 2.1.2. Configurația pachetului

Iată câteva puncte cheie pentru configurarea pachetelor în sistemul Debian.

- Pentru mediul grafic de birou modern, repornirea sistemului după schimbarea configurației pachetelor și actualizarea pachetelor este o idee bună pentru a asigura funcționarea corectă a sistemului.

- Configurația manuală efectuată de administratorul de sistem este respectată. Cu alte cuvinte, sistemul de configurare a pachetelor nu efectuează nicio configurare intruzivă din motive de comoditate.

- Fiecare pachet vine cu propriul script de configurare cu interfață standardizată numită `debconf`(7) pentru a ajuta în procesul de instalare inițială a pachetului.

- Dezvoltatorii Debian fac tot posibilul pentru a vă oferi o experiență de actualizare fără probleme, cu ajutorul scripturilor de configurare a pachetelor.

- Administratorul de sistem are la dispoziție toate funcționalitățile pachetului software. Însă cele care prezintă riscuri de securitate sunt dezactivate în instalarea implicită.

- Dacă activați manual un serviciu care prezintă anumite riscuri de securitate, sunteți responsabil pentru limitarea riscurilor.

- Configurația ezoterică poate fi activată manual de administratorul de sistem. Acest lucru poate crea interferențe cu programele generice populare de asistență pentru configurarea sistemului.

### 2.1.3. Precauții de bază

| Avertisment
Nu instalați pachete dintr-un amestec aleatoriu de suite. Probabil că acest lucru va afecta coerența pachetului, ceea ce necesită cunoștințe aprofundate de administrare a sistemului, cum ar fi compilatorul ABI, versiunea bibliotecii, caracteristicile interpretului etc.

Administratorul de sistem Debian începător ar trebui să rămână la versiunea `stabilă` a Debian, aplicând doar actualizările de securitate. Până când nu înțelegeți foarte bine sistemul Debian, ar trebui să urmați următoarele precauții.

- Nu includeți suitele `testing` (de testare) sau `unstable` (instabilă) în lista sursă.

- Nu amestecați Debian standard cu alte arhive non-Debian, cum ar fi Ubuntu, în lista de surse.

- Nu creați „`/etc/apt/preferences`”.

- Nu modificați comportamentul implicit al instrumentelor de gestionare a pachetelor prin fișiere de configurare fără a cunoaște impactul complet al acestora.

- Nu instalați pachete aleatorii folosind comanda „`dpkg -i pachet_aleatoriu`”.

- Nu instalați niciodată pachete aleatorii folosind comanda „`dpkg --force-all -i pachet_aleatoriu`”.

- Nu ștergeți și nu modificați fișierele din „`/var/lib/dpkg/`”.

- Nu suprascrieți fișierele de sistem prin instalarea programelor software compilate direct din sursă.

  - Instalați-le în „`/usr/local`” sau „`/opt`”, dacă este necesar.

Efectele incompatibile cauzate de încălcarea precauțiilor de mai sus asupra sistemului de gestionare a pachetelor Debian pot face sistemul dvs. inutilizabil.

Administratorii de sistem Debian serioși, care gestionează servere critice, ar trebui să ia măsuri de precauție suplimentare.

- Nu instalați niciun pachet, inclusiv actualizările de securitate de la Debian, fără a le testa temeinic cu configurația dvs. specifică, în condiții de siguranță.

  - În calitate de administrator de sistem, dumneavoastră sunteți responsabil în ultimă instanță pentru sistemul dumneavoastră.

  - Istoria îndelungată de stabilitate a sistemului Debian nu constituie o garanție în sine.

### 2.1.4. O viață cu îmbunătățiri veșnice

| Atenție
Pentru serverul de producție, se recomandă suita `stabilă` cu actualizările de securitate. Același lucru se poate spune și despre calculatoarele stații de lucru pe care puteți depune eforturi administrative limitate.

În ciuda avertismentelor mele de mai sus, știu că mulți cititori ai acestui document ar putea dori să ruleze noile suite `testing` sau `unstable`.

Iluminarea cu următoarele salvează o persoană de lupta eternă karmică a ascensiunii iadului și îi permite să atingă nirvana Debian.

Această listă este destinată mediului de birou autoadministrat.

- Utilizați suita `testing`, deoarece aceasta este practic versiunea continuă gestionată automat de infrastructura QA a arhivei Debian, cum ar fi integrarea continuă Debian, practicile de încărcare numai a surselor și urmărirea tranziției bibliotecilor. Pachetele din suita `testing` sunt actualizate suficient de frecvent pentru a oferi toate funcționalitățile cele mai recente.

- Stabiliți numele de cod corespunzător suitei `testing` („`forky`” în timpul ciclului de lansare `trixie`-ca-`stable`) în lista surselor .

- Actualizați manual acest nume de cod în lista surselor cu cel nou numai după ce evaluați situația pe cont propriu timp de aproximativ o lună după lansarea suitei majore. Lista de discuții a utilizatorilor și dezvoltatorilor Debian este, de asemenea, o sursă bună de informații în acest sens.

Utilizarea suitei `unstable` nu este recomandată. Suita `unstable` este potrivită pentru depanarea pachetelor ca dezvoltator, dar tinde să vă expună la riscuri inutile pentru utilizarea normală a stației de lucru. Chiar dacă suita `unstable` a sistemului Debian pare foarte stabilă în majoritatea cazurilor, au existat unele probleme cu pachetele, iar câteva dintre ele nu au fost atât de ușor de rezolvat.

Iată câteva idei de măsuri de precauție de bază pentru a asigura recuperarea rapidă și ușoară în cazul apariției erorilor în pachetele Debian.

- Faceți sistemul să fie cu pornire duală instalând suita `stable` a sistemului Debian pe o altă partiție

- Păstrați CD-ul de instalare la îndemână pentru pornirea de recuperare

- Luați în considerare instalarea `apt-listbugs` pentru a verifica informațiile din Sistemul de urmărire a erorilor Debian (BTS) înainte de actualizare.

- Învățați infrastructura sistemului de pachete suficient pentru a rezolva problema

| Atenție
Dacă nu puteți lua niciuna dintre aceste măsuri de precauție, probabil că nu sunteți pregătit pentru suitele `testing` (de testare) și `unstable` (instabilă).

### 2.1.5. Noțiuni de bază despre arhiva Debian

| Indicație
Politica oficială a arhivei Debian este definită în Manualul de politici Debian, Capitolul 2 - Arhiva Debian.

Să analizăm arhiva Debian din perspectiva unui utilizator de sistem.

Pentru un utilizator al sistemului, arhiva Debian este accesată folosind sistemul APT.

Sistemul APT specifică sursa de date ca fiind lista surselor și este descris în `sources.list`(5).

Pentru sistemul `trixie` cu acces HTTP tipic, lista surselor în stilul unei singure linii, este ca mai jos:

    deb http://deb.debian.org/debian/ trixie main non-free-firmware contrib non-free
    deb-src http://deb.debian.org/debian/ trixie main non-free-firmware contrib non-free

    deb http://security.debian.org/debian-security trixie-security main non-free-firmware contrib non-free
    deb-src http://security.debian.org/debian-security trixie-security main non-free-firmware contrib non-free

Alternativ, lista surselor echivalente în stil deb822 este următoarea.

    Types: deb deb-src
    URIs: http://deb.debian.org/debian/
    Suites: trixie
    Components: main non-free-firmware contrib non-free

    Types: deb deb-src
    URIs: http://security.debian.org/debian-security/
    Suites: trixie-security
    Components: main non-free-firmware contrib non-free

Punctele cheie ale listei surselor sunt următoarele.

- Format cu o singură linie

  - Fișierele sale de definiții se află în fișierul „`/etc/apt/sources.list`” și în fișierele „`/etc/apt/sources.list.d/*.list`”.

  - Fiecare linie definește sursa de date pentru sistemul APT.

  - Linia „`deb`” definește pachetele binare.

  - Linia „`deb-src`” definește pachetele sursă.

  - Primul argument este adresa URL rădăcină a arhivei Debian.

  - Al doilea argument este numele distribuției, folosind fie numele suitei, fie numele în cod.

  - Al treilea argument și următoarele sunt lista numelor valide ale zonelor de arhivă din arhiva Debian.

- Format stil Deb822

  - Fișierele sale de definiție se află în fișierele „`/etc/apt/sources.list.d/*.sources`”.

  - Fiecare bloc de linii separate printr-o linie goală definește sursa de date pentru sistemul APT.

  - Strofa „`Types:`” definește lista tipurilor, cum ar fi „`deb`” și „`deb-src`”.

  - Strofa „`URIs:`” definește lista adreselor URI rădăcină ale arhivei Debian.

  - Strofa „`Suites:`” definește lista numelor de distribuție utilizând fie numele suitei, fie numele în cod.

  - Strofa „`Components:`” definește lista numelor valide ale zonelor de arhivă din arhiva Debian.

Definiția pentru „`deb-src`” poate fi omisă în siguranță dacă este doar pentru `aptitude`, care nu accesează metadatele legate de sursă. Aceasta accelerează actualizările metadatelor arhivei.

Adresa URL poate fi de tipul „`https://`”, „`http://`”, „`ftp://`”, „`file://`”, ….

Liniile care încep cu „`#`” sunt comentarii și sunt ignorate.

Aici, tind să folosesc numele în cod „`trixie`” sau „`forky`” în loc de numele suitei „`stable`” sau „`testing`” pentru a evita surprizele atunci când va fi lansată următoarea versiune `stable`.

| Indicație
Dacă în exemplul de mai sus se utilizează „`sid`” în loc de „`trixie`”, nu este necesară linia „`deb: http://security.debian.org/ …`” sau conținutul său echivalent deb822 pentru actualizările de securitate din lista surselor nu este necesar. Acest lucru se datorează faptului că nu există arhivă de actualizări de securitate pentru „`sid`” (`unstable`).

Iată lista adreselor URL ale siturilor de arhivă Debian și numele suitei sau numele de cod utilizate în fișierul de configurare după versiunea `trixie`.

Tabel 2.2. Lista siturilor de arhivă Debian

adresa URL a arhivei | numele suitei | nume în cod | scopul depozitului
--- | --- | --- | ---
http://deb.debian.org/debian/ | `stable` | `trixie` | Publicare `stabilă` cvasi-statică după verificări ample
http://deb.debian.org/debian/ | `testing` | `forky` | Publicare dinamică a suitei `de testare` după verificări adecvate și perioade scurte de așteptare
http://deb.debian.org/debian/ | `unstable` | `sid` | Publicare dinamică a suitei `instabile` după verificări minime și fără așteptări
http://deb.debian.org/debian/ | `experimental` | N/D | Experimentări pre-publicare efectuate de dezvoltatori (opțional, numai pentru dezvoltatori)
http://deb.debian.org/debian/ | `stable-proposed-updates` | `trixie-proposed-updates` | Actualizări pentru următoarea versiune `stabilă` (opțional)
http://deb.debian.org/debian/ | `stable-updates` | `trixie-updates` | Subset al suitei `stable-proposed-updates` care necesită actualizări urgente, cum ar fi datele privind fusul orar (opțional)
http://deb.debian.org/debian/ | `stable-backports` | `trixie-backports` | Colecție aleatorie de pachete recompilate, în mare parte din versiunea `testing` (opțional)
http://security.debian.org/debian-security/ | `stable-security` | `trixie-security` | Actualizări de securitate pentru versiunea `stabilă` (important)
http://security.debian.org/debian-security/ | `testing-security` | `forky-security` | Aceasta nu este susținută în mod activ și nici utilizată de echipa de securitate

| Atenție

Numai versiunea pură `stabilă` cu actualizări de securitate oferă cea mai bună stabilitate. Rularea în principal a versiunii `stable` combinată cu unele pachete din versiunea `testing` sau `unstable` este mai riscantă decât rularea versiunii pure `unstable` din cauza incompatibilității versiunilor bibliotecilor etc. Dacă aveți cu adevărat nevoie de cea mai recentă versiune a unor programe din versiunea `stable`, vă rugăm să utilizați pachetele din serviciile stable-updates și backports (a se vedea Secțiune 2.7.4, „Actualizări și retro-adaptări (versiuni de software migrate din ramura principală de dezvoltare și adaptate pentru a funcționa cu această versiune)”). Aceste servicii trebuie utilizate cu precauție sporită.

| Atenție

În principiu, ar trebui să enumerați doar una dintre suitele `stable`, `testing` sau `unstable` în linia „`deb`”. Dacă listați orice combinație de suite `stable`, `testing` și `unstable` în linia „`deb`”, programele APT vor funcționa mai lent, iar numai arhiva cea mai recentă va fi eficientă. Listarea multiplă are sens pentru acestea atunci când fișierul „`/etc/apt/preferences`” este utilizat cu obiective clare (a se vedea Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”).

| Indicație
Pentru sistemul Debian cu suita `stable`, este recomandat să includeți conținutul cu „`http://security.debian.org/`” în lista de surse pentru a activa actualizările de securitate, așa cum se arată în exemplul de mai sus.

| Notă

Erorile/problemele de securitate pentru arhiva `stable` sunt remediate de echipa de securitate Debian. Această activitate a fost destul de riguroasă și fiabilă. Cele pentru arhiva `testing` pot fi remediate de echipa de securitate Debian testing. Din mai multe motive, această activitate nu este la fel de riguroasă ca cea pentru `stable` și este posibil să fie necesar să așteptați migrarea pachetelor `unstable` remediate către arhiva `testing`. Cele pentru arhiva `unstable` sunt remediate de către administratorul individual. Pachetele `unstable` întreținute activ sunt de obicei într-o stare destul de bună, beneficiind de cele mai recente remedieri de securitate din amonte. Consultați FAQ-ul de securitate Debian pentru a afla cum gestionează Debian erorile/problemele de securitate.

Tabel 2.3. Lista secțiunilor de arhivă Debian

secțiunea | numărul de pachete | criterii privind componentele pachetului
--- | --- | ---
`main` | 72513 | conform cu DFSG și fără dependență de `non-free`
`non-free-firmware` | 64 | nu este conform cu DFSG, necesită firmware pentru o experiență rezonabilă de instalare a sistemului
`contrib` | 377 | conform cu DFSG, dar cu dependență de `non-free`
`non-free` | 1033 | nu este conform cu DFSG și nu se află în `non-free-firmware`

Aici numărul de pachete din cele de mai sus este pentru arhitectura amd64. Secțiunea `main` furnizează sistemul Debian (vedeți Secțiune 2.1.6, „Debian este software 100% liber”).

Organizarea arhivei Debian poate fi studiată cel mai bine accesând în navigatorul dvs. fiecare adresă URL a arhivei la care se adaugă `dists` sau `pool`.

Distribuția este menționată în două moduri, versiunea sau nume în cod. Termenul „distribuție” este utilizat alternativ ca sinonim pentru „suită” în multe documentații. Relația dintre versiune și numele în cod poate fi rezumată după cum urmează.

Tabel 2.4. Relația dintre versiune și numele în cod

Calendarul | versiunea = `stable` | versiunea = `testing` | versiunea = `unstable`
--- | --- | --- | ---
după publicarea versiunii `trixie` | nume în cod = `trixie` | nume în cod = `forky` | nume în cod = `sid`
după publicarea versiunii `forky` | nume în cod = `forky` | nume în cod = `duke` | nume în cod = `sid`

Istoria numelor în cod este descrisă în Debian FAQ: 6.2.1 Ce alte nume în cod au fost folosite în trecut?

În terminologia mai strictă a arhivei Debian, cuvântul „secțiune” este utilizat în mod specific pentru clasificarea pachetelor în funcție de domeniul de aplicare. (Cu toate acestea, cuvântul „secțiune principală” poate fi utilizat uneori pentru a descrie zona arhivei Debian denumită „main”.)

De fiecare dată când un dezvoltator Debian (DD) efectuează o nouă încărcare în arhiva `unstable` (prin procesarea incoming), DD trebuie să se asigure că pachetele încărcate sunt compatibile cu cel mai recent set de pachete din cea mai recentă arhivă `unstable`.

Dacă DD încalcă intenționat această compatibilitate pentru actualizări importante ale bibliotecii etc., de obicei se face un anunț pe lista de discuții debian-devel etc.

Înainte ca un set de pachete să fie mutat de scriptul de întreținere a arhivei Debian din arhiva `unstable` în arhiva `testing`, scriptul de întreținere a arhivei nu numai că verifică maturitatea (aproximativ 2-10 zile) și starea rapoartelor de erori RC pentru pachete, dar încearcă și să se asigure că acestea sunt compatibile cu cel mai recent set de pachete din arhiva `testing`. Acest proces face ca arhiva `testing` să fie foarte actuală și utilizabilă.

Prin procesul gradual de înghețare a arhivei condus de echipa de lansare, arhiva `testing` este maturizată pentru a deveni complet consistentă și fără erori, cu câteva intervenții manuale. Apoi, noua versiune `stable` este creată prin atribuirea numelui în cod al vechii arhive `testing` noii arhive `stable` și crearea unui nou nume în cod pentru noua arhivă `testing`. Conținutul inițial al noii arhive `testing` este exact același cu cel al arhivei `stable` recent lansate.

Atât arhiva `unstable` cât și arhiva `testing` pot suferi defecțiuni temporare din cauza mai multor factori.

- Încărcare pachet defect în arhivă (în special pentru `unstable`)

- Întârzierea acceptării noilor pachete în arhivă (în special pentru `unstable`)

- Problemă de sincronizare a arhivei (atât pentru `testing` cât și pentru `unstable`)

- Intervenția manuală asupra arhivei, cum ar fi eliminarea pachetelor (mai mult pentru `testing`) etc.

Deci, dacă vreodată decideți să utilizați aceste arhive, ar trebui să puteți remedia sau să rezolvați acest tip de probleme.

| Atenție

Timp de aproximativ câteva luni după lansarea unei noi versiuni `stable` (stabilă), majoritatea utilizatorilor de stații de lucru ar trebui să utilizeze arhiva `stable` (stabilă) cu actualizările sale de securitate, chiar dacă de obicei utilizează arhivele `unstable` (instabilă) sau `testing` (în testare). În această perioadă de tranziție, arhivele `unstable` și `testing` nu sunt potrivite pentru majoritatea utilizatorilor. Este dificil să mențineți sistemul în stare bună de funcționare cu arhiva `unstable`, deoarece aceasta suferă actualizări majore pentru pachetele de bază. Arhiva `testing` nu este utilă nici ea, deoarece conține în mare parte același conținut ca arhiva `stable`, fără suportul de securitate (Debian testing-security-announce 2008-12). După aproximativ o lună, arhivele `unstable` sau `testing` pot deveni utile dacă aveți grijă.

| Indicație
Când se urmărește arhiva `testing`, o problemă cauzată de un pachet eliminat este de obicei rezolvată prin instalarea pachetului corespunzător din arhiva `unstable`, care este încărcată pentru remedierea erorii.

Consultați Manualul de politici Debian pentru definițiile arhivelor.

- "Secțiuni"

- "Priorități"

- "Sistem de bază"

- "Pachete esențiale"

### 2.1.6. Debian este software 100% liber

Debian este software 100% liber datorită următoarelor aspecte:

- Debian instalează în mod implicit numai software liber, pentru a respecta libertățile utilizatorilor.

- Debian oferă numai software liber în `main`.

- Debian recomandă rularea numai a software-ului liber din `main`.

- Niciun pachet din `main` nu depinde și nu recomandă pachete din `non-free`, `non-free-firmware` sau `contrib`.

Unii oameni se întreabă dacă următoarele două fapte se contrazic sau nu.

- „Debian va rămâne 100% gratuit”. (Primul termen din Contractul social Debian)

- Serverele Debian găzduiesc unele pachete `non-free-firmware`, `non-free` și `contrib`.

Acestea nu se contrazic, din următoarele motive.

- Sistemul Debian este 100% liber, iar pachetele sale sunt găzduite de serverele Debian în secțiunea `main`.

- Pachetele din afara sistemului Debian sunt găzduite de serverele Debian în zonele `non-free`, `non-free-firmware` și `contrib`.

Acestea sunt explicate în detaliu în termenii 4 și 5 din Contractul social Debian:

- Prioritățile noastre sunt utilizatorii și software-ul liber

  - Ne vom ghida după nevoile utilizatorilor noștri și ale comunității de software liber. Vom pune interesele lor pe primul loc în lista noastră de priorități. Vom sprijini nevoile utilizatorilor noștri de a opera în multe tipuri diferite de medii informatice. Nu ne vom opune lucrărilor care nu sunt libere și care sunt destinate utilizării pe sistemele Debian și nu vom încerca să percepem taxe persoanelor care creează sau utilizează astfel de lucrări. Vom permite altora să creeze distribuții care conțin atât sistemul Debian, cât și alte lucrări, fără a percepe nicio taxă din partea noastră. În vederea promovării acestor obiective, vom furniza un sistem integrat de materiale de înaltă calitate, fără restricții legale care ar împiedica astfel de utilizări ale sistemului.

- Lucrările care nu respectă standardele noastre privind software-ul liber

  - Recunoaștem că unii dintre utilizatorii noștri necesită utilizarea unor lucrări care nu sunt conforme cu Ghidul Debian pentru software liber. Am creat secțiunile „`non-free`”, „`non-free-firmware`” și „`contrib`” în arhiva noastră pentru aceste lucrări. Pachetele din aceste secțiuni nu fac parte din sistemul Debian, deși au fost configurate pentru a fi utilizate cu Debian. Încurajăm producătorii de CD-uri să citească licențele pachetelor din aceste secțiuni și să determine dacă pot distribui pachetele pe CD-urile lor. Astfel, deși lucrările non-free nu fac parte din Debian, noi susținem utilizarea lor și oferim infrastructura necesară pentru pachetele non-free (cum ar fi sistemul nostru de urmărire a erorilor și listele de discuții). Suporturile media oficiale Debian pot include firmware care altfel nu face parte din sistemul Debian, pentru a permite utilizarea Debian cu hardware care necesită un astfel de firmware.

| Notă
Textul actual al celui de-al cincilea termen din actualul Contract social Debian 1.2 este ușor diferit de textul de mai sus. Această abatere editorială este intenționată, pentru a asigura coerența acestui document destinat utilizatorilor, fără a modifica conținutul real al Contractului social.

Utilizatorii trebuie să fie conștienți de riscurile utilizării pachetelor din secțiunile `non-free`, `non-free-firmware` și `contrib`:

- lipsa de libertate pentru astfel de pachete software

- lipsa de asistență din partea Debian pentru astfel de pachete software (Debian nu poate oferi asistență adecvată pentru software fără a avea acces la codul sursă al acestuia)

- contaminarea sistemului Debian 100% liber

Ghidul Debian pentru software-ul liber reprezintă standardele de software liber pentru Debian. Debian interpretează „software-ul” în sensul cel mai larg, incluzând documentele, firmware-ul, logo-ul și datele grafice din pachet. Acest lucru face ca standardele Debian pentru software-ul liber să fie foarte stricte.

Pachetele tipice `non-free`, `non-free-firmware` și `contrib` includ pachete distribuibile liber de următoarele tipuri:

- Pachete de documente sub GNU Free Documentation License cu secțiuni invariabile, cum ar fi cele pentru GCC și Make. (se găsesc în principal în secțiunea `non-free/doc`.)

- Pachete firmware care conțin date binare fără sursă, cum ar fi cele enumerate în Secțiune 9.10.5, „Controlori hardware și firmware” ca `non-free-firmware`; (se găsesc în principal în secțiunea `non-free-firmware/kernel`).

- Pachete de jocuri și fonturi cu restricții privind utilizarea comercială și/sau modificarea conținutului.

Vă rugăm să rețineți că numărul pachetelor `non-free`, `non-free-firmware` și `contrib` este mai mic de 2% din numărul pachetelor `main`. Activarea accesului la secțiunile `non-free`, `non-free-firmware` și `contrib` nu ascunde sursa pachetelor. Utilizarea interactivă pe ecran complet a `aptitude`(8) vă oferă vizibilitate și control deplin asupra pachetelor instalate din fiecare secțiune, pentru a vă menține sistemul atât de liber pe cât doriți.

### 2.1.7. Dependențele pachetelor

Sistemul Debian oferă un set consistent de pachete binare prin mecanismul său de declarare a dependențelor binare cu versiuni în câmpurile fișierului de control. Iată o definiție puțin simplificată pentru acestea.

- „Depends” (depinde de)

  - Aceasta declară o dependență absolută și toate pachetele enumerate în acest câmp trebuie instalate în același timp sau în prealabil.

- „Pre-Depends” (pre-depinde de)

  - Este similar cu Depends, cu excepția faptului că necesită instalarea completă în prealabil a pachetelor enumerate.

- „Recommends” (recomandate)

  - Aceasta declară o dependență puternică, dar nu absolută. Majoritatea utilizatorilor nu ar dori pachetul decât dacă toate pachetele enumerate în acest câmp sunt instalate.

- „Suggest” (sugerate)

  - Aceasta declară o dependență slabă. Mulți utilizatori ai acestui pachet pot beneficia de instalarea pachetelor enumerate în acest câmp, dar pot avea funcții rezonabile și fără acestea.

- „Enhances” (îmbunătățește)

  - Aceasta declară o dependență slabă, similară cu Suggests, dar funcționează în sens invers.

- „Breaks” (deteriorează)

  - Aceasta declară o incompatibilitate a pachetului, de obicei cu o anumită specificație de versiune. În general, soluția este să actualizați toate pachetele enumerate în acest câmp.

- „Conflicts” (conflicte)

  - Aceasta declară o incompatibilitate absolută. Toate pachetele enumerate în acest câmp trebuie eliminate pentru a instala acest pachet.

- „Replaces” (înlocuiește)

  - Aceasta se declară atunci când fișierele instalate de acest pachet înlocuiesc fișierele din pachetele enumerate.

- „Provides” (furnizează)

  - Acest lucru este declarat atunci când acest pachet furnizează toate fișierele și funcționalitățile din pachetele enumerate.

| Notă
Vă rugăm să rețineți că definirea simultană a „Provides”, „Conflicts” și „Replaces” pentru un pachet virtual este configurația corectă. Aceasta asigură că doar un singur pachet real care furnizează acest pachet virtual poate fi instalat la un moment dat.

Definiția oficială, inclusiv dependența de sursă, poate fi găsită în Manualul de politici: Capitolul 7 - Declararea relațiilor dintre pachete.

### 2.1.8. Fluxul evenimentelor din gestionarea pachetelor

Iată un rezumat al fluxului simplificat al evenimentelor din gestionarea pachetelor de către APT.

- Actualizare metadate („`apt update`”, „`aptitude update`” sau „`apt-get update`”):

  1. Preluarea metadatelor din arhiva de la distanță

  2. Reconstruirea și actualizarea metadatelor locale pentru utilizarea de către APT

- Modernizare (actualizarea la ultima versiune a pachetelor) („`apt upgrade`” și „`apt full-upgrade`” sau „`aptitude safe-upgrade`” și „`aptitude full-upgrade`”, sau „`apt-get upgrade`” și „`apt-get dist-upgrade`”):

  1. Alegeți versiunea candidată, care este de obicei cea mai recentă versiune disponibilă pentru toate pachetele instalate (a se vedea Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning” pentru excepții)

  2. Rezolvarea dependențelor pachetelor

  3. Preluarea pachetelor binare selectate din arhiva de la distanță dacă versiunea candidată este diferită de versiunea instalată

  4. Despachetarea pachetelor binare descărcate

  5. Rularea scriptului preinst

  6. Instalarea fișierelor binare

  7. Rularea scriptului postinst

- Instalare („`apt install …`”, `aptitude install …`” sau „`apt-get install …`”):

  1. Alegerea pachetelor listate în linia de comandă

  2. Rezolvarea dependențelor pachetelor

  3. Preluarea pachetelor binare selectate din arhiva de la distanță

  4. Despachetarea pachetelor binare descărcate

  5. Rularea scriptului preinst

  6. Instalarea fișierelor binare

  7. Rularea scriptului postinst

- Eliminare („`apt remove …`”, „`aptitude remove …`” sau „`apt-get remove …`”):

  1. Alegerea pachetelor listate în linia de comandă

  2. Rezolvarea dependențelor pachetelor

  3. Rularea scriptului prerm

  4. Eliminarea fișierelor instalate cu excepția fișierelor de configurare

  5. Rularea scriptului postrm

- Purjare (curățare) („`apt purge`”, „`aptitude purge …`” sau „`apt-get purge …`”):

  1. Alegerea pachetelor listate în linia de comandă

  2. Rezolvarea dependențelor pachetelor

  3. Rularea scriptului prerm

  4. Eliminarea fișierelor instalate inclusiv fișierele de configurare

  5. Rularea scriptului postrm

Aici, am omis intenționat detaliile tehnice pentru a prezenta imaginea de ansamblu.

### 2.1.9. Primul răspuns la problemele legate de gestionarea pachetelor

Ar trebui să citiți documentația oficială detaliată. Primul document pe care trebuie să-l citiți este cel specific Debian „`/usr/share/doc/nume_pachet/README.Debian`”. Ar trebui consultată și altă documentație din „`/usr/share/doc/nume_pachet/`”. Dacă configurați shell-ul ca în Secțiune 1.4.2, „Personalizarea bash”, tastați următoarele.

    $ cd package_name
    $ pager README.Debian
    $ mc

Pentru informații detaliate, poate fi necesar să instalați pachetul de documentație corespunzător, denumit cu sufixul „`-doc`”.

Dacă întâmpinați probleme cu un pachet specific, verificați mai întâi siturile sistemului de urmărire a erorilor Debian (BTS).

Tabel 2.5. Lista siturilor web importante pentru rezolvarea problemelor legate de un pachet specific

situl web | comanda
--- | ---
Pagina principală a sistemului de urmărire a erorilor Debian (BTS) | `sensible-browser "https://bugs.debian.org/"`
Raportul de eroare al unui pachet cunoscut | `sensible-browser "https://bugs.debian.org/nume-pachet"`
Raportul de eroare al erorii cunoscute cu numărul | `sensible-browser "https://bugs.debian.org/numărul-erorii"`

Căutați cu Google cu cuvinte cheie precum „`site:debian.org`”, „`site:wiki.debian.org`”, „`site:lists.debian.org`” etc.

Când raportați o eroare, vă rugăm să utilizați comanda `reportbug`(1).

### 2.1.10. Cum să selectați pachetele Debian

Când întâlniți mai mult de două pachete similare și vă întrebați pe care să îl instalați fără a recurge la „încercări și erori”, ar trebui să folosiți bunul simț. Consider că următoarele puncte sunt indicii bune pentru alegerea pachetelor preferate.

- Esențial: da > nu

- Secțiunea: main > contrib > non-free

- Prioritate: necesar > important> standard> opțional> suplimentar

- Sarcini: pachete enumerate în sarcini precum „Mediu de birou”

- Pachetele selectate de pachetul de dependență (de exemplu, `gcc-10` de către `gcc`)

- Popcon (popularitate): număr mai mare de voturi și instalări

- Istoric modificări: actualizări periodice de către responsabilul pachetului

- BTS: Fără erori RC (fără erori critice, grave sau serioase)

- BTS: responsabil de pachet receptiv la rapoartele de erori

- BTS: număr mai mare de erori remediate recent

- BTS: număr mai mic de erori rămase care nu sunt incluse ca listă de dorințe (wishlist)

Debian fiind un proiect de voluntariat cu un model de dezvoltare distribuit, arhiva sa conține multe pachete cu orientări și calități diferite. Trebuie să decideți singur ce să faceți cu ele.

### 2.1.11. Cum să faceți față cerințelor contradictorii

Indiferent de suita sistemului Debian pe care decideți să o utilizați, este posibil să doriți să rulați versiuni ale programelor care nu sunt disponibile în acea suită. Chiar dacă găsiți pachete binare ale acestor programe în alte suite Debian sau în alte resurse non-Debian, cerințele lor pot intra în conflict cu sistemul Debian actual.

Deși puteți modifica sistemul de gestionare a pachetelor cu tehnica apt-pinning etc., așa cum este descris în Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning” pentru a instala astfel de pachete binare nesincronizate, astfel de abordări de modificare au doar cazuri de utilizare limitate, deoarece pot afecta programele respective și sistemul dvs.

Înainte de a instala în mod brutal astfel de pachete nesincronizate, ar trebui să căutați toate soluțiile tehnice alternative mai sigure disponibile, care sunt compatibile cu sistemul Debian actual.

- Instalați astfel de programe utilizând pachetele binare corespunzătoare din amonte (vezi Secțiune 7.7, „Cutia cu nisip (sandbox)”).

  - Multe programe cu interfață grafică, precum LibreOffice și aplicațiile GNOME, sunt disponibile sub formă de pachete Flatpak, Snap sau AppImage.

- Creați un mediu chroot sau similar și rulați astfel de programe în acesta (consultați Secțiune 9.11, „Sistem virtualizat”).

  - Comenzile CLI pot fi executate cu ușurință în cadrul chroot compatibil (vedeți Secțiune 9.11.4, „Sistemul chroot”).

  - Mai multe medii grafice de birou complete pot fi încercate cu ușurință fără a reporni sistemul (a se vedea Secțiune 9.11.5, „Mai multe sisteme de medii de birou”).

- Construiți singur versiunile dorite ale pachetelor binare care sunt compatibile cu sistemul Debian actual.

  - Aceasta este o sarcină non-trivială (a se vedea Secțiune 2.7.13, „Adaptarea unui pachet la sistemul stabil”).

## 2.2. Operații de bază de gestionare a pachetelor

Operațiile de gestionare a pachetelor bazate pe depozit în sistemul Debian pot fi efectuate de numeroase instrumente de gestionare a pachetelor bazate pe APT disponibile în sistemul Debian. Aici, explicăm 3 instrumente de bază pentru gestionarea pachetelor: `apt`, `apt-get` / `apt-cache` și `aptitude`.

Pentru operația de gestionare a pachetelor care implică instalarea pachetelor sau actualizarea metadatelor pachetelor, trebuie să aveți privilegii de root.

### 2.2.1. `apt` vs. `apt-get` / `apt-cache` vs. `aptitude`

Deși `aptitude` este un instrument interactiv foarte bun, pe care autorul îl folosește în principal, trebuie să știți câteva lucruri importante:

- Comanda `aptitude` nu este recomandată pentru actualizarea sistemului de la o versiune la alta pe sistemul Debian `stabil` după lansarea noii versiuni.

  - Pentru aceasta se recomandă utilizarea „`apt full-upgrade`” sau „`apt-get dist-upgrade`”. Consultați Eroarea #411280.

- Comanda `aptitude` sugerează uneori eliminarea în masă a pachetelor pentru actualizarea sistemului pe sistemul Debian `testing` sau `unstable`.

  - Această situație a speriat mulți administratori de sistem. Nu intrați în panică.

  - Aceasta pare să fie cauzată în principal de diferențele de versiune între pachetele dependente sau recomandate de un meta-pachet precum `gnome-core`.

  - Această problemă poate fi rezolvată selectând „Anulează acțiunile în așteptare” din meniul de comenzi `aptitude`, ieșind din `aptitude` și utilizând „`apt full-upgrade`”.

Comenzile `apt-get` și `apt-cache` sunt cele mai elementare instrumente de gestionare a pachetelor bazate pe APT.

- `apt-get` și `apt-cache` oferă doar interfața de utilizare a liniei de comandă.

- `apt-get` este cel mai potrivit pentru actualizări majore ale sistemului între versiuni etc.

- `apt-get` oferă un rezolvator de dependențe de pachete robust.

- `apt-get` solicită mai puține resurse hardware. Consumă mai puțină memorie și rulează mai rapid.

- `apt-cache` oferă o căutare standard bazată pe expresii regulate pentru numele și descrierea pachetului.

- `apt-get` și `apt-cache` pot gestiona mai multe versiuni de pachete folosind `/etc/apt/preferences`, dar este destul de complicat.

Comanda `apt` este o interfață de linie de comandă de nivel înalt pentru gestionarea pachetelor. Este practic un înveliș pentru `apt-get`, `apt-cache` și comenzi similare, concepută inițial ca interfață pentru utilizatorul final și care activează în mod implicit unele opțiuni mai potrivite pentru utilizarea interactivă.

- `apt` oferă o bară de progres intuitivă atunci când instalați pachete folosind `apt install`.

- `apt` va elimina pachetele `.deb` stocate în cache în mod implicit după instalarea cu succes a pachetelor descărcate.

| Indicație
Utilizatorilor li se recomandă să utilizeze noua comandă `apt`(8) pentru utilizarea interactivă și să utilizeze comenzile `apt-get`(8) și `apt-cache`(8) într-un script shell.

Comanda `aptitude` este cel mai versatil instrument de gestionare a pachetelor bazat pe APT.

- `aptitude` oferă interfața text interactivă cu utilizatorul pe ecran complet.

- `aptitude` oferă și interfața de utilizare a liniei de comandă.

- `aptitude` este cel mai potrivit pentru gestionarea interactivă zilnică a pachetelor, cum ar fi inspectarea pachetelor instalate și căutarea pachetelor disponibile.

- `aptitude` este mai exigent în ceea ce privește resursele hardware. Consumă mai multă memorie și rulează mai lent.

- `aptitude` oferă o căutare îmbunătățită bazată pe expresii regulate pentru toate metadatele pachetului.

- `aptitude` poate gestiona mai multe versiuni ale pachetelor fără a utiliza `/etc/apt/preferences` și este destul de intuitiv.

### 2.2.2. Operații de bază de gestionare a pachetelor din linia de comandă

Iată operațiile de bază pentru gestionarea pachetelor din linia de comandă, folosind `apt`(8), `aptitude`(8) și `apt-get`(8) /`apt-cache`(8).

Tabel 2.6. Operații de bază de gestionare a pachetelor din linia de comandă folosind `apt`(8), `aptitude`(8) și `apt-get`(8) /`apt-cache`(8)

sintaxa `apt` | sintaxa `aptitude` | sintaxa `apt-get`/`apt-cache` | descriere
--- | --- | --- | ---
`apt update` | `aptitude update` | `apt-get update` | actualizează metadatele arhivei pachetelor
`apt install foo` | `aptitude install foo` | `apt-get install foo` | instalează versiunea candidată a pachetului „`foo`” împreună cu dependențele sale
`apt upgrade` | `aptitude safe-upgrade` | `apt-get upgrade` | instalează versiunea candidată a pachetelor instalate fără a elimina alte pachete
`apt full-upgrade` | `aptitude full-upgrade` | `apt-get dist-upgrade` | instalați versiunea candidată a pachetelor instalate, eliminând alte pachete dacă este necesar
`apt remove foo` | `aptitude remove foo` | `apt-get remove foo` | eliminați pachetul „`foo`” lăsând în același timp fișierele sale de configurare
`apt autoremove` | N/D | `apt-get autoremove` | elimină pachetele instalate automat care nu mai sunt necesare
`apt purge foo` | `aptitude purge foo` | `apt-get purge foo` | șterge pachetul „`foo`” împreună cu fișierele sale de configurare
`apt clean` | `aptitude clean` | `apt-get clean` | șterge complet depozitul local de fișiere ale pachetelor preluate (descărcate)
`apt autoclean` | `aptitude autoclean` | `apt-get autoclean` | șterge din depozitul local fișierele pachetelor descărcate pentru pachetele învechite
`apt show foo` | `aptitude show foo` | `apt-cache show foo` | afișează informații detaliate despre pachetul „`foo`”
`apt search expresie-regulată` | `aptitude search expresie-regulată` | `apt-cache search expresie-regulată` | căută pachetele care corespund cu expresia-regulată
N/D | `aptitude why expresie-regulată` | N/D | explică motivul pentru care ar trebui instalate pachetele care corespund cu expresia-regulată
N/D | `aptitude why-not expresie-regulată` | N/D | explică motivul pentru care pachetele care corespund cu expresia-regulată nu pot fi instalate
`apt list --manual-installed` | `aptitude search '~i!~M'` | `apt-mark showmanual` | listează pachetele instalate manual

`apt` / `apt-get` și `aptitude` pot fi combinate fără probleme majore.

„`aptitude why rexpresie-regulată`” poate afișa mai multe informații prin „`aptitude -v why expresie-regulată`”. Informații similare pot fi obținute prin „`apt rdepends pachet`” sau „`apt-cache rdepends pachet`”.

Când comanda `aptitude` este pornită în modul linie de comandă și întâmpină unele probleme, cum ar fi conflicte între pachete, puteți trece la modul interactiv pe ecran complet apăsând tasta «`e`» în prompt.

| Notă
Deși comanda `aptitude` vine cu funcții bogate, cum ar fi rezolvatorul de pachete îmbunătățit, această complexitate a cauzat (sau poate încă cauzează) unele regresii, cum ar fi Eroarea #411123, Eroarea #514930 și Eroarea #570377. În caz de îndoială, vă rugăm să utilizați comenzile `apt`, `apt-get` și `apt-cache` în locul comenzii `aptitude`.

Puteți furniza opțiuni de comandă imediat după „`aptitude`”.

Tabel 2.7. Opțiuni de comandă demne de menționat pentru `aptitude`(8)

opțiunea de comandă | descriere
--- | ---
`-s` | simulează rezultatul comenzii
`-d` | doar descărcare, fără instalare/actualizare
`-D` | afișează explicații succinte înainte de instalările și dezinstalările automate

Pentru mai multe informații, consultați `aptitude`(8) și „Manualul utilizatorului aptitude” la „`/usr/share/doc/aptitude/README`”.

### 2.2.3. Utilizarea interactivă a «aptitudie»

Pentru gestionarea interactivă a pachetelor, porniți `aptitude` în modul interactiv din promptul consolei shell, după cum urmează.

    $ sudo aptitude -u
    Password:

Aceasta actualizează copia locală a informațiilor din arhivă și afișează lista pachetelor pe ecranul complet cu meniu. Aptitude plasează configurația sa în „`~/.aptitude/config`”.

| Indicație
Dacă doriți să utilizați configurația root în locul celei a utilizatorului, utilizați „`sudo -H aptitude …`” în locul „`sudo aptitude …`” în expresia de mai sus.

| Indicație
`Aptitude` stabilește automat acțiunile în așteptare atunci când este pornit interactiv. Dacă nu vă place, puteți să-l reinițializați din meniu: „Acțiune” → „Anulează acțiunile în așteptare”.

### 2.2.4. Combinații de taste pentru aptitude

Tastele demne de menționat pentru a naviga în starea pachetelor și pentru a defini „acțiunea planificată” pentru acestea în acest mod ecran complet sunt următoarele.

Tabel 2.8. Lista combinațiilor de taste pentru «aptitude»

tasta | comanda/funcția asociată
--- | ---
`F10` sau `Ctrl-t` | meniu
`?` | afișează ajutorul pentru apăsarea tastei (listă mai completă)
`F10` → Ajutor → Manualul utilizatorului | Afișează manualul utilizatorului
`u` | actualizează informațiile referitoare la arhiva pachetelor
`+` | marchează pachetul pentru actualizare sau instalare
`-` | marcați pachetul pentru eliminare (păstrează fișierele de configurare)
`_` | marchează pachetul pentru ștergere (elimină fișierele de configurare)
`=` | pune pachetul în așteptare
`U` | marchează toate pachetele care pot fi actualizate (funcționează ca full-upgrade)
`g` | începe descărcarea și instalarea pachetelor selectate
`q` | iese din ecranul curent și salvează modificările
`x` | iese din ecranul curent și înlătură modificările
`Enter` | afișează informații despre un pachet
`C` | afișează jurnalul de modificări al unui pachet
`l` | modifică limita pentru pachetele afișate
`/` | caută prima potrivire
`\` | repetă ultima căutare

Specificația numelui fișierului din linia de comandă și promptul meniului după apăsarea „`l`” și „`//`” utilizează expresia regulată aptitude, așa cum este descrisă mai jos. Expresia regulată aptitude poate potrivi în mod explicit un nume de pachet utilizând un șir care începe cu „`~n`” și este urmat de numele pachetului.

| Indicație
Trebuie să apăsați tasta „`U`” pentru a actualiza toate pachetele instalate la versiunea candidată în interfața vizuală. În caz contrar, numai pachetele selectate și anumite pachete cu dependențe de versiune față de acestea vor fi actualizate la versiunea candidată.

### 2.2.5. Vizualizarea de pachete în aptitude

În modul interactiv pe ecran complet al `aptitude`(8), pachetele din lista de pachete sunt afișate conform exemplului următor.

    idA   libsmbclient                             -2220kB 3.0.25a-1  3.0.25a-2

Aici, această linie înseamnă de la stânga către dreapta, după cum urmează:

- Indicatorul „starea curentă” (prima literă)

- Indicatorul „acțiunea planificată” (a doua literă)

- Indicatorul „automat” (a treia literă)

- Numele pachetului

- Modificarea utilizării spațiului pe disc atribuită „acțiunii planificate”

- Versiunea actuală a pachetului

- Versiunea candidată a pachetului

| Indicație
Lista completă a indicatorilor este afișată în partea de jos a ecranului Ajutor, care apare apăsând «`?`».

Versiunea candidată este aleasă în funcție de preferințele locale curente (vezi `apt_preferences`(5) și Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”).

Mai multe tipuri de vizualizări ale pachetelor sunt disponibile în meniul „`Vizualizări`”.

Tabel 2.9. Lista vizualizărilor pentru aptitude

vizualizarea | descrierea vizualizării
--- | ---
`Vizualizare pachet` | vedeți Tabel 2.10, „Clasificarea vizualizărilor standard ale pachetelor” (implicit)
`Recomandări de auditare` | lista pachetelor recomandate de unele pachete instalate, dar care nu sunt încă instalate
`Lista plană a pachetelor` | lista pachetelor fără categorizare (pentru utilizare cu expresii regulate)
`Navigator debtags` | lista pachetelor clasificate în funcție de intrările lor debtags
`Vizualizare pachet sursă` | lista pachetelor grupate după pachetele sursă

| Notă
Vă rugăm să ne ajutați să îmbunătățim etichetarea pachetelor cu debtags!

Standardul „`Vizualizare pachete`” clasifică pachetele într-un mod similar cu `dselect`, cu câteva caracteristici suplimentare.

Tabel 2.10. Clasificarea vizualizărilor standard ale pachetelor

categoria | descrierea vizualizării
--- | ---
`Pachete actualizabile` | lista pachetele organizate ca `secțiune` → `zonă` → `pachet`
`Pachete noi` | , ,
`Pachete instalate` | , ,
`Pachete neinstalate` | , ,
`Pachete învechite sau create local` | , ,
`Pachete virtuale` | lista pachetelor cu aceeași funcție
`Sarcini` | lista pachetelor cu diferite funcții necesare în general pentru o sarcină

| Indicație
Vizualizarea `Sarcini` poate fi utilizată pentru a selecta pachetele potrivite pentru sarcina dvs.

### 2.2.6. Opțiuni pentru metoda de căutare cu aptitude

Aptitude oferă mai multe opțiuni pentru căutarea pachetelor folosind formula de expresie regulată.

- Linia de comandă shell:

  - «`aptitude search 'expresie-regulată_aptitude'`» pentru a afișa starea instalării, numele pachetului și o scurtă descriere a pachetelor care corespund căutării

  - «`aptitude show 'nume_pachet'`» pentru a afișa descrierea detaliată a pachetului

- Modul interactiv pe ecran complet:

  - „`l`” pentru a limita vizualizarea pachetelor la pachetele care se potrivesc căutării

  - „`/`” pentru căutarea unui pachet care corespunde modelului de căutare

  - „`\`” pentru căutarea înapoi a unui pachet care corespunde modelului de căutare

  - „`n`” pentru căutarea următoarei coincidențe

  - „`N`” pentru căutarea următoarei coincidențe (înapoi)

| Indicație
Șirul pentru nume_pachet este tratat ca fiind exact identic cu numele pachetului, cu excepția cazului în care începe în mod explicit cu „`~`” pentru a fi considerat formulă de expresie regulată.

### 2.2.7. Formula expresiei regulate pentru aptitudine

Formula expresiei regulate aptitude este similară cu cea extinsă mutt ERE (a se vedea Secțiune 1.6.2, „Expresii regulate”), iar semnificațiile extensiilor speciale ale regulilor de potrivire specifice `aptitude` sunt următoarele.

Tabel 2.11. Lista formulelor de expresii regulate pentru aptitude

descrierea regulii extinse de potrivire | formula expresiei regulate
--- | ---
potrivire cu numele pachetului | `~nexpresie-regulată_nume`
potrivire cu descrierea | `~dexpresie-regulată_descriere`
potrivire cu numele sarcinii | `~texpresie-regulată_sarcină`
potrivire cu debtag | `~Gexpresie-regulată_debtag`
potrivire cu resposabilul pachetului | `~mexpresie-regulată_responsabil`
potrivire cu secțiunea pachetului | `~sexpresie-regulată_secțiune`
potrivire cu versiunea pachetului | `~Vexpresie-regulată_versiune`
potrivire cu distribuția | `~A{trixie,forky,sid`}
potrivire cu originea | `~O{debian,…`}
coincidență prioritate | `~p{extra,important,optional,required,standard`}
corespunde cu pachete esențiale | `~E`
corespunde cu pachete virtuale | `~v`
corespunde cu pachete noi | `~N`
potrivire cu acțiunea în așteptare | `~a{install,upgrade,downgrade,remove,purge,hold,keep`}
potrivire cu pachete instalate | `~i`
corespunde pachetelelor instalate cu marca A (pachete instalate automat) | `~M`
corespunde pachetelelor instalate fără marca A (pachete selectate de administrator) | `~i!~M`
potrivire cu pachete instalate și actualizabile | `~U`
potrivire cu pachete eliminate, dar nu șterse | `~c`
potrivire cu pachete eliminate, șterse sau care pot fi eliminate | `~g`
potrivire cu pachete care declară o dependență ruptă | `~b`
potrivire cu pachete care declară o dependență ruptă de tipul | `~Btipul`
corespunde cu modelul de pachete care declară o dependență de tipul | `~D[tipul:]modelul`
corespunde cu modelul de pachete care declară o dependență ruptă de tipul | `~DB[tipul:]modelul`
corespunde cu pachetele pentru care modelul de potrivire corespunde pachetelor care declară o dependență de tipul | `~R[tipul:]modelul`
corespunde cu pachetele pentru care modelul de potrivire corespunde pachetelor care declară o dependență ruptă de tipul | `~RB[tipul:]modlul`
corespunde cu pachetele de care depind alte pachete instalate | `~R~i`
corespunde cu pachetele de care nu depind alte pachete instalate | `!~R~i`
corespunde cu pachetele de care depind sau pe care le recomandă alte pachete instalate | `~R~i|~Rrecommends:~i`
potrivire cu modelul de pachet filtrat după versiune | `~S filtru-versiune model`
corespunde cu toate pachetele (adevărat) | `~T`
nu corespunde cu niciun pachet (fals) | `~F`

- Partea expresie-regulată este aceeași ERE ca cea utilizată în instrumentele text tipice de tip Unix care utilizează „`^`”, „`.*`”, „`$`” etc., ca în `egrep`(1), `awk`(1) și `perl`(1).

- tipul de dependență este unul dintre (depends, predepends, recommends, suggests, conflicts, replaces, provides) care specifică interrelația dintre pachete.

- Tipul implicit de dependență este „depends”.

| Indicație
Când modelul_expresie-regulată este un șir nul, plasați „`~T`” imediat după comandă.

Iată câteva scurtături.

- „`~Ptermen`” == „`~Dprovides:termen`”

- „`~Ctermen`” == „`~Dconflicts:termen`”

- „`…~W termen`” == „`(…|termen)`”

Utilizatorii familiarizați cu `mutt` învață repede, deoarece mutt a fost sursa de inspirație pentru sintaxa expresiilor. Consultați „CĂUTARE, LIMITARE ȘI EXPRESII - (SEARCHING, LIMITING, AND EXPRESSIONS)” în „Manualul utilizatorului” „`/usr/share/doc/aptitude/README`”.

| Notă

Cu versiunea `lenny` a `aptitude`(8), noua sintaxă de formă lungă, cum ar fi „`?broken`”, poate fi utilizată pentru potrivirea expresiilor regulate în locul vechii sale echivalente de formă scurtă „`~b`”. Acum, caracterul spațiu „`` ” este considerat unul dintre caracterele de terminare a expresiilor regulate, pe lângă caracterul tilde „`~`”. Consultați „Manualul utilizatorului” pentru noua sintaxă de formă lungă.

### 2.2.8. Rezolvarea dependențelor de către aptitude

Selectarea unui pachet în `aptitude` nu numai că extrage pachetele definite în lista „`Depends:`”, ci și pe cele definite în lista „`Recommends:`”, dacă meniul „`F10` → Opțiuni → Preferințe → Gestionarea dependențelor” este configurat corespunzător. Aceste pachete instalate automat sunt eliminate automat dacă nu mai sunt necesare în `aptitude`.

Indicatorul care controlează comportamentul „instalării automate” al comenzii `aptitude` poate fi, de asemenea, manipulat folosind comanda `apt-mark`(8) din pachetul `apt`.

### 2.2.9. Jurnale de activitate ale pachetelor

Puteți verifica istoricul activității pachetului în fișierele jurnal.

Tabel 2.12. Fișierele jurnal pentru activitățile pachetului

fișier | conținut
--- | ---
`/var/log/dpkg.log` | Jurnalul activității la nivel `dpkg` pentru activitățile tuturor pachetelor
`/var/log/apt/term.log` | Jurnalul activității APT generice
`/var/log/aptitude` | Jurnalul activității comenzii `aptitude`

În realitate, nu este atât de ușor să obții rapid informații relevante din aceste jurnale. Vedeți Secțiune 9.3.9, „Înregistrarea modificărilor din fișierele de configurare” pentru o metodă mai simplă.

## 2.3. Exemple de operații cu aptitudine

Iată câteva exemple de operații cu `aptitude`(8).

### 2.3.1. Căutarea de pachete interesante

Puteți căuta pachete care să vă satisfacă nevoile cu ajutorul `aptitude` din descrierea pachetului sau din lista aflată sub „Sarcini”.

### 2.3.2. Listarea pachetelor care se potrivesc cu expresia regulată în numele pachetelor

Următoarea comandă listează pachetele cu potriviri de expresie regulată în numele pachetelor.

    $ aptitude search '~n(pam|nss).*ldap'
    p libnss-ldap - NSS module for using LDAP as a naming service
    p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces

Acest lucru este foarte util pentru a găsi numele exact al unui pachet.

### 2.3.3. Navigarea prin rezultatul potrivirilor expresiei regulate

Expresia regulată „`~dipv6`” din vizualizarea „Listă nouă plană de pachete” cu promptul „`l`” limitează vizualizarea la pachetele cu descrierea care coincide cu expresia și vă permite să răsfoiți informațiile acestora în mod interactiv.

### 2.3.4. Stergerea definitivă a pachetelor eliminate

Puteți șterge toate fișierele de configurare rămase ale pachetelor eliminate.

Verificați rezultatele următoarei comenzi.

    # aptitude search '~c'

Dacă considerați că pachetele listate pot fi șterse, executați următoarea comandă.

    # aptitude purge '~c'

Puteți face același lucru în modul interactiv pentru un control mai precis.

Introduceți expresia regulată „`~c`” în vizualizarea «Vizualizare pachet nou» cu promptul „`l`”. Aceasta limitează vizualizarea pachetului numai la pachetele care corespund expresiei regulate, adică „eliminate, dar nu șterse”. Toate aceste pachete care corespund expresiei regulate pot fi afișate apăsând „`[`” în titlurile de nivel superior.

Apoi apăsați „`_`” în titlurile de nivel superior, cum ar fi „Pachete neinstalate”. Numai pachetele care corespund expresiei regulate din titlu sunt marcate pentru a fi șterse. Puteți exclude unele pachete de la ștergere apăsând „`=`” în mod interactiv pentru fiecare dintre ele.

Această tehnică este destul de utilă și funcționează pentru multe alte taste de comandă.

### 2.3.5. Reorganizarea stării instalării automate/manuale

Iată cum ordonez starea instalării automate/manuale pentru pachete (după utilizarea unui program de instalare a pachetelor non-aptitude etc.).

1. Lansați `aptitude` în modul interactiv ca root.

2. Tastați „`u`”, „`U`”, „`f`” și „`g`” pentru a actualiza și a îmbunătăți lista de pachete și pachetele.

3. Tastați „`l`” pentru a introduce limita de afișare a pachetelor ca „`~i(~R~i|~Rrecommends:~i)`” și tastați „`M`” peste „`Pachete instalate`” ca instalate automat.

4. Tastați „`l`” pentru a introduce limita de afișare a pachetelor ca „`~prequired|~pimportant|~pstandard|~E`” și tastați „`m`” peste „`Pachete instalate`” ca instalate manual.

5. Tastați „`l`” pentru a introduce limita de afișare a pachetelor ca „`~i!~M`” și eliminați pachetele neutilizate tastând „`-`” peste fiecare dintre ele după ce le-ați expus tastând „`[`” peste „`Pachete instalate`”.

6. Tastați „`l`” pentru a introduce limita de afișare a pachetelor ca „`~i`”; apoi tastați „`m`” peste „`Sarcini`” pentru a marca pachetele respective ca fiind instalate manual.

7. Ieșiți din `aptitude`.

8. Lansați „`apt-get -s autoremove|less`” ca root pentru a verifica ce nu este utilizat.

9. Reporniți `aptitude` în modul interactiv și marcați pachetele necesare ca „`m`”.

10. Reporniți „`apt-get -s autoremove|less`” ca root pentru a verifica din nou că REMOVED conține numai pachetele așteptate.

11. Porniți „`apt-get autoremove|less`” ca root pentru a elimina automat pachetele neutilizate.

Acțiunea „`m`” asupra „`Tasks`” este opțională, pentru a preveni situații de eliminare în masă a pachetelor în viitor.

### 2.3.6. Actualizare la nivel de sistem

| Notă

Când treceți la o nouă versiune etc., ar trebui să luați în considerare efectuarea unei instalări curate a noului sistem, chiar dacă Debian poate fi actualizat așa cum este descris mai jos. Acest lucru vă oferă șansa de a elimina fișierele inutile acumulate și vă expune la cea mai bună combinație de pachete recente. Desigur, ar trebui să faceți o copie de rezervă completă a sistemului într-un loc sigur (consultați Secțiune 10.2, „Backup and recovery”) înainte de a face acest lucru. Vă recomand să configurați un sistem de pornire duală utilizând partiții diferite pentru a avea o tranziție cât mai lină.

Puteți efectua o actualizare la nivel de sistem la o versiune mai nouă modificând conținutul listei de surse pentru a indica o nouă versiune și executând comanda „`apt update; apt dist-upgrade`”.

Pentru a actualiza de la `stable` la `testing` sau `unstable` în timpul ciclului de lansare `trixie`-ca-`stable`, înlocuiți „`trixie` ” din exemplul listei sursă din Secțiune 2.1.5, „Noțiuni de bază despre arhiva Debian” cu „`forky`” sau „`sid`”.

În realitate, este posibil să întâmpinați unele complicații din cauza unor probleme legate de tranziția pachetelor, în principal din cauza dependențelor pachetelor. Cu cât diferența dintre versiuni este mai mare, cu atât este mai probabil să întâmpinați probleme mai mari. Pentru tranziția de la vechiul `stable` la noul `stable` după lansarea acestuia, puteți citi noile Note de lansare și să urmați procedura exactă descrisă în acestea pentru a minimiza problemele.

Când decideți să treceți de la `stable` la `testing` înainte de lansarea oficială, nu există Note de lansare care să vă ajute. Diferența dintre `stable` și `testing` ar putea fi destul de mare după lansarea anterioară a `stable`, ceea ce complică situația actualizării.

Ar trebui să luați măsuri de precauție pentru actualizarea completă, în timp ce colectați cele mai recente informații din lista de distribuție și folosiți bunul simț.

1. Citiți „Notele de lansare” anterioare.

2. Faceți o copie de rezervă a întregului sistem (în special a datelor și informațiilor de configurare).

3. Aveți la îndemână un suport de pornire pentru cazul în care se strică încărcătorul de pornire.

4. Informați utilizatorii cu privire la sistem cu suficient timp înainte.

5. Înregistrați activitatea de actualizare cu `script`(1).

6. Aplicați „unmarkauto” pachetelor necesare, de exemplu, „`aptitude unmarkauto vim`”, pentru a preveni eliminarea.

7. Reduceți la minimum pachetele instalate pentru a diminua riscul de conflicte între pachete, de exemplu, eliminați pachetele de sarcini de medii grafice de birou.

8. Eliminați fișierul „`/etc/apt/preferences`” (dezactivați apt-pinning).

9. Încercați să faceți actualizarea pas cu pas: `oldstable` → `stable` → `testing` → `unstable`.

10. Actualizați lista surselor pentru a indica numai noua arhivă și rulați „`aptitude update`”.

11. Instalați, opțional, mai întâi noile pachete de bază, de exemplu, «`aptitude install perl`».

12. Rulați comanda «`apt-get -s dist-upgrade`» pentru a evalua impactul.

13. În cele din urmă, executați comanda «`apt-get dist-upgrade`».

| Atenție
Nu este recomandat să săriți peste versiunile majore Debian atunci când faceți actualizări între versiunile `stable` (stabile).

| Atenție
În „Notele de lansare” anterioare, GCC, Linux Kernel, initrd-tools, Glibc, Perl, lanțul de instrumente APT etc. au necesitat o atenție specială pentru actualizarea la nivel de sistem.

| Atenție
„Notele de lansare” pot să nu acopere toate cazurile posibile. Dacă modificați configurațiile de nivel inferior, următoarea actualizare poate eșua grav, generând „... eroare de segmentare după actualizare ...”.

Pentru actualizări zilnice în `unstable`, consultați Secțiune 2.4.3, „Protejarea împotriva problemelor legate de pachete”.

## 2.4. Operații avansate de gestionare a pachetelor

### 2.4.1. Operații avansate de gestionare a pachetelor din linia de comandă

Iată o listă cu alte opereții de gestionare a pachetelor pentru care `aptitude` este prea complex sau nu dispune de funcționalitățile necesare.

Tabel 2.13. Lista operațiilor avansate de gestionare a pachetelor

comanda | acțiunea
--- | ---
`COLUMNS=120 dpkg -l model_nume-pachet` | afişează starea unui pachet instalat pentru raportul de eroare
`dpkg -L nume-pachet` | afișează conținutul unui pachet instalat
`dpkg -L nume-pachet | egrep '/usr/share/man/man.*/.+'` | listează paginile de manual pentru un pachet instalat
`dpkg -S model_nume-pachet` | listează pachetele instalate care au numele de fișier ce coincide cu modelul
`apt-file search model_nume-fișier` | listează pachetele din arhivă care au numele de fișier ce coincide cu modelul
`apt-file list model_nume-pachet` | listează conținutul pachetelor din arhivă ce coincide cu modelul
`dpkg-reconfigure nume-pachet` | reconfigurează pachetul specificat
`dpkg-reconfigure -plow nume-pachet` | reconfigurează pachetul specificat cu nivelul de chestionare cel mai detaliat (ridicat)
`configure-debian` | reconfigurează pachetele selectate din meniul pe ecran complet
`dpkg --audit` | sistemul de auditare pentru pachete instalate parțial
`dpkg --configure -a` | configurează toate pachetele instalate parțial
`apt-cache policy nume-pachet-binar` | afișează versiunea disponibilă, prioritatea și informațiile de arhivă ale unui pachet binar
`apt-cache madison nume-pachet` | afișează versiunea disponibilă, informații privind arhiva unui pachet
`apt-cache showsrc nume-pachet-binar` | afișează informațiile despre pachetul sursă al unui pachet binar
`apt-get build-dep nume-pachet` | instalează pachete necesare pentru a construi pachetul
`aptitude build-dep nume-pachet` | instalează pachete necesare pentru a construi pachetul
`apt-get source nume-pachet` | descarcă pachetul sursă (din arhiva standard)
`dget adresa URL pentru fișierul dsc` | descarcă pachetele sursă (din altă arhivă)
`dpkg-source -x nume-pachet_versiunea-revizia-debian.dsc` | construiește un arbore sursă dintr-un set de pachete sursă („`*.orig.tar.gz`” și „`*.debian.tar.gz`”/„`*.diff.gz`”)
`debuild binary` | construiește pachete dintr-un arbore sursă local
`make-kpkg kernel_image` | construiește un pachet de nucleu dintr-un arbore sursă de nucleu
`make-kpkg --initrd kernel_image` | construiește un pachet de nucleu dintr-un arbore sursă de nucleu cu initramfs activat
`dpkg -i nume-pachet_versiunea-revizia-debian_arhitectura.deb` | instalează un pachet local în sistem
`apt install /ruta/la/nume-fișier_pachet.deb` | instalează un pachet local în sistem, încercând în același timp să rezolve automat dependențele
`debi nume-pachet_versiunea-revizia-debian_arhitectura.dsc` | instalează pachetul (pachetele) local(e) în sistem
`dpkg --get-selections '*' >selection.txt` | salvează informații despre starea selecției pachetului la nivel `dpkg`
`dpkg --set-selections <selection.txt` | definește informațiile privind starea selecției pachetelor la nivel `dpkg`
`echo nume-pachet hold | dpkg --set-selections` | definește starea de selecție a pachetului la nivel `dpkg` pentru un pachet la hold (echivalent cu „`aptitude hold nume_pachet`”)

| Notă
Pentru un pachet cu caracteristica multi-arch, poate fi necesar să specificați numele arhitecturii pentru unele comenzi. De exemplu, utilizați «`dpkg -L libglib2.0-0:amd64`» pentru a afișa conținutul pachetului `libglib2.0-0` pentru arhitectura `amd64`.

| Atenție

Instrumentele de nivel inferior, precum „`dpkg -i …`” și „`debi …`”, trebuie utilizate cu precauție de către administratorul de sistem. Acestea nu se ocupă automat de dependențele necesare ale pachetelor. Opțiunile liniei de comandă Dpkg „`--force-all`” și similare (vezi `dpkg`(1)) sunt destinate utilizării numai de către experți. Utilizarea acestora fără a înțelege pe deplin efectele lor poate duce la deteriorarea întregului sistem.

Vă rugăm să rețineți următoarele:

- Toate comenzile de configurare și instalare a sistemului trebuie rulate din contul root.

- Spre deosebire de `aptitude`, care utilizează expresii regulate (a se vedea Secțiune 1.6.2, „Expresii regulate”), alte comenzi de gestionare a pachetelor utilizează modele precum modelele globale de shell „shell glob” (a se vedea Secțiune 1.5.6, „Facilitatea glob a shell-ului”).

- `apt-file`(1) furnizat de pachetul `apt-file` trebuie să execute în prealabil comanda «`apt-file update`».

- `configure-debian`(8) furnizat de pachetul `configure-debian` rulează `dpkg-reconfigure`(8) ca motor.

- `dpkg-reconfigure`(8) rulează scripturi de pachete folosind `debconf`(1) ca motor.

- Comenzile «`apt-get build-dep`», «`apt-get source`» și «`apt-cache showsrc`» necesită introducerea unei intrări „`deb-src`” în lista surselor.

- `dget`(1), `debuild`(1) și `debi`(1) necesită pachetul `devscripts`.

- Consultați procedura de (re)împachetare folosind «`apt-get source`» în Secțiune 2.7.13, „Adaptarea unui pachet la sistemul stabil”.

- Comanda `make-kpkg` necesită pachetul `kernel-package` (a se vedea Secțiune 9.10, „Nucleul”).

- Consultați Secțiune 12.9, „Crearea pachetului Debian” pentru informații generale despre împachetare.

### 2.4.2. Verificarea fișierelor pachetului instalat

Instalarea `debsums` permite verificarea fișierelor pachetelor instalate în raport cu valorile MD5sum din fișierul „`/var/lib/dpkg/info/*.md5sums`” cu `debsums`(1). Consultați Secțiune 10.3.5, „Suma MD5” pentru a afla cum funcționează MD5sum.

| Notă
Deoarece baza de date MD5sum poate fi modificată de către intrus, `debsums`(1) are o utilitate limitată ca instrument de securitate. Este util doar pentru verificarea modificărilor locale efectuate de administrator sau a daunelor cauzate de erori ale suportului media.

### 2.4.3. Protejarea împotriva problemelor legate de pachete

Mulți utilizatori preferă să urmeze versiunile de testare „testing” (sau instabile „unstable”) ale sistemului Debian pentru noile sale caracteristici și pachete. Acest lucru face ca sistemul să fie mai predispus la erori critice ale pachetelor.

Instalarea pachetului `apt-listbugs` vă protejează sistemul împotriva erorilor critice, verificând automat Debian BTS pentru erori critice atunci când actualizați cu sistemul APT.

Instalarea pachetului `apt-listchanges` oferă știri importante din „`NEWS.Debian`” atunci când se efectuează actualizarea cu sistemul APT.

### 2.4.4. Căutarea în metadatele pachetului

Deși vizitarea sitului Debian https://packages.debian.org/ facilitează în prezent căutarea ușoară a metadatelor pachetelor, să analizăm câteva metode mai tradiționale.

Comenzile `grep-dctrl`(1), `grep-status`(1) și `grep-available`(1) pot fi utilizate pentru a căuta orice fișier care are formatul general al unui fișier de control al pachetului Debian.

„`dpkg -S model_nume-fișier`” poate fi utilizat pentru a căuta numele pachetelor care conțin fișiere cu numele corespunzător instalate de `dpkg`. Dar acest lucru ignoră fișierele create de scripturile administratorului.

Dacă trebuie să efectuați o căutare mai detaliată în metadatele dpkg, trebuie să rulați comanda «`grep -e model_expresie-regulată *`» în directorul „`/var/lib/dpkg/info/`”. Astfel, veți căuta cuvintele menționate în scripturile pachetului și în textele de interogare ale instalării.

Dacă doriți să căutați recursiv dependențele pachetelor, trebuie să utilizați `apt-rdepends`(8).

## 2.5. Detalii interne privind gestionarea pachetelor Debian

Să învățăm cum funcționează sistemul de gestionare a pachetelor Debian la nivel intern. Acest lucru ar trebui să vă ajute să creați propria soluție pentru unele probleme legate de pachete.

### 2.5.1. Metadate de arhivă

Fișierele cu metadate pentru fiecare distribuție sunt stocate în „`dist/codename`” pe fiecare sit oglindă Debian, de exemplu „`http://deb.debian.org/debian/`”. Structura arhivei poate fi răsfoită cu ajutorul navigatorului web. Există 6 tipuri de metadate cheie.

Tabel 2.14. Conținutul metadatelor arhivei Debian

fișier | locație | conținut
--- | --- | ---
`Release` | partea superioară a distribuției | descrierea arhivei și informații privind integritatea
`Release.gpg` | partea superioară a distribuției | fișierul de semnătură pentru fișierul „`Release`” semnat cu cheia arhivei
`Contents-arhitectura` | partea superioară a distribuției | lista tuturor fișierelor pentru toate pachetele din arhiva relevantă
`Release` | partea superioară a fiecărei combinații distribuție/secțiune/arhitectură | descrierea arhivei utilizată pentru regula `apt_preferences`(5)
`Packages` | partea superioară a fiecărei combinații distribuție/secțiune/arhitectură binară | `debian/control` concatenat pentru pachetele binare
`Sources` | partea superioară a fiecărei combinații distribuție/secțiune/sursă | `debian/control` concatenat pentru pachetele sursă

În arhiva recentă, aceste metadate sunt stocate sub formă de fișiere comprimate și diferențiale pentru a reduce traficul de rețea.

### 2.5.2. Fișierul „Release” de nivel superior și autenticitatea

| Indicație
Fișierul de nivel superior „`Release`” este utilizat pentru semnarea arhivei în cadrul sistemului APT securizat.

Fiecare suită din arhiva Debian are un fișier de nivel superior „`Release`”, de exemplu „`http://deb.debian.org/debian/dists/unstable/Release`”, după cum urmează.

    Origin: Debian
    Label: Debian
    Suite: unstable
    Codename: sid
    Date: Sat, 14 May 2011 08:20:50 UTC
    Valid-Until: Sat, 21 May 2011 08:20:50 UTC
    Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
    Components: main contrib non-free
    Description: Debian x.y Unstable - Not Released
    MD5Sum:
     bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz
     9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz
     3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz
    ...

| Notă
Aici puteți găsi motivele pentru care folosesc termenii „suită” și „nume în cod” în Secțiune 2.1.5, „Noțiuni de bază despre arhiva Debian”. Termenul „distribuție” este folosit atunci când se face referire atât la „suită”, cât și la „numele în cod”. Toate numele „secțiunilor” oferite de arhivă sunt listate la „Componente”.

Integritatea fișierului de nivel superior „`Release`” este verificată de infrastructura criptografică numită secure apt (apt securizat), așa cum este descrisă în `apt-secure`(8).

- Fișierul cu semnătura criptografică „`Release.gpg`” este creat din fișierul autentic de nivel superior „`Release`” și cheia secretă a arhivei Debian.

- Cheile publice ale arhivei Debian sunt instalate local de cel mai recent pachet `debian-archive-keyring`.

- Sistemul secure APT verifică automat integritatea fișierului de nivel superior „`Release`” descărcat, prin criptare, cu ajutorul fișierului „`Release.gpg`” și al cheilor publice ale arhivei Debian instalate local.

- Integritatea tuturor fișierelor „`Packages`” și „`Sources`” este verificată utilizând valorile MD5sum din fișierul de nivel superior „`Release`”. Integritatea tuturor fișierelor pachetului este verificată utilizând valorile MD5sum din fișierele „`Packages`” și „`Sources`”. Consultați `debsums`(1) și Secțiune 2.4.2, „Verificarea fișierelor pachetului instalat”.

- Deoarece verificarea semnăturii criptografice este un proces mult mai intens pentru CPU decât calcularea valorii MD5sum, utilizarea valorii MD5sum pentru fiecare pachet în timp ce se utilizează semnătura criptografică pentru fișierul de nivel superior „`Release`” oferă o bună securitate cu performanță (a se vedea Secțiune 10.3, „Data security infrastructure”).

Dacă intrarea listei sursă specifică opțiunea „`signed-by`”, integritatea fișierului „`Release`” de nivel superior descărcat este verificată folosind cheia publică specificată. Acest lucru este util atunci când lista sursă conține arhive non-Debian.

| Indicație
Utilizarea comenzii `apt-key`(8) pentru gestionarea cheilor APT este depreciată.

De asemenea, puteți verifica manual integritatea fișierului „`Release`” cu fișierul „`Release.gpg`” și cheia publică a arhivei Debian publicată pe ftp-master.debian.org folosind `gpg`.

### 2.5.3. Fișiere „Release” la nivel de arhivă

| Indicație
Fișierele „`Release`” la nivel de arhivă sunt utilizate pentru regula `apt_preferences`(5).

Există fișiere „`Release`” la nivel de arhivă pentru toate locațiile de arhivă specificate de lista sursă, cum ar fi „`http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release`” sau „`http://deb.debian.org/debian/dists/sid/main/binary-amd64/Release`”, după cum urmează.

    Archive: unstable
    Origin: Debian
    Label: Debian
    Component: main
    Architecture: amd64

| Atenție
Pentru strofa „`Archive:`”, numele suitei („`stable`”, „`testing`”, „`unstable`”, …) sunt utilizate în arhiva Debian, în timp ce numele în cod („`trusty`”, „`xenial`”, „`artful`”, …) sunt utilizate în arhiva Ubuntu.

Pentru unele arhive, cum ar fi `experimental` și `trixie -backports`, care conțin pachete care nu trebuie instalate automat, există o linie suplimentară, de exemplu, „`http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release`”, după cum urmează.

    Archive: experimental
    Origin: Debian
    Label: Debian
    NotAutomatic: yes
    Component: main
    Architecture: amd64

Vă rugăm să rețineți că pentru arhivele normale fără „`NotAutomatic: yes`”, valoarea implicită a Pin-Priority este 500, în timp ce pentru arhivele speciale cu „`NotAutomatic: yes`”, valoarea implicită a Pin-Priority este 1 (consultați `apt_preferences`(5) și Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”).

### 2.5.4. Preluarea metadatelor pentru pachet

Când se utilizează instrumentele APT, cum ar fi `aptitude`, `apt-get`, `synaptic`, `apt-file`, `auto-apt`, …, trebuie să actualizăm copiile locale ale metadatelor care conțin informațiile din arhiva Debian. Aceste copii locale au următoarele nume de fișiere corespunzătoare numelor specificate `distribuție`, `secțiune` și `arhitectură` din lista surselor (a se vedea Secțiune 2.1.5, „Noțiuni de bază despre arhiva Debian”).

- „`/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_Release`”

- „`/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_Release.gpg`”

- „`/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_secțiunea_binary-arhitectura_Packages`”

- „`/var/lib/apt/lists/deb.debian.org_debian_dists_distribuția_secțiunea_source_Sources`”

- „`/var/cache/apt/apt-file/deb.debian.org_debian_dists_distribuția_Contents-arhitectura.gz`" (pentru `apt-file`)

Primele 4 tipuri de fișiere sunt comune tuturor comenzilor APT relevante și sunt actualizate din linia de comandă prin „`apt-get update`” sau „`aptitude update`”. Metadatele „`Packages`” sunt actualizate dacă „`deb`” este specificat în lista de surse. Metadatele „`Sources`” sunt actualizate dacă „`deb-src`” este specificat în lista de surse.

Metadatele „`Packages`” și „`Sources`” conțin „`Filename:`” care indică locația fișierului pachetelor binare și sursă. În prezent, aceste pachete se află în arborele de directoare „`pool/`” pentru o tranziție îmbunătățită între versiuni.

Copiile locale ale metadatelor „`Packages`” pot fi căutate interactiv cu ajutorul `aptitude`. Comanda de căutare specializată `grep-dctrl`(1) poate căuta copii locale ale metadatelor „`Packages`” și „`Sources`”.

Copia locală a metadatelor „`Contents-architecture`” poate fi actualizată cu „`apt-file update`”, iar locația acesteia este diferită de celelalte 4. Consultați `apt-file`(1). (`auto-apt` utilizează o locație diferită pentru copia locală a „`Contents-architecture.gz`” ca locație implicită.)

### 2.5.5. Starea pachetului pentru APT

În plus față de metadatele preluate de la distanță, instrumentul APT după `lenny` stochează informațiile despre starea instalării generate local în „`/var/lib/apt/extended_states`”, care este utilizat de toate instrumentele APT pentru a urmări toate pachetele instalate automat.

### 2.5.6. Starea pachetului pentru aptitude

În plus față de metadatele preluate de la distanță, comanda `aptitude` stochează informațiile despre starea instalării generate local în „`/var/lib/aptitude/pkgstates`”, care este utilizat numai de aceasta.

### 2.5.7. Copiile locale ale pachetelor descărcate

Toate pachetele descărcate de la distanță prin mecanismul APT sunt stocate în „`/var/cache/apt/archives`” până când sunt șterse.

Această politică de curățare a fișierelor cache pentru `aptitude` poate fi configurată în „`Opțiuni`” → „`Preferințe`” și poate fi forțată prin meniul „`Curăță cache-ul pachetelor`” sau „`Curăță fișierele învechite`” din „`Acțiuni`”.

### 2.5.8. Numele fișierelor pachetelor Debian

Fișierele pachetelor Debian au structuri de nume specifice.

Tabel 2.15. Structura numelor pachetelor Debian

tipul pachetului | structura numelui
--- | ---
Pachetul binar (cunoscut și sub numele de `deb`) | `nume-pachet_versiunea-upstream-revizia-debian_arhitectura.deb`
Pachetul binar pentru debian-installer (cunoscut și sub numele de `udeb`) | `nume-pachet_versiunea-upstream-revizia-debian_arhitectura.udeb`
Pachetul sursă (sursă upstream) | `nume-pachet_versiunea-upstream-revizia-debian.orig.tar.gz`
Pachetul sursă `1.0` (modificări Debian) | `nume=pachet_versiunea-upstream-revizia-debian.diff.gz`
Pachetul sursă `3.0 (quilt)` (modificări Debian) | `nume-pachet_versiunea-upstream-revizia-debian.debian.tar.gz`
Pachetul sursă (descrierea) | `nume-pachet_versiunea-upstream-revizia-debian.dsc`

| Indicație
Aici sunt descrise doar formatele de bază ale pachetelor sursă. Pentru mai multe informații, consultați `dpkg-source`(1).

Tabel 2.16. Caracterele utilizabile pentru fiecare componentă din numele pachetelor Debian

numele componentei | caractere utilizabile (expresie regulată ERE) | existență
--- | --- | ---
`nume-pachet` | `[a-z0-9][-a-z0-9.+]+` | cerut
`epoca:` | `[0-9]+:` | opțional
`versiunea-upstream` | `[-a-zA-Z0-9.+:]+` | cerut
`revizia-debian` | `[a-zA-Z0-9.+~]+` | opțional

| Notă
Puteți verifica ordinea versiunilor pachetelor cu ajutorul comenzii `dpkg`(1), de exemplu, «`dpkg --compare-versions 7.0 gt 7.~pre1 ; echo $?`».

| Notă

Programul de instalare Debian «debian-installer» (d-i) utilizează extensia de fișier `udeb` pentru pachetul său binar, în loc de extensia normală `deb`. Un pachet `udeb` este un pachet `deb` simplificat, din care sunt eliminate câteva conținuturi neesențiale, cum ar fi documentația, pentru a economisi spațiu și a relaxa cerințele politicii privind pachetele. Atât pachetele `deb`, cât și cele `udeb` au aceeași structură. Litera „`u`” înseamnă micro.

### 2.5.9. Comanda «dpkg»

`dpkg`(1) este instrumentul de nivel inferior pentru gestionarea pachetelor Debian. Acesta este foarte puternic și trebuie utilizat cu precauție.

În timpul instalării pachetului numit „`nume-pachet`”, `dpkg` îl procesează în următoarea ordine.

1. Despachetează fișierul deb (echivalentul „`ar -x`”)

2. Execută „`nume-pachet.preinst`” folosind `debconf`(1)

3. Instalează conținutul pachetului în sistem (echivalentul „`tar -x`”)

4. Execută „`nume-pachet.postinst`” folosind `debconf`(1)

Sistemul `debconf` oferă interacțiune standardizată cu utilizatorul, cu suport pentru I18N și L10N (Cap. 8, I18N și L10N).

Tabel 2.17. Fișierele importante create de `dpkg`

fișier | descrierea conținutului
--- | ---
`/var/lib/dpkg/info/nume-pachet.conffiles` | lista fișierelor de configurare. (modificabile de utilizator)
`/var/lib/dpkg/info/nume-pachet.list` | lista fișierelor și directoarelor instalate de pachet
`/var/lib/dpkg/info/nume-pachet.md5sums` | lista valorilor sumelor de control MD5 pentru fișierele instalate de pachet
`/var/lib/dpkg/info/nume-pachet.preinst` | scriptul pachetului care trebuie rulat înainte de instalarea pachetului
`/var/lib/dpkg/info/nume-pachet.postinst` | scriptul pachetului care trebuie rulat după instalarea pachetului
`/var/lib/dpkg/info/nume-pachet.prerm` | scriptul pachetului care trebuie rulat înainte de eliminarea pachetului
`/var/lib/dpkg/info/nume-pachet.postrm` | scriptul pachetului care trebuie rulat după eliminarea pachetului
`/var/lib/dpkg/info/nume-pachet.config` | scriptul pachetului pentru sistemul `debconf`
`/var/lib/dpkg/alternatives/nume-pachet` | informațiile alternative utilizate de comanda `update-alternatives`
`/var/lib/dpkg/available` | informațiile privind disponibilitatea tuturor pachetelor
`/var/lib/dpkg/diversions` | informațiile de redirecționare utilizate de `dpkg`(1) și stabilite de `dpkg-divert`(8)
`/var/lib/dpkg/statoverride` | informațiile de suprascriere a stării utilizate de `dpkg`(1) și stabilite de `dpkg-statoverride`(8)
`/var/lib/dpkg/status` | informațiile privind starea tuturor pachetelor
`/var/lib/dpkg/status-old` | copia de rezervă de prima generație a fișierului „`var/lib/dpkg/status`”
`/var/backups/dpkg.status*` | copia de rezervă de a doua generație și cele mai vechi ale fișierului „`var/lib/dpkg/status`”

Fișierul „`status`” este utilizat și de instrumente precum `dpkg`(1), „`dselect update`” și „`apt-get -u dselect-upgrade`”.

Comanda de căutare specializată `grep-dctrl`(1) poate căuta în copiile locale ale metadatelor „`status`” și „`available`”.

| Indicație
În mediul debian-installer, comanda `udpkg` este utilizată pentru a deschide pachetele `udeb`. Comanda `udpkg` este o versiune simplificată a comenzii `dpkg`.

### 2.5.10. Comanda «update-alternatives»

Sistemul Debian dispune de un mecanism care permite instalarea fără probleme a programelor care se suprapun într-o oarecare măsură, folosind `update-alternatives`(1). De exemplu, puteți face ca comanda `vi` să selecteze rularea `vim` în timp ce instalați atât pachetul `vim`, cât și pachetul `nvi`.

    $ ls -l $(type -p vi)
    lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi
    $ sudo update-alternatives --display vi
    ...
    $ sudo update-alternatives --config vi
      Selection    Command
     ----------------------------------------------
          1        /usr/bin/vim
    *+    2        /usr/bin/nvi

    Enter to keep the default[*], or type selection number: 1

Sistemul Debian alternatives păstrează selecția sa sub formă de legături simbolice în „`/etc/alternatives/`”. Procesul de selecție utilizează fișierul corespunzător din „`/var/lib/dpkg/alternatives/`”.

### 2.5.11. Comanda «dpkg-statoverride»

Suprascrierile de stare furnizate de comanda `dpkg-statoverride`(8) sunt o modalitate de a indica `dpkg`(1) să utilizeze un proprietar sau un mod diferit pentru un fișier atunci când un pachet este instalat. Dacă se specifică „`--update`” și fișierul există, acesta este configurat imediat cu noul proprietar și mod.

| Atenție
Modificarea directă a proprietarului sau a modului pentru un fișier deținut de pachet folosind comenzile `chmod` sau `chown` de către administratorul de sistem este reinițializată la următoarea actualizare a pachetului.

| Notă
Folosesc aici cuvântul fișier, dar în realitate acesta poate fi orice obiect al sistemului de fișiere pe care `dpkg` îl gestionează, inclusiv directoare, dispozitive etc.

### 2.5.12. Comanda «dpkg-divert»

Redirecționările de fișiere furnizate de comanda `dpkg-divert`(8) sunt o modalitate de a forța `dpkg`(1) să nu instaleze un fișier în locația sa implicită, ci într-o locație redirecționată. Utilizarea `dpkg-divert` este destinată scripturilor de întreținere a pachetelor. Utilizarea sa ocazională de către administratorul de sistem este depreciată.

## 2.6. Recuperarea dintr-un sistem defect

Când rulează un sistem `de testare` sau `instabil`, administratorul trebuie să remedieze situația de gestionare defectuoasă a pachetelor.

| Atenție
Unele metode descrise aici sunt acțiuni cu risc ridicat. Ați fost avertizați!

### 2.6.1. Incompatibilitate cu configurația veche a utilizatorului

Dacă un program cu interfață grafică pentru mediul grafic de birou a prezentat instabilitate după o actualizare semnificativă a versiunii din amonte, ar trebui să suspectați o interferență cu fișierele de configurare locale vechi create de acesta. Dacă este stabil sub un cont de utilizator nou creat, această ipoteză este confirmată; (aceasta este o eroare de împachetare și, de obicei, este evitată de către responsabilul Debian al pachetului).

Pentru a restabili stabilitatea, trebuie să mutați fișierele de configurare locale corespunzătoare și să reporniți programul cu interfață grafică. Este posibil să fie necesar să citiți conținutul fișierelor de configurare vechi pentru a recupera informațiile de configurare ulterior. (Nu le ștergeți prea repede.)

### 2.6.2. Erori de stocare în cache ale datelor pachetului

Erorile de stocare în cache a datelor pachetului provoacă erori intrigante, cum ar fi „GPG error: ... invalid: BADSIG ..” cu APT.

Trebuie să ștergeți toate datele din cache cu comanda „`sudo rm -rf /var/lib/apt/*` ” și să încercați din nou. (Dacă se utilizează `apt-cacher-ng`, trebuie să executați și comanda „`sudo rm -rf /var/cache/apt-cacher-ng/*` ”.)

### 2.6.3. Recuperarea cu comanda dpkg

Since `dpkg` is very low level package tool, it can function without network connection.

Let's assume `foo` package was broken and needs to be fixed.

Este posibil să găsiți încă copii cache ale versiunii mai vechi, fără erori, a pachetului `foo` în directorul cache al pachetului: „`/var/cache/apt/archives/`”. (Dacă nu, îl puteți descărca din arhiva https://snapshot.debian.org/ sau îl puteți copia din cache-ul pachetelor unei mașini funcționale.)

Dacă puteți porni sistemul, îl puteți instala folosind următoarea comandă:

    # dpkg -i /path/to/foo_old_version_arch.deb

Dacă încercarea de a instala un pachet în acest mod eșuează din cauza unor încălcări ale dependențelor și trebuie neapărat să faceți acest lucru ca ultimă soluție, puteți ignora dependențele folosind opțiunile „`--ignore-depends`”, „`--force-depends`” și alte opțiuni ale `dpkg`. Dacă faceți acest lucru, trebuie să depuneți eforturi serioase pentru a restabili dependența corespunzătoare ulterior. Consultați `dpkg`(8) pentru detalii.

| Notă
Dacă sistemul dvs. este grav defect, ar trebui să faceți o copie de rezervă completă a sistemului într-un loc sigur (consultați Secțiune 10.2, „Backup and recovery”) și să efectuați o instalare curată. Aceasta consumă mai puțin timp și produce rezultate mai bune în final.

| Indicație
Dacă defecțiunea sistemului este minoră, puteți alternativ să faceți retrogradarea întregului sistem ca în Secțiune 2.7.11, „Retrogradarea de urgență” folosind sistemul APT de nivel superior.

### 2.6.4. Instalare eșuată din cauza dependențelor lipsă

Dacă forțați instalarea unui pachet prin „`sudo dpkg -i ...`” într-un sistem în care nu sunt instalate toate pachetele dependente, instalarea pachetului va eșua, fiind instalat parțial.

You should install all dependency packages by repeatedly using "`sudo dpkg -i ...`" or by using:

    # apt --fix-broken install

Apoi, configurați toate pachetele instalate parțial cu următoarea comandă.

    # dpkg --configure -a

### 2.6.5. Pachete diferite cu fișiere suprapuse

Sistemele de gestionare a pachetelor la nivel de arhivă, precum `aptitude`(8) sau `apt-get`(1), nici măcar nu încearcă să instaleze pachete cu fișiere suprapuse utilizând dependențele pachetelor (a se vedea Secțiune 2.1.7, „Dependențele pachetelor”).

Erorile comise de responsabilul cu întreținerea pachetului sau implementarea unor surse de arhive mixte inconsistente (a se vedea Secțiune 2.7.6, „Pachete din surse mixte de arhive fără apt-pinning”) de către administratorul de sistem pot crea o situație în care dependențele pachetului sunt definite incorect. Când instalați un pachet cu fișiere suprapuse folosind `aptitude`(8) sau `apt-get`(1) într-o astfel de situație, `dpkg`(1), care despachetează pachetul, se asigură că returnează o eroare programului care l-a apelat, fără a suprascrie fișierele existente.

| Atenție
Utilizarea pachetelor terțe introduce riscuri semnificative pentru sistem prin intermediul scripturilor responsabilului cu întreținerea pachetului care sunt rulate cu privilegii de root și pot face orice în sistemul dvs. Comanda `dpkg`(1) protejează doar împotriva suprascrierii prin despachetare.

Puteți remedia o astfel de instalare defectuoasă eliminând mai întâi pachetul vechi care cauzează problema, `pachetul-vechi`.

    $ sudo dpkg -P old-package

### 2.6.6. Remedierea scriptului pachetului defect

Când o comandă din scriptul pachetului returnează o eroare din anumite motive și scriptul se închide cu o eroare, sistemul de gestionare a pachetelor întrerupe acțiunea și pachetele rămân parțial instalate. Când un pachet conține erori în scripturile sale de eliminare, pachetul poate deveni imposibil de eliminat și destul de neplăcut.

Pentru problema scriptului pachetului „`nume-pachet`”, ar trebui să consultați următoarele scripturi ale pachetului.

- „`/var/lib/dpkg/info/nume-pachet.preinst`”

- „`/var/lib/dpkg/info/nume-pachet.postinst`”

- „`/var/lib/dpkg/info/nume-pachet.prerm`”

- „`/var/lib/dpkg/info/nume-pachet.postrm`”

Editați scriptul pachetului problematic din directorul rădăcină folosind următoarele tehnici:

- dezactivați linia problematică precedând-o cu „`#`”

- forțați returnarea succesului prin adăugarea la linia problematică a „`|| true`”

Apoi, configurați toate pachetele instalate parțial cu următoarea comandă.

    # dpkg --configure -a

### 2.6.7. Recuperarea datelor privind selecția pachetelor

Dacă „`/var/lib/dpkg/status`” se corupe din orice motiv, sistemul Debian pierde datele de selecție a pachetelor și suferă grav. Căutați vechiul fișier „`/var/lib/dpkg/status`” în „`/var/lib/dpkg/status-old`” sau „`/var/backups/dpkg.status.*`”.

Păstrarea „`/var/backups/`” într-o partiție separată poate fi o idee bună, deoarece acest director conține multe date importante ale sistemului.

În cazul unei defecțiuni grave, recomand să reinstalați sistemul după ce ați făcut o copie de rezervă a acestuia. Chiar dacă totul din „`/var/`” a dispărut, puteți recupera unele informații din directoarele din „`/usr/share/doc/`” pentru a vă ghida în noua instalare.

Reinstalați sistemul minimal (mediul de birou).

    # mkdir -p /path/to/old/system

Montați sistemul vechi la „`/path/to/old/system/ - (/ruta/către/sistemul/vechi/)`”.

    # cd /path/to/old/system/usr/share/doc
    # ls -1 >~/ls1.txt
    # cd /usr/share/doc
    # ls -1 >>~/ls1.txt
    # cd
    # sort ls1.txt | uniq | less

Apoi vi se prezintă numele pachetelor care trebuie instalate. (Pot exista și unele nume care nu sunt ale pachetelor, cum ar fi „`texmf`”.)

## 2.7. Sfaturi pentru gestionarea pachetelor

Pentru simplitate, exemplele listei surselor din această secțiune sunt prezentate ca „`/etc/apt/sources.list`” într-un stil pe o singură linie după versiunea `trixie`.

### 2.7.1. Cine a încărcat pachetul?

Deși numele responsabilului cu întreținerea pachetului listat în „`/var/lib/dpkg/available`” și „`/usr/share/doc/package_name/changelog`” oferă unele informații despre „cine se află în spatele activității de împachetare”, persoana care a încărcat efectiv pachetul este oarecum necunoscută. `who-uploads`(1) din pachetul `devscripts` identifică persoana care a încărcat efectiv pachetele sursă Debian.

### 2.7.2. Limitarea lățimii de bandă pentru descărcare pentru APT

Dacă doriți să limitați lățimea de bandă de descărcare pentru APT la, de exemplu, 800 Kio/sec (=100 kio/sec), trebuie să configurați APT cu parametrul său de configurare după cum urmează.

    APT::Acquire::http::Dl-Limit "800";

### 2.7.3. Descărcarea și actualizarea automată a pachetelor

Pachetul `apt` vine cu propriul script cron „`/etc/cron.daily/apt`” pentru a sprijini descărcarea automată a pachetelor. Acest script poate fi îmbunătățit pentru a efectua actualizarea automată a pachetelor prin instalarea pachetului `unattended-upgrades`. Acestea pot fi personalizate prin parametrii din „`/etc/apt/apt.conf.d/02backup`” și „`/etc/apt/apt.conf.d/50unattended-upgrades`”, așa cum este descris în „`/usr/share/doc/unattended-upgrades/README`”.

Pachetul `unattended-upgrades` este destinat în principal actualizării de securitate pentru sistemul `stabil`. Dacă riscul de a afecta un sistem `stabil` existent prin actualizarea automată este mai mic decât riscul ca sistemul să fie afectat de un intrus care utilizează o breșă de securitate care a fost remediată prin actualizarea de securitate, ar trebui să luați în considerare utilizarea acestei actualizări automate cu parametrii de configurare următori.

    APT::Periodic::Update-Package-Lists "1";
    APT::Periodic::Download-Upgradeable-Packages "1";
    APT::Periodic::Unattended-Upgrade "1";

Dacă utilizați un sistem `testing` sau `unstable`, nu este recomandat să utilizați actualizarea automată, deoarece aceasta va duce cu siguranță la defectarea sistemului într-o zi. Chiar și în cazul unui astfel de sistem `testing` sau `unstable`, este posibil să doriți să descărcați pachetele în avans pentru a economisi timp pentru actualizarea interactivă cu parametrii de configurare, după cum urmează.

    APT::Periodic::Update-Package-Lists "1";
    APT::Periodic::Download-Upgradeable-Packages "1";
    APT::Periodic::Unattended-Upgrade "0";

### 2.7.4. Actualizări și retro-adaptări (versiuni de software migrate din ramura principală de dezvoltare și adaptate pentru a funcționa cu această versiune)

Există actualizări stabile („`trixie`-updates” în timpul ciclului de lansare `trixie` -ca-`stable`) și arhive backports.debian.org care oferă pachete de actualizare pentru `stable`.

Pentru a utiliza aceste arhive, listați toate arhivele necesare în fișierul „`/etc/apt/sources.list`” după cum urmează.

    deb http://deb.debian.org/debian/ trixie main non-free-firmware contrib non-free
    deb http://security.debian.org/debian-security trixie-security main non-free-firmware contrib non-free
    deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware contrib non-free
    deb http://deb.debian.org/debian/ trixie-backports main non-free-firmware contrib non-free

Nu este necesar să stabiliți explicit valoarea Pin-Priority în fișierul „`/etc/apt/preferences`”. Când apar pachete mai noi, configurația implicită oferă cele mai rezonabile actualizări (consultați Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”).

- Toate pachetele vechi instalate sunt actualizate la versiuni mai noi din `trixie-updates`.

- Numai pachetele mai vechi instalate manual din `trixie-backports` sunt actualizate la versiuni mai noi din `trixie-backports`.

Ori de câte ori doriți să instalați manual un pachet numit „`nume-pachet`” cu dependența sa din arhiva `trixie-backports`, utilizați următoarea comandă în timp ce comutați versiunea țintă cu opțiunea „`-t`”.

    $ sudo apt-get install -t trixie-backports package-name

| Avertisment
Nu instalați prea multe pachete din arhivele backports.debian.org. Acest lucru poate cauza complicații legate de dependențele pachetelor. Consultați Secțiune 2.1.11, „Cum să faceți față cerințelor contradictorii” pentru soluții alternative.

### 2.7.5. Arhive de pachete externe

| Avertisment
Trebuie să știți că pachetul extern obține privilegii de root asupra sistemului dvs. Trebuie să utilizați numai arhiva de pachete externe de încredere. Consultați Secțiune 2.1.11, „Cum să faceți față cerințelor contradictorii” pentru soluții alternative.

Puteți utiliza APT securizat cu arhiva de pachete externe compatibilă cu Debian adăugând-o la lista de surse și fișierul cheie al arhivei în directorul „`/etc/apt/trusted.gpg.d/`”. Consultați `sources.list`(5), `apt-secure`(8) și `apt-key`(8).

### 2.7.6. Pachete din surse mixte de arhive fără apt-pinning

| Atenție
Instalarea pachetelor din surse mixte de arhive nu este acceptată de distribuția oficială Debian, cu excepția combinațiilor de arhive acceptate oficial, cum ar fi `stable` cu actualizări de securitate și stable-updates.

Iată un exemplu de operații pentru a include pachete specifice din versiuni upstream mai noi găsite în `unstable` în timp ce se urmărește `testing` pentru o singură ocazie.

1. Modificați temporar fișierul „`/etc/apt/sources.list`” pentru a include o singură intrare „`unstable`”.

2. Rulați „`aptitude update`”.

3. Rulați „`aptitude install nume-pachet`”.

4. Recuperați fișierul original „`/etc/apt/sources.list`” pentru `testing` .

5. Rulați „`aptitude update`”.

Nu creați fișierul „`/etc/apt/preferences`” și nici nu trebuie să vă faceți griji cu privire la apt-pinning cu această abordare manuală. Dar acest lucru este foarte greoi.

| Atenție
Când utilizați surse mixte de arhive, trebuie să vă asigurați singuri de compatibilitatea pachetelor, deoarece Debian nu o garantează. Dacă există incompatibilități între pachete, puteți deteriora sistemul. Trebuie să fiți capabili să evaluați aceste cerințe tehnice. Utilizarea surselor mixte de arhive aleatorii este o operație complet opțională și nu vă încurajez să o utilizați.

Regulile generale pentru instalarea pachetelor din diferite arhive sunt următoarele.

- Pachetele non-binare („`Architecture: all`”) sunt mai sigure de instalat.

  - pachete de documentație: fără cerințe speciale

  - pachete de programe interpret: trebuie să fie disponibil un interpret compatibil

- Pachetele binare (care nu sunt „`Architecture: all`”) se confruntă de obicei cu multe obstacole și sunt nesigure de instalat.

  - compatibilitatea versiunii bibliotecii (inclusiv „`libc`”)

  - compatibilitatea versiunii programului utilitar asociat

  - compatibilitatea cu ABI a nucleului

  - compatibilitatea cu ABI C++

  - …

| Notă
Pentru a face un pachet mai sigur de instalat, unele pachete comerciale de programe binare ne-libere pot fi furnizate cu biblioteci complet legate static. Ar trebui totuși să verificați problemele de compatibilitate ABI etc. pentru acestea.

| Notă
Cu excepția cazului în care doriți să evitați deteriorarea pachetului pe termen scurt, instalarea pachetelor binare din arhive non-Debian este, în general, o idee proastă. Ar trebui să căutați toate soluțiile tehnice alternative mai sigure disponibile, care sunt compatibile cu sistemul Debian actual (consultați Secțiune 2.1.11, „Cum să faceți față cerințelor contradictorii”).

### 2.7.7. Ajustarea versiunii candidate cu apt-pinning

| Avertisment
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar.

Fără fișierul „`/etc/apt/preferences`”, sistemul APT alege cea mai recentă versiune disponibilă ca versiune candidată utilizând șirul de versiune. Aceasta este starea normală și utilizarea cea mai recomandată a sistemului APT. Toate combinațiile de arhive acceptate oficial nu necesită fișierul „`/etc/apt/preferences`”, deoarece unele arhive care nu ar trebui utilizate ca sursă automată de actualizări sunt marcate ca NotAutomatic și tratate corespunzător.

| Indicație
Regula de comparare a șirurilor de versiuni poate fi verificată, de exemplu, cu „`dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?`” (a se vedea `dpkg`(1)).

Când instalați regulat pachete din surse mixte de arhive (a se vedea Secțiune 2.7.6, „Pachete din surse mixte de arhive fără apt-pinning”), puteți automatiza aceste opereții complicate creând fișierul „`/etc/apt/preferences`” cu intrările corespunzătoare și modificând regula de selecție a pachetelor pentru versiunea candidată, așa cum este descris în `apt_preferences`(5). Aceasta se numește apt-pinning.

Când utilizați apt-pinning, trebuie să vă asigurați singuri de compatibilitatea pachetelor, deoarece Debian nu o garantează. apt-pinning este o operație complet opțională și nu vă încurajez să o utilizați.

Fișierele Release la nivel de arhivă (vedeți Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”) sunt utilizate pentru regula `apt_preferences`(5). Astfel, apt-pinning funcționează numai cu numele „suitei” pentru arhivele Debian normale și arhivele Debian de securitate. (Acest lucru este diferit de arhivele Ubuntu.) De exemplu, puteți face „`Pin: release a=unstable`”, dar nu puteți face „`Pin: release a=sid`” în fișierul „`/etc/apt/preferences`”.

Când utilizați arhive non-Debian ca parte a apt-pinning, trebuie să verificați pentru ce sunt destinate și să verificați credibilitatea acestora. De exemplu, Ubuntu și Debian nu sunt destinate a fi combinate.

| Notă
Chiar dacă nu creați fișierul „`/etc/apt/preferences`” , puteți efectua operații de sistem destul de complexe (consultați Secțiune 2.6.3, „Recuperarea cu comanda dpkg” și Secțiune 2.7.6, „Pachete din surse mixte de arhive fără apt-pinning”) fără apt-pinning.

Iată o explicație simplificată a tehnicii apt-pinning.

Sistemul APT alege pachetul cu cea mai mare prioritate Pin upgrading din sursele de pachete disponibile definite în fișierul „`/etc/apt/sources.list`” ca pachet candidat. Dacă prioritatea Pin a pachetului este mai mare de 1000, această restricție de versiune pentru actualizare este eliminată pentru a permite retrogradarea (vedeți Secțiune 2.7.11, „Retrogradarea de urgență”).

Valoarea „Pin-Priority” a fiecărui pachet este definită de intrările „Pin-Priority” din fișierul „`/etc/apt/preferences`” sau se utilizează valoarea implicită a acestuia.

Tabel 2.18. Lista valorilor notabile (celor mai importante) ale priorității Pin pentru tehnica apt-pinning.

Pin-Priority | efectele apt-pinning asupra pachetului
--- | ---
1001 | instalează pachetul, chiar dacă acest lucru constituie o retrogradare a pachetului
990 | utilizată ca valoare implicită pentru arhiva versiunii țintă
500 | utilizată ca valoare implicită pentru arhiva normală
100 | utilizată ca valoare implicită pentru arhiva NotAutomatic și ButAutomaticUpgrades
100 | utilizată pentru pachetul instalat
1 | utilizată ca valoare implicită pentru arhiva NotAutomatic
-1 | nu instalează niciodată pachetul, chiar dacă este recomandat

Arhiva versiune țintă poate fi definită prin opțiunea liniei de comandă, de exemplu, „`apt-get install -t testing anumit-pachet`”

Arhiva NotAutomatic și ButAutomaticUpgrades este definită de serverul arhivei care are fișierul Release al nivelului arhivei (a se vedea Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”) conținând atât „`NotAutomatic: yes`” și „`ButAutomaticUpgrades: yes`”. Arhiva NotAutomatic este definită de serverul de arhivă care are fișierul Release la nivel de arhivă conținând doar „`NotAutomatic: yes`”.

Situația apt-pinning a pachetului din mai multe surse de arhivă este afișată prin „`apt-cache policy pachet`”.

- O linie care începe cu „`Package pin:`” listează versiunea pachetului pin dacă este definită doar asocierea cu un pachet, de exemplu „`Package pin: 0.190`”.

- Nu există nicio linie cu „`Package pin:`” dacă nu este definită nicio asociere doar cu un pachet.

- Valoarea Pin-Priority asociată doar cu pachetul este listată în partea dreaptă a tuturor șirurilor de versiune, de exemplu, „`0.181 700`”.

- „`0`” este afișat în partea dreaptă a tuturor șirurilor de versiune dacă nu este definită nicio asociere doar cu pachetul, de exemplu, „`0.181 0`”.

- Valorile Pin-Priority ale arhivelor (definite ca „`Package: *`” în fișierul „`/etc/apt/preferences`”) sunt listate în partea stângă a tuturor rutelor de arhivă, de exemplu, „`100 http://deb.debian.org/debian/ trixie-backports/main Packages`”.

### 2.7.8. Blocarea pachetelor instalate de „Recommends”

| Avertisment
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar.

Dacă nu doriți să descărcați automat anumite pachete recomandate, trebuie să creați fișierul „`/etc/apt/preferences`” și să listați în mod explicit toate aceste pachete în partea de sus a acestuia, după cum urmează.

    Package: package-1
    Pin: version *
    Pin-Priority: -1

    Package: package-2
    Pin: version *
    Pin-Priority: -1

### 2.7.9. Urmărirea suitei `testing` cu unele pachete din `unstable`

| Avertisment
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar.

Iată un exemplu de tehnică apt-pinning pentru a include pachete specifice mai noi din versiunea upstream găsite în `unstable` actualizate regulat în timp ce se urmărește `testing`. Enumerați toate arhivele necesare în fișierul „`/etc/apt/sources.list`” după cum urmează.

    deb http://deb.debian.org/debian/ testing main contrib non-free
    deb http://deb.debian.org/debian/ unstable main contrib non-free
    deb http://security.debian.org/debian-security testing-security main contrib

Configurați fișierul „`/etc/apt/preferences`” după cum urmează.

    Package: *
    Pin: release a=unstable
    Pin-Priority: 100

Când doriți să instalați un pachet numit „`nume-pachet`” cu dependențele sale din arhiva `unstable` în această configurație, executați următoarea comandă care comută versiunea țintă cu opțiunea „`-t`” (prioritatea Pin a `unstable` devine 990).

    $ sudo apt-get install -t unstable package-name

Cu această configurație, executarea obișnuită a „`apt-get upgrade`” și „`apt-get dist-upgrade`” (sau „`aptitude safe-upgrade`” și „`aptitude full-upgrade`”) actualizează pachetele care au fost instalate din arhiva `testing` utilizând arhiva `testing` curentă și pachetele care au fost instalate din arhiva `unstable` utilizând arhiva `unstable` curentă.

| Atenție
Aveți grijă să nu ștergeți intrarea „`testing`” din fișierul „`/etc/apt/sources.list`”. Fără intrarea „`testing`”, sistemul APT actualizează pachetele utilizând arhiva mai nouă `unstable`.

| Indicație
De obicei, editez fișierul „`/etc/apt/sources.list`” pentru a comenta intrarea din arhivă „`unstable`” imediat după operația de mai sus. Astfel se evită încetinirea procesului de actualizare din cauza numărului prea mare de intrări din fișierul „`/etc/apt/sources.list`”, deși acest lucru împiedică actualizarea pachetelor instalate din arhiva `unstable` folosind arhiva `unstable` curentă.

| Indicație
Dacă se utilizează „`Pin-Priority: 1`” în loc de „`Pin-Priority: 100`” în fișierul „`/etc/apt/preferences`” , pachetele deja instalate care au valoarea Pin-Priority de 100 nu sunt actualizate de arhiva `unstable`, chiar dacă intrarea „`testing`” din fișierul „`/etc/apt/sources.list`” este eliminată.

Dacă doriți să urmăriți automat anumite pachete din `unstable` fără instalarea inițială „`-t unstable`”, trebuie să creați fișierul „`/etc/apt/preferences`” și să enumerați în mod explicit toate aceste pachete în partea de sus a acestuia, după cum urmează.

    Package: package-1
    Pin: release a=unstable
    Pin-Priority: 700

    Package: package-2
    Pin: release a=unstable
    Pin-Priority: 700

Acestea stabilesc valoarea Pin-Priority pentru fiecare pachet specific. De exemplu, pentru a urmări cea mai recentă versiune `unstable` a acestei „Referințe Debian” în limba engleză, ar trebui să aveți următoarele intrări în fișierul „`/etc/apt/preferences`”.

    Package: debian-reference-en
    Pin: release a=unstable
    Pin-Priority: 700

    Package: debian-reference-common
    Pin: release a=unstable
    Pin-Priority: 700

| Indicație
Această tehnică apt-pinning este valabilă chiar și atunci când urmăriți arhiva `stable`. Din experiența mea, până în prezent, pachetele de documentație au fost întotdeauna sigure de instalat din arhiva `unstable`.

### 2.7.10. Urmărirea suitei`unstable` cu unele pachete din `experimental`

| Avertisment
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar.

Iată un alt exemplu de tehnică apt-pinning pentru a include pachete specifice mai noi din versiunea upstream găsite în `experimental` în timp ce se urmărește `unstable`. Enumerați toate arhivele necesare în fișierul „`/etc/apt/sources.list`” după cum urmează.

    deb http://deb.debian.org/debian/ unstable main contrib non-free
    deb http://deb.debian.org/debian/ experimental main contrib non-free
    deb http://security.debian.org/ testing-security main contrib

Valoarea implicită a Pin-Priority pentru arhiva `experimental` este întotdeauna 1 (<<100), deoarece este o arhivă NotAutomatic (a se vedea Secțiune 2.5.3, „Fișiere „Release” la nivel de arhivă”). Nu este necesar să stabiliți explicit valoarea Pin-Priority în fișierul „`/etc/apt/preferences`” doar pentru a utiliza arhiva `experimental`, cu excepția cazului în care doriți să urmăriți automat anumite pachete din aceasta pentru următoarea actualizare.

### 2.7.11. Retrogradarea de urgență

| Avertisment
Utilizarea tehnicii apt-pinning de către un utilizator începător poate cauza probleme majore. Trebuie să evitați utilizarea acestei tehnici, cu excepția cazurilor în care este absolut necesar.

| Atenție
Retrogradarea nu este acceptată oficial de Debian. Ar trebui să fie făcută doar ca parte a procesului de recuperare de urgență. În ciuda acestei situații, se știe că funcționează bine în multe cazuri. Pentru sistemele critice, ar trebui să faceți o copie de rezervă a tuturor datelor importante din sistem după operația de recuperare și să reinstalați sistemul nou de la zero.

Puteți avea norocul să faceți retrogradarea de la arhiva mai nouă la arhiva mai veche pentru a recupera din actualizarea defectuoasă a sistemului prin manipularea versiunii candidate (vezi Secțiune 2.7.7, „Ajustarea versiunii candidate cu apt-pinning”). Aceasta este o alternativă mai ușoară la acțiunile obositoare ale multor comenzi „`dpkg -i pachet-defect_versiune-veche.deb`” (a se vedea Secțiune 2.6.3, „Recuperarea cu comanda dpkg”).

Căutați în fișierul „`/etc/apt/sources.list`” liniile care conțin `unstable`, după cum urmează.

    deb http://deb.debian.org/debian/ sid main contrib non-free

Înlocuiți-le cu următorul text pentru a urmări suita `testing` (de testare).

    deb http://deb.debian.org/debian/ forky main contrib non-free

Configurați fișierul „`/etc/apt/preferences`” după cum urmează.

    Package: *
    Pin: release a=testing
    Pin-Priority: 1010

Rulați „`apt-get update; apt-get dist-upgrade`” pentru a forța retrogradarea pachetelor din întregul sistem.

Eliminați acest fișier special „`/etc/apt/preferences`” după această retrogradare de urgență.

| Indicație
Este o idee bună să eliminați (nu să ștergeți!) cât mai multe pachete pentru a minimiza problemele de dependență. Este posibil să fie necesar să eliminați și să instalați manual unele pachete pentru a retrograda sistemul. Nucleul Linux, încărcătorul de pornire, udev, PAM, APT și pachetele legate de rețea, precum și fișierele lor de configurare necesită o atenție specială.

### 2.7.12. Pachetul equivs

Dacă doriți să compilați un program din sursă pentru a înlocui pachetul Debian, cel mai bine este să îl transformați într-un pachet „debianizat” local real (`*.deb`) și să utilizați arhiva privată.

Dacă ați ales să compilați un program din sursă și să îl instalați în „`/usr/local`”, este posibil să fie necesar să utilizați `equivs` ca ultimă soluție pentru a satisface dependența pachetului lipsă.

    Package: equivs
    Priority: optional
    Section: admin
    Description: Circumventing Debian package dependencies
     This package provides a tool to create trivial Debian packages.
     Typically these packages contain only dependency information, but they
     can also include normal installed files like other packages do.
     .
     One use for this is to create a metapackage: a package whose sole
     purpose is to declare dependencies and conflicts on other packages so
     that these will be automatically installed, upgraded, or removed.
     .
     Another use is to circumvent dependency checking: by letting dpkg
     think a particular package name and version is installed when it
     isn't, you can work around bugs in other packages' dependencies.
     (Please do still file such bugs, though.)

### 2.7.13. Adaptarea unui pachet la sistemul stabil

| Atenție
Nu există nicio garanție că procedura descrisă aici va funcționa fără eforturi manuale suplimentare din cauza diferențelor dintre sisteme.

Pentru actualizări parțiale ale sistemului `stabil`, este recomandabil să se reconstruiască un pachet în mediul său utilizând pachetul sursă. Astfel se evită actualizări masive ale pachetelor din cauza dependențelor acestora.

Adăugați următoarele intrări în „`/etc/apt/sources.list`” al unui sistem `stabil`.

    deb-src http://deb.debian.org/debian unstable  main contrib non-free

Instalați pachetele necesare pentru compilare și descărcați pachetul sursă după cum urmează.

    # apt-get update
    # apt-get dist-upgrade
    # apt-get install fakeroot devscripts build-essential
    # apt-get build-dep foo
    $ apt-get source foo
    $ cd foo*

Actualizați unele pachete din lanțul de instrumente, cum ar fi `dpkg` și `debhelper` din pachetele retro-adaptate „backport”, dacă acestea sunt necesare pentru retro-adatare „backporting”.

Executați următoarele.

    $ dch -i

Incrementați versiunea pachetului, de exemplu, adăugând „`+bp1`” în „`debian/changelog`”

Construiți pachetele și instalați-le în sistem după cum urmează.

    $ debuild
    $ cd ..
    # debi foo*.changes

### 2.7.14. Server proxy pentru APT

Deoarece oglindirea întregii subsecțiuni a arhivei Debian consumă spațiu pe disc și lățime de bandă de rețea, implementarea unui server proxy local pentru APT este de dorit atunci când administrați mai multe sisteme într-o rețea locală LAN. APT poate fi configurat pentru a utiliza servere proxy web (http) generice, cum ar fi `squid` (consultați Secțiune 6.5, „Alte servere de aplicații de rețea”), așa cum este descris în `apt.conf`(5) și în „`/usr/share/doc/apt/examples/configure-index.gz`”. Variabila de mediu „`$http_proxy`” poate fi utilizată pentru a suprascrie configurația serverului proxy din fișierul „`/etc/apt/apt.conf`”.

Există instrumente proxy special pentru arhiva Debian. Ar trebui să verificați BTS înainte de a le utiliza.

Tabel 2.19. Lista instrumentelor proxy special pentru arhiva Debian

pachet | popcon(popularitate) | dimensiune | descriere
--- | --- | --- | ---
`approx` | V:0, I:0 | 8308 | server proxy de stocare în cache pentru fișierele arhive Debian (program compilat OCaml)
`apt-cacher` | V:0, I:0 | 267 | proxy cache pentru pachetele Debian și fișierele sursă (program Perl)
`apt-cacher-ng` | V:4, I:4 | 1968 | proxy cache pentru distribuirea pachetelor software (program compilat în C++)

| Atenție
Când Debian își reorganizează structura arhivei, aceste instrumente proxy specializate tind să necesite rescrierea codului de către administratorul pachetului și pot să nu funcționeze pentru o perioadă. Pe de altă parte, serverele proxy web (http) generice sunt mai robuste și mai ușor de adaptat la astfel de schimbări.

### 2.7.15. Mai multe informații despre gestionarea pachetelor

Puteți afla mai multe despre gestionarea pachetelor din următoarele documentații.

- Documentație primară privind gestionarea pachetelor:

  - `aptitude`(8), `dpkg`(1), `tasksel`(8), `apt`(8), `apt-get`(8), `apt-config`(8), `apt-secure`(8), `sources.list`(5), `apt.conf`(5), și `apt_preferences`(5);

  - „`/usr/share/doc/apt-doc/guide.html/index.html`” și „`/usr/share/doc/apt-doc/offline.html/index.html`” din pachetul `apt-doc`; și

  - „`/usr/share/doc/aptitude/html/en/index.html`” din pachetul `aptitude-doc-en`.

- Documentație oficială și detaliată despre arhiva Debian:

  - Manualul de politici Debian, Capitolul 2 - Arhiva Debian,

  - „Referința dezvoltatorului Debian, Capitolul 4 - Resurse pentru dezvoltatorii Debian 4.6 Arhiva Debian”, și

  - „Întrebări frecvente despre Debian GNU/Linux, Capitolul 6 – Arhivele FTP Debian”.

- Tutorial pentru crearea unui pachet Debian pentru utilizatorii Debian:

  - „Ghid pentru administratorii Debian”.

Cap. 1. Tutoriale GNU/Linux |  | Cap. 3. Inițializarea sistemului