Рейтинг:3

Несколько DEB предоставляют виртуальный пакет, который указан как Зависит.

флаг us

У меня есть собственный репозиторий APT, в котором хранятся пользовательские DEB, созданные/упакованные мной. В этом репозитории есть набор пакетов DEB, в управляющем файле которых есть следующее:

Пакет: my-foo-<type>
Архитектура: любая
Раздел: админ
Предоставляет: my-foo
Конфликты: my-foo

куда <type> является одним из нескольких типов (например, азбука, деф, и т.д). Другими словами, у меня есть несколько реальных пакетов, предоставляющих один и тот же виртуальный мой-фу упаковка. Как и ожидалось, если я попытаюсь запустить apt установить my-foo, я получаю ожидаемое приглашение

Пакет my-foo — это виртуальный пакет, предоставленный:
  мой-foo-abc 0.3.0-1
  моя-foo-def 0.4.3-1
Вы должны явно выбрать один из них для установки.

У меня также есть еще один пакет в том же репо, который имеет Зависит от: my-foo в своем управляющем файле. Я ожидал, что когда я попытаюсь установить этот пакет, не указав явно, какой мой-фу виртуальный аромат для использования, мне также будет предложено сделать выбор. Однако это не то, что я получаю - похоже, что apt выбирает первый пакет, который соответствует имени виртуального пакета.

Есть ли способ заставить желаемое поведение?

флаг vn
Помогает ли вам [этот] (https://askubuntu.com/a/739065/349837) ответ?
Paul Grinberg avatar
флаг us
@PabloBianchi - Спасибо за ссылку. Ответ проясняет поведение, хотя и не помогает мне достичь того, чего я желал.
James S. avatar
флаг de
Ваше желаемое поведение противоречит спецификации. Из спецификации в [Политика упаковки Debian](https://www.debian.org/doc/debian-policy/ch-relationships.html#virtual-packages-provides) Чтобы указать, какой из набора реальных пакетов должен использоваться по умолчанию для удовлетворения определенной зависимости от виртуального пакета, укажите реальный пакет в качестве альтернативы перед виртуальным.
Рейтинг:1
флаг ng

Я ожидал, что когда я попытаюсь установить этот пакет, не указав явно, какой виртуальный вариант my-foo использовать, мне также будет предложено сделать выбор.

apt не предоставляет такого механизма. Я не уверен, что еще можно сказать об этом. Вы ожидаете чего-то, чего не существует. В apt нет кода для предоставления такой подсказки.

Как указал @James S., он предпочтет первую невиртуальную альтернативу, если будут даны альтернативы, и все зависимости будут удовлетворены ее выбором. В противном случае средство разрешения зависимостей найдет решение без запроса.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.