APT: n kiinnittämisen riippuvuuksien tarkkuus

Yritän hallita, miten APT-kiinnitys toimii Debianin alla, mutta minun on vaikea ymmärtää, miten se ratkaisee prioriteetit.

Minulla on source.list -tiedosto, jossa on seuraavat merkinnät tässä tarkassa järjestyksessä:

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

Seuraava arkisto sisältää nämä paketit haaraa kohti:

  • stretch sisältää paketin dependency version 1.0;
  • testaus sisältää paketin dependency version 2.0;
  • unstable sisältää paketit program ja dependency version 2.0;

Paketti program riippuu dependency version 2.0.

Minun on asennettava package program, mutta haluan asentaa mahdollisimman vähän paketteja osoitteesta unstable, joten luon seuraavan preferences tiedosto haaran kiinnittämiseksi:

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

Jos aliarvostan Jos se toimii oikein, sen tulisi asentaa paketit osoitteesta unstable vain, kun käsken nimenomaisesti APT: tä.

Luon myös apt.conf -tiedosto varmistaaksesi, että oletuksena haara stable:

APT::Default-Release "stable"; 

Komennon apt-get update, oksilla tulisi olla seuraavat prioriteetit:

stable: 990 testing: 500 unstable: -1 

Haluan nyt asentaa paketin program, suorittamaan niin, suoritan seuraavan komennon:

apt-get install -t unstable program 

Joten nyt kysyn, mistä haarasta APT vetää paketti dependency version 2.0? Koska sekä testing että unstable on sama versio paketista, kumpi niistä valitaan?

Jos minä ymmärrä oikein, APT -t unstable -vaihtoehdolla asettaa 990-prioriteetin paketeille, jotka kuuluvat unstable -palveluun, mutta siitä, mitä olen kokenut , se vetää sen kohdasta testing.

Miksi APT vetää paketteja osoitteesta testing, jonka prioriteetti on 500 kun taas unstable asetukseksi 990? Mikä olisi optimaalinen tapa asentaa mahdollisimman vähän paketteja kohdasta unstable?

Kommentit

  • Jos versio on sama, tiedosto on myös sama . Apt valitsee nopeimman tai ensimmäisen määritetty peili, mutta ladatun tiedoston URL-osoite on sama. Tarkista se itse. Debianin arkistot eivät tallenna ' kahta samanlaista tiedostoa / paketin versiota levytilaa koskevien ongelmien takia.

vastaus

Tämä selitetään -kohdassa apt_preferences manpage :

Paketista voi olla saatavana useita versioita, kun sources.list (5) -tiedosto sisältää viitteitä useampaan kuin yhteen jakeluun (esimerkiksi vakaa ja testaus). APT määrittää prioriteetin jokaiselle käytettävissä olevalle versiolle. Riippuvuusrajoitusten mukaan apt-get valitsee version, jolla on korkein prioriteetti asennukselle. APT-asetukset ohittavat prioriteetit, jotka APT määrittää oletusarvoisesti pakettiversioille, antaen siten käyttäjälle hallinnan siitä, mikä niistä on asennettavaksi valittu.

Useita paketin saman version esiintymiä voi olla käytettävissä, kun lähteet .list (5) -tiedosto sisältää viittauksia useampaan kuin yhteen lähteeseen. Tässä tapauksessa apt-get lataa aikaisemmin luetellun ilmentymän sources.list (5) -tiedostossa. APT-asetukset eivät vaikuta ilmentymän valintaan, vain version valintaan.

Prioriteetit määrittävät vain minkä version (versionumeron määrittämä) paketti on asennettu. Kun se on selvitetty, sen lataamiseen käytetään ensimmäistä käytettävissä olevaa pakettivarastoa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *