GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak si Apt vybere konkrétní balíček k instalaci, aby poskytl virtuální balíček potřebný jako závislost?

Například awk je virtuální balíček poskytovaný original-awk , mawk a gawk .

Pokus o instalaci přímo vede k:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package awk is a virtual package provided by:
  original-awk:i386 2012-12-20-4
  mawk:i386 1.3.3-17ubuntu2
  gawk:i386 1:4.1.1+dfsg-1
  original-awk 2012-12-20-4
  mawk 1.3.3-17ubuntu2
  gawk 1:4.1.1+dfsg-1
You should explicitly select one to install.

E: Package 'awk' has no installation candidate

Nicméně mnoho virtuálních balíčků je potřeba jako závislosti na balících nainstalovaných ve výchozím nastavení, například awk samotný je potřeba pro base-files , která kontrola protokolů APT je nainstalována spolu s řadou dalších balíčků pomocí apt-get --yes; nějak APT nakonec automaticky vybere jednu ze tří (jsem si docela jistý, že je to mawk , ale to není smyslem otázky).

Jak APT v tomto případě vybere konkrétní balíček k instalaci?

Přijatá odpověď:

Jak APT v tomto případě vybere konkrétní balíček k instalaci?

APT nevybírá balíček. Říká:

Měli byste jednou explicitně vybrat nainstalovat.

Pokud se pokusíte ručně vybrat balíček, nebude nainstalován.

V případě základních souborů závislých na awk je to irelevantní. Za prvé, ve skutečnosti předem závisí na awk, což nutí dpkg k instalaci awk před zahájením instalace základních souborů; za druhé, mawk má prioritu, která se instaluje při instalaci systému, a apt vás otravuje, když se jej pokusíte odstranit. Tak to prostě nedělej.

Nyní, podle zdrojů, se apt nejprve pokusí uspokojit závislost, než to zkusí s virtuálními balíčky (tj. pokud závisí jsou firefox | www-browser , zkontroluje, zda je nainstalován některý z balíčků, a pokud žádný z nich není, zkuste nainstalovat firefox). Pokud nevirtuální balíček není k dispozici, zdá se, že pouze iteruje všechny balíčky, které poskytují virtuální balíček, pokud nejsou porušeny žádné další závislosti. Další komentáře svědčící o tomto chování jsou tyto, které vedou k funkci GrpIterator::FindPreferredPkg.

Související:Nastavení oprávnění ke spuštění na připojeném obrazu?
Ubuntu
  1. Jak nainstalovat soubor Deb pomocí Dpkg -i nebo Apt?

  2. Jak nainstalovat Termite?

  3. Jak nastavit Synaptic jako výchozí pro instalaci souborů .deb?

  1. Jak nainstalovat Webmin na Ubuntu 20.04

  2. Jak nainstalovat Kvm na Ubuntu 18.04

  3. Jak použít yum k instalaci konkrétní verze balíčku?

  1. Jak nainstalovat Yarn na Ubuntu 20.04

  2. Jak nainstalovat Spotify na Ubuntu 20.04

  3. Jak nainstalovat Vagrant na Ubuntu 20.04