В основном это функция.
Невозможно иметь ациклический граф:
огромное количество пакетов, и нет инструментов для совета по проблеме зависимостей.
Есть действительно циклические зависимости. Создавая дистрибутив с нуля, вы это заметите, например, теперь libc требует некоторых внешних программ (например, resolver), а для таких программ требуется libc . Одним из способов решения этой проблемы было использование essential
пакетов: они создают ядро пакетов, которые могут зависеть друг от друга.
удобно разделить библиотеку на части программ и двоичные файлы на файлы, не зависящие от архитектуры (особенно если объем данных огромен). Это может привести к циклической зависимости: обе части должны быть установлены вместе.
Изменения отношения пакетов и изменений пакетов. Так что когда-то какая-то часть перемещается в другой пакет. Циклические зависимости скрывают внутренний ход провайдера API.
и т.д.
Потому что Debian - это не просто «дистрибутив», а множество «дистрибутивов» (например, «contrib» и «non-free», но также «security», «backport», «экспериментальный» и т. Д.) [В виде пакетов .gz lists], кроме того, иногда мы включаем также внешние (не Debian) пакеты, требующие, чтобы ациклический граф зависимостей мог быть трудным или просто блокировал apt , и никто этого не хочет. Поэтому я думаю, что циклические зависимости все еще являются «особенностью».
Примечание: иногда циклы просто "необязательны". Один из обязательных пакетов является циклическим, но не все возможности. «виртуальные пакеты» усложняют задачу.