Cap. 2. Gestionarea pachetelor Debian

Cuprins

2.1. Cerințe preliminare pentru gestionarea pachetelor Debian
2.1.1. Sistemul de gestionare a pachetelor Debian
2.1.2. Configurația pachetului
2.1.3. Precauții de bază
2.1.4. O viață cu îmbunătățiri veșnice
2.1.5. Noțiuni de bază despre arhiva Debian
2.1.6. Debian este software 100% liber
2.1.7. Dependențele pachetelor
2.1.8. Fluxul evenimentelor din gestionarea pachetelor
2.1.9. Primul răspuns la problemele legate de gestionarea pachetelor
2.1.10. Cum să selectați pachetele Debian
2.1.11. Cum să faceți față cerințelor contradictorii
2.2. Operații de bază de gestionare a pachetelor
2.2.1. apt vs. apt-get / apt-cache vs. aptitude
2.2.2. Operații de bază de gestionare a pachetelor din linia de comandă
2.2.3. Utilizarea interactivă a «aptitudie»
2.2.4. Combinații de taste pentru aptitude
2.2.5. Vizualizarea de pachete în aptitude
2.2.6. Opțiuni pentru metoda de căutare cu aptitude
2.2.7. Formula expresiei regulate pentru aptitudine
2.2.8. Rezolvarea dependențelor de către aptitude
2.2.9. Jurnale de activitate ale pachetelor
2.3. Exemple de operații cu aptitudine
2.3.1. Căutarea de pachete interesante
2.3.2. Listarea pachetelor care se potrivesc cu expresia regulată în numele pachetelor
2.3.3. Navigarea prin rezultatul potrivirilor expresiei regulate
2.3.4. Stergerea definitivă a pachetelor eliminate
2.3.5. Reorganizarea stării instalării automate/manuale
2.3.6. Actualizare la nivel de sistem
2.4. Operații avansate de gestionare a pachetelor
2.4.1. Operații avansate de gestionare a pachetelor din linia de comandă
2.4.2. Verificarea fișierelor pachetului instalat
2.4.3. Protejarea împotriva problemelor legate de pachete
2.4.4. Căutarea în metadatele pachetului
2.5. Detalii interne privind gestionarea pachetelor Debian
2.5.1. Metadate de arhivă
2.5.2. Fișierul „Release” de nivel superior și autenticitatea
2.5.3. Fișiere „Release” la nivel de arhivă
2.5.4. Preluarea metadatelor pentru pachet
2.5.5. Starea pachetului pentru APT
2.5.6. Starea pachetului pentru aptitude
2.5.7. Copiile locale ale pachetelor descărcate
2.5.8. Numele fișierelor pachetelor Debian
2.5.9. Comanda «dpkg»
2.5.10. Comanda «update-alternatives»
2.5.11. Comanda «dpkg-statoverride»
2.5.12. Comanda «dpkg-divert»
2.6. Recuperarea dintr-un sistem defect
2.6.1. Incompatibilitate cu configurația veche a utilizatorului
2.6.2. Erori de stocare în cache ale datelor pachetului
2.6.3. Recuperarea cu comanda dpkg
2.6.4. Instalare eșuată din cauza dependențelor lipsă
2.6.5. Pachete diferite cu fișiere suprapuse
2.6.6. Remedierea scriptului pachetului defect
2.6.7. Recuperarea datelor privind selecția pachetelor
2.7. Sfaturi pentru gestionarea pachetelor
2.7.1. Cine a încărcat pachetul?
2.7.2. Limitarea lățimii de bandă pentru descărcare pentru APT
2.7.3. Descărcarea și actualizarea automată a pachetelor
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)
2.7.5. Arhive de pachete externe
2.7.6. Pachete din surse mixte de arhive fără apt-pinning
2.7.7. Ajustarea versiunii candidate cu apt-pinning
2.7.8. Blocarea pachetelor instalate de „Recommends”
2.7.9. Urmărirea suitei testing cu unele pachete din unstable
2.7.10. Urmărirea suitei unstable cu unele pachete din experimental
2.7.11. Retrogradarea de urgență
2.7.12. Pachetul equivs
2.7.13. Adaptarea unui pachet la sistemul stabil
2.7.14. Server proxy pentru APT
2.7.15. Mai multe informații despre gestionarea pachetelor
[Notă] 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”.

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ă 74874 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.


[Avertisment] 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.

[Atenție] 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 disponibil sistemul de recuperare urmând instrucțiunile din secțiunea Secțiune 3.2, „Sistemul de recuperare”.

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

  • 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] 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ă).

[Indicație] 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 este furnizat în stilul modern deb822 în „/etc/apt/sources.list.d/debian.sources” ca mai jos:

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
[Indicație] Indicație

Dacă lista surselor este furnizată în stilul vechi, depreciat, pe o singură linie, în fișierele „/etc/apt/sources.list” sau „/etc/apt/sources.list.d/*.list”, actualizați-le cu:

 $ sudo apt modernize-sources

Punctele cheie ale listei surselor în stilul deb822 sunt următoarele.

  • 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] 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.


[Atenție] 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] 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] 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ă] 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.


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


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

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.

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ă] 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.

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ă] 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.

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

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

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.

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.

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:

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

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 regex aptitude search regex apt-cache search regex căută pachetele care corespund cu expresia-regulată
N/D aptitude why regex N/D explică motivul pentru care ar trebui instalate pachetele care corespund cu expresia-regulată
N/D aptitude why-not regex 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ă] 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”.


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

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.


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] 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ă.

Î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] 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”.


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


[Indicație] Indicație

Vizualizarea Sarcini poate fi utilizată pentru a selecta pachetele potrivite pentru sarcina dvs.

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 ~nregex_name
potrivire cu descrierea ~dregex_description
potrivire cu numele sarcinii ~tregex_task
potrivire cu debtag ~Gregex_debtag
potrivire cu resposabilul pachetului ~mregex_maintainer
potrivire cu secțiunea pachetului ~sregex_section
potrivire cu versiunea pachetului ~Vregex_version
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 ~Btype
corespunde cu modelul de pachete care declară o dependență de tipul ~D[type:]pattern
corespunde cu modelul de pachete care declară o dependență ruptă de tipul ~DB[type:]pattern
corespunde cu pachetele pentru care modelul de potrivire corespunde pachetelor care declară o dependență de tipul ~R[type:]pattern
corespunde cu pachetele pentru care modelul de potrivire corespunde pachetelor care declară o dependență ruptă de tipul ~RB[type:]pattern
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 filter pattern
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] 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ă] 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ă.

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

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.

[Notă] 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, „Copia de rezervă și recuperarea”) î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: oldstablestabletestingunstable.

  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] 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] 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] 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”.

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

comandă acțiunea
COLUMNS=120 dpkg -l package_name_pattern afişează starea unui pachet instalat pentru raportul de eroare
dpkg -L package_name afișează conținutul unui pachet instalat
dpkg -L package_name | egrep '/usr/share/man/man.*/.+' listează paginile de manual pentru un pachet instalat
dpkg -S file_name_pattern listează pachetele instalate care au numele de fișier ce coincide cu modelul
apt-file search file_name_pattern listează pachetele din arhivă care au numele de fișier ce coincide cu modelul
apt-file list package_name_pattern listează conținutul pachetelor din arhivă ce coincide cu modelul
dpkg-reconfigure package_name reconfigurează pachetul specificat
dpkg-reconfigure -plow package_name 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 binary_package_name afișează versiunea disponibilă, prioritatea și informațiile de arhivă ale unui pachet binar
apt-cache madison package_name afișează versiunea disponibilă, informații privind arhiva unui pachet
apt-cache showsrc binary_package_name afișează informațiile despre pachetul sursă al unui pachet binar
apt-get build-dep package_name instalează pachete necesare pentru a construi pachetul
aptitude build-dep package_name instalează pachete necesare pentru a construi pachetul
apt-get source package_name descarcă pachetul sursă (din arhiva standard)
dget URL for dsc file descarcă pachetele sursă (din altă arhivă)
dpkg-source -x package_name_version-debian.revision.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 package_name_version-debian.revision_arch.deb instalează un pachet local în sistem
apt install /path/to/package_filename.deb instalează un pachet local în sistem, încercând în același timp să rezolve automat dependențele
debi package_name_version-debian.revision_arch.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 package_name 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ă] 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] 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:

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 de control MD5” pentru a afla cum funcționează MD5sum.

[Notă] 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.

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

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.

[Indicație] 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ă] 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, „Infrastructura de securitate a datelor”).

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

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ă.)

Fișierele pachetelor Debian au structuri de nume specifice.


[Indicație] Indicație

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


[Notă] Notă

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

[Notă] 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.

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/package_name.conffiles lista fișierelor de configurare. (modificabile de utilizator)
/var/lib/dpkg/info/package_name.list lista fișierelor și directoarelor instalate de pachet
/var/lib/dpkg/info/package_name.md5sums lista valorilor sumelor de control MD5 pentru fișierele instalate de pachet
/var/lib/dpkg/info/package_name.preinst scriptul pachetului care trebuie rulat înainte de instalarea pachetului
/var/lib/dpkg/info/package_name.postinst scriptul pachetului care trebuie rulat după instalarea pachetului
/var/lib/dpkg/info/package_name.prerm scriptul pachetului care trebuie rulat înainte de eliminarea pachetului
/var/lib/dpkg/info/package_name.postrm scriptul pachetului care trebuie rulat după eliminarea pachetului
/var/lib/dpkg/info/package_name.config scriptul pachetului pentru sistemul debconf
/var/lib/dpkg/alternatives/package_name 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] Indicație

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

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

[Atenție] Atenție

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

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/* ”.)

Deoarece dpkg este un instrument de pachete de nivel foarte scăzut, acesta poate funcționa fără conexiune la rețea.

Să presupunem că pachetul foo era deteriorat și trebuie reparat.

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ă] 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, „Copia de rezervă și recuperarea”) și să efectuați o instalare curată. Aceasta consumă mai puțin timp și produce rezultate mai bune în final.

[Indicație] 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.

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] 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

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.

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";

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

[Atenție] 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] 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.

[Notă] 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ă] 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”).

[Avertisment] 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] 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ă] 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.


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

[Avertisment] 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] 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] 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] 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] 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.

[Avertisment] 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] 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] 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ă.