Rozlišení závislostí APT připínání

Snažím se zvládnout, jak připínání APT funguje v Debianu, ale těžko chápu, jak řeší priority.

Mám soubor source.list, který obsahuje následující položky v tomto přesném pořadí:

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

Následující úložiště obsahuje tyto balíčky pro každou větev:

  • stretch obsahuje balíček dependency version 1.0;
  • testování obsahuje balíček dependency version 2.0;
  • unstable obsahuje balíčky program a dependency version 2.0;

Balíček program závisí na dependency version 2.0.

Potřebuji nainstalovat balíček program, ale z unstable chci nainstalovat co nejméně balíčků, takže vytvořím následující preferences soubor pro připnutí této větve:

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

Pokud rozumím Jak správně funguje, měl by instalovat balíčky z unstable, pouze když na to výslovně řeknu APT.

Vytvořím také apt.conf soubor, který zajistí, že stable větev je výchozí:

APT::Default-Release "stable"; 

Po spuštění příkazu apt-get update, větve by měly mít následující priority:

stable: 990 testing: 500 unstable: -1 

Nyní chci nainstalovat balíček program k tomu spustím následující příkaz:

apt-get install -t unstable program 

Takže moje otázka zní, ze které větve APT vytáhne balíček dependency version 2.0? Protože testing i unstable mají stejnou verzi balíčku, která z nich bude vybrána?

Pokud správně pochopit, APT s volbou -t unstable nastaví prioritu 990 na balíčky patřící do unstable, ale z toho, co jsem zažil , vytáhne to z testing.

Proč tedy APT stahuje balíčky z testing, které má prioritu 500 zatímco unstable nastaven na 990? Jaký by byl také optimální způsob instalace co nejméně balíčků z unstable?

Komentáře

  • Pokud je verze stejná, pak je soubor také stejný . Apt vybere nejrychlejší nebo první definované zrcadlo, ale adresa URL staženého souboru je stejná. Zkontrolujte to sami. Úložiště Debianu neukládají ' dva stejné soubory / verzi balíčku kvůli problémům s diskovým prostorem.

Odpověď

To je vysvětleno v apt_preferences manpage :

V případě, že je k dispozici soubor sources.list (5), může být k dispozici několik verzí balíčku. obsahuje odkazy na více než jednu distribuci (například stabilní a testovací). APT přiřadí prioritu každé verzi, která je k dispozici. apt-get v závislosti na omezeních závislosti vybere verzi s nejvyšší prioritou pro instalaci. Předvolby APT přepisují priority, které APT přiřazuje verzím balíčků ve výchozím nastavení, čímž dává uživateli kontrolu nad tím, který z nich je vybrán pro instalaci.

Může být k dispozici několik instancí stejné verze balíčku, pokud jsou zdroje Soubor .list (5) obsahuje odkazy na více než jeden zdroj. V tomto případě apt-get stáhne instanci uvedenou nejdříve v souboru sources.list (5). Předvolby APT neovlivňují výběr instance, pouze výběr verze.

Priority určují pouze to, která verze (podle čísla verze) je nainstalován balíček. Jakmile je to určeno, použije se ke stažení první dostupné úložiště balíčků.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *