GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie wählt Apt das spezifische zu installierende Paket aus, um ein virtuelles Paket bereitzustellen, das als Abhängigkeit benötigt wird?

Beispiel:awk ist ein virtuelles Paket, das von original-awk bereitgestellt wird , mawk und gawk .

Der Versuch, es direkt zu installieren, ergibt:

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

Allerdings werden viele virtuelle Pakete als Abhängigkeiten von den standardmäßig installierten Paketen benötigt, zum Beispiel awk selbst wird von base-files benötigt , das das Überprüfen der APT-Protokolle zusammen mit einer Reihe anderer Pakete über apt-get --yes installiert; Irgendwie wählt APT automatisch einen der drei aus (ich bin mir ziemlich sicher, dass das mawk ist , aber das ist nicht der Sinn der Frage).

Wie wählt APT in diesem Fall das spezifische zu installierende Paket aus?

Akzeptierte Antwort:

Wie wählt APT in diesem Fall das spezifische zu installierende Paket aus?

APT wählt kein Paket aus. Es sagt:

Sie sollten ausdrücklich eine auswählen zu installieren.

Wenn Sie versuchen, ein Paket manuell auszuwählen, wird es nicht installiert.

Bei Basisdateien, die von awk abhängen, ist es irrelevant. Erstens hängt es tatsächlich von awk ab und zwingt dpkg, awk zu installieren, bevor es mit der Installation der Basisdateien beginnt; zweitens haben mawk Priorität, die bei der Systeminstallation installiert werden, und apt nervt Sie, wenn Sie versuchen, es zu entfernen. Also lass es einfach.

Jetzt versucht apt laut Quellen zuerst, die Abhängigkeit zu erfüllen, bevor es mit virtuellen Paketen versucht wird (d.h. wenn abhängig sind firefox | www-browser , überprüft, ob eines der Pakete installiert ist, und versucht dann, Firefox zu installieren, wenn keines der beiden installiert ist). Wenn das nicht-virtuelle Paket nicht verfügbar ist, scheint es nur alle Pakete zu durchlaufen, die das virtuelle Paket bereitstellen, wenn keine anderen Abhängigkeiten unterbrochen sind. Andere Kommentare, die dieses Verhalten belegen, sind diese, die zur GrpIterator::FindPreferredPkg-Funktion führen.

Verwandt:Festlegen von Ausführungsberechtigungen für ein gemountetes Image?
Ubuntu
  1. So installieren Sie Webmin unter Ubuntu 20.04

  2. Wie verwende ich yum, um eine bestimmte Version eines Pakets zu installieren?

  3. Wie installiere ich eine Deb-Datei, von Dpkg -i oder von Apt?

  4. Wie installiere ich Termite?

  5. Wie macht man Synaptic zum Standard für die Installation von .deb-Dateien?

So installieren Sie Ubuntu 22.04 auf Virtual Box

So installieren Sie eine bestimmte Paketversion unter Ubuntu und Debian

So installieren Sie Ulauncher in Ubuntu 20.04

Wie kann man Yum anweisen, eine bestimmte Version von Paket X zu installieren?

Wie aktiviere ich die Schaltfläche „Bearbeiten“ in Shutter?

So installieren Sie KVM auf Ubuntu 22.04