Если коротко, то на самом нижем уровне притаились низкоуровневые инструменты вроде
dpkg или rpm, которые умеют работать только с локальными пакетами и не умеют ничего кроме их установки и удаления. Разрешать зависимости тоже не их задача.Выше уровнем стоят пакетные менеджеры, которые предоставляют пользователю удобный интерфейс для работы с низкоуровневыми инструментами и ряд дополнительных функций, основная из которых - это разрешение зависимостей, также их задача - это работа с репозиториями.
Пример таких менеджеров - APT, YUM/DNF, Zypper и т.д.
Они не умеют устанавливать и удалять пакеты, и по большому счету им вообще все равно с чем работать. Их задача - найти нужные пакеты, все зависимости к ним, скачать и передать это все на уровень ниже. Либо "доходчиво" пояснить низкоуровневому инструменту чего именно хочет пользователь, скажем удалить или переустановить пакет.
Таким образом у нас имеется два уровня абстракции: низкоуровневый инструмент, который непосредственно работает с пакетами и высокоуровневый менеджер, который предоставляет пользователю удобный инструмент для управления пакетами и ряд дополнительных сервисных функций.
Поэтому не следует удивляться таким проектам, как APT-RPM используемый в ALT Linux, который представляет собой пакетный менеджер APT наученный работать с низкоуровневым rpm, вместо dpkg.
Более подробно почитать на эту тему применительно к Debian/Ubuntu можно в нашей статье: https://interface31.ru/tech_it/2019/09/linux-nachinayushhim-chast-5-upravlenie-paketami.html