Итак, какие вообще могут возникать виды зависимостей между пакетами:
- Бинарник слинкован с другим бинарником по относительному пути (пример: libc.so.6). К этому же пункту относим зависимости от библиотек в программах на интерпретируемых языках.
- Бинарник слинкован с другим бинарником по абсолютному пути. (единственный разумный пример: /lib/ld-linux.so.2 в elf-ах)
- Одна программа вызывает другую по относительноу пути (через PATH).
- Одна программа вызывает другую по абсолютному пути. (пример: #!/bin/sh)
- Один пакет является плагином к другому. Сюда же относим случаи, когда «плагинность» неявная. Например, httpd добавляет unit для запуска через systemd — такой unit является плагином относительно systemd.
- Программа использует некие стандартные ресурсные файлы (например, базу mime-типов или стандартную тему иконок hicolor).
Других видов зависимостей я не могу придумать. Я что-нибудь упустил?