Rezoluția dependențelor APT Pinning

Încerc să stăpânesc cum funcționează fixarea APT în Debian, dar îmi este greu să înțeleg modul în care rezolvă prioritățile.

Am un fișier source.list care are următoarele intrări în această ordine exactă:

deb <repository> stretch main deb <repository> testing main deb <repository> unstable main 

Următorul depozit conține aceste pachete pe ramură:

  • stretch conține pachetul dependency version 1.0;
  • testarea conține pachetul dependency version 2.0;
  • instabil conține pachetele program și dependency version 2.0;

Pachetul program depinde de dependency version 2.0.

Trebuie să instalez pachet program, dar vreau să instalez cât mai puține pachete din unstable, așa că am creat următoarele preferences fișier pentru a fixa această ramură:

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

Dacă nu mai sunt Și cum funcționează corect, ar trebui să instaleze pachete de la unstable numai atunci când îi spun în mod explicit lui APT.

fișier pentru a vă asigura că ramura stable este implicită:

APT::Default-Release "stable"; 

După executarea comenzii apt-get update, sucursalele ar trebui să aibă următoarele priorități:

stable: 990 testing: 500 unstable: -1 

Acum vreau să instalez pachetul program, pentru a face acest lucru, execut următoarea comandă:

apt-get install -t unstable program 

Deci, acum întrebarea mea este, din ce ramură va trage APT pachet dependency version 2.0? Deoarece atât testing, cât și unstable au aceeași versiune a pachetului, care va fi ales?

Dacă înțeleg corect, APT cu opțiunea -t unstable, va seta o prioritate 990 pachetelor care aparțin unstable, dar din ceea ce am experimentat , îl extrage de la testing.

Deci, de ce APT extrage pachete de la testing care are o prioritate de 500 în timp ce unstable este setat la 990? De asemenea, care ar fi modalitatea optimă de a instala cât mai puține pachete din unstable?

Comentarii

  • Dacă versiunea este aceeași, atunci fișierul este și același . Apt alege cel mai rapid sau primul oglindă definită, dar adresa URL a fișierului descărcat este aceeași. Verificați-o singur. Depozitele Debian nu ' nu stochează două fișiere identice / versiunea unui pachet din cauza problemelor de spațiu pe disc.

Răspuns

Acest lucru este explicat în apt_preferences pagina de manual :

Mai multe versiuni ale unui pachet pot fi disponibile pentru instalare atunci când fișierul sources.list (5) conține referințe la mai multe distribuții (de exemplu, stabil și testare). APT atribuie o prioritate fiecărei versiuni disponibile. Sub rezerva constrângerilor de dependență, apt-get selectează versiunea cu cea mai mare prioritate pentru instalare. Preferințele APT anulează prioritățile pe care APT le atribuie versiunilor de pachete în mod implicit, oferind astfel utilizatorului controlul asupra celei selectate pentru instalare.

Mai multe instanțe ale aceleiași versiuni a unui pachet pot fi disponibile atunci când sursele Fișierul .list (5) conține referințe la mai multe surse. În acest caz, apt-get descarcă instanța listată mai devreme în fișierul sources.list (5). Preferințele APT nu afectează alegerea instanței, ci doar varianta.

Prioritățile determină doar versiunea (așa cum este specificat de numărul versiunii) de este instalat un pachet. Odată ce acest lucru este stabilit, primul depozit de pachete disponibil este utilizat pentru a-l descărca.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *