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