Виртуальные пакеты как aptitude понимает и управляет пакетами

10

В Debian я видел, что довольно много пакетов являются виртуальными. Почему существуют такие виртуальные пакеты?

например:

$ aptitude show pppoeconf
Package: pppoeconf                       
State: installed
Automatically installed: no
Version: 1.21
Priority: optional
Section: net
Maintainer: Gregory Colpart <reg@debian.org>
Architecture: all
Uncompressed Size: 297 k
Depends: whiptail-provider | whiptail, ppp (>= 2.4.2+20040428-2) | pppoe (>= 3.0), ppp (>= 2.4.1.uus2-4), gettext-base (>= 0.13), sed (>= 3.95),
         ifupdown (>= 0.7.44~), iproute2
Recommends: locales
Suggests: xdialog
Description: configures PPPoE/ADSL connections
 User-friendly tool for initial configuration of a DSL (PPPoE) connection.

Смотрите предложения:

Suggests: xdialog

Теперь давайте попробуем увидеть это немного ближе -

$ aptitude show xdialog
No current or candidate version found for xdialog
Package: xdialog
State: not a real package

Почему это там? Можно было, это была настоящая посылка, скажем, Wheezy или Jessie, а затем она была удалена. Может ли это быть единственной причиной или есть возможности большего количества причин?

Выше я просто взял в качестве примера.

Shirish
источник
Похоже, о несуществующих / отсутствующих пакетах. В aptitude, виртуальные пакеты это термин , используемый для описания пакетов , которые состоят только из зависимостей, но причина фактического программного обеспечения для установки на основе зависимых невиртуальных пакетов. Не уверен, что термин используется в Debian по-другому - поэтому я не буду менять его без вашего одобрения. Не могли бы вы подтвердить или изменить название и описание, поскольку это сбивает с толку?
Фолькер Сигел
Там сейчас лучше?
Шириш
Ооо ... теперь я в замешательстве: что именно вы подразумеваете под "виртуальным пакетом"? Что в этом виртуального? (aptitude использует слово с очень конкретным (и непонятным) значением - путаница заключается в том, что вы подразумеваете что-то другое, с тем же словом)
Volker Siegel
Теперь я понимаю: заголовок - очень интересный вопрос о виртуальных пакетах (для людей, которые знают, что это значит). Но тело вопроса описывает пример, который вообще не имеет ничего общего с виртуальными пакетами, но это не так легко увидеть. На самом деле, ответ @ThomasWeinbrenner великолепен. Он объясняет обе части. Во-первых, что случилось xdialog, и, во-вторых, что такое виртуальные пакеты.
Volker Siegel
немного поправил заголовок, надеюсь, теперь лучше.
Шириш

Ответы:

12

В случае когда- xdialogто был такой пакет, но он был удален. Судя по его домашней странице, между автором и людьми Debian возникли некоторые проблемы.

Затем существуют другие так называемые виртуальные пакеты, которые не существуют, но которые предоставляются другими пакетами. Этот механизм используется, когда разные пакеты предоставляют одну и ту же функцию.

Например, пакет mail-transport-agent является виртуальным пакетом, который предоставляется exim, postfix, qmail и т. Д. Поэтому, если у вас есть пакет, которому требуется MTA, вы делаете его зависимым от этого виртуального пакета и не должны его делать зависит от exim ИЛИ postfix ИЛИ qmail ...
И вам не нужно менять ваш пакет, если появится другая альтернатива.

Томас Вайнбреннер
источник