Назад | Перейти на главную страницу

Инструменты для отслеживания зависимостей пакетов

Многие менеджеры пакетов в дистрибутивах Linux и разновидностях BSD отслеживают зависимости пакетов. Но перед тем, как пакет попадает в репозиторий, его исследует сопровождающий, который отслеживает зависимости вручную.

Какое программное обеспечение можно использовать для отслеживания зависимостей пакетов? Обычные текстовые файлы не очень хороши, потому что они плоские. Структуры, которые могут сохранять структуру данных в виде деревьев, лучше, но не идеальны, поскольку зависимости не всегда образуют дерево, иногда они образуют граф.

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

У меня нет опыта в обслуживании репозиториев / пакетов, но я сделал свою долю пакетов, либо внутреннего программного обеспечения (RPM-пакеты общих скриптов и плагины Nagios, которые я установил во все коробки), либо действительно новых вещей, которые пока недоступен (Bacula в репозиториях CentOS - это полная мажорная версия после текущей).

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

Я просто храню репозиторий всех пакетов, которые я когда-либо создавал (в исходной форме и в виде готовых пакетов). По мере необходимости я включаю информацию о зависимостях в файл SPEC RPM, чтобы она включалась в RPM. Когда я хочу узнать, каковы были зависимости созданного мной пакета, я просто "rpm -qpR foo.rpm", в котором перечислены зависимости, сообщаемые RPM. Если вам нужен исчерпывающий рекурсивный список, вы можете просто написать рекурсивный скрипт, который использует эту логику для проверки зависимостей зависимостей и т. Д.

Если вы говорите о нижнем уровне, когда я создаю пакеты, я всегда храню исходный код в каталоге / buildroot, и для каждого пакета я обычно храню два файла: журнал экрана процесса сборки и файл buildnotes. Если есть какие-то странные проблемы с зависимостями, я отмечаю это в примечаниях к сборке (которые я обычно добавляю в пакет в / usr / share / doc / PACKAGENAME или в другом подобном месте), но для этого материала (понятные для человека зависимости, примечания для упаковщиков и т. д. - вещи более подробные, чем то, что формат пакета знает о зависимостях) Я не слышал об автоматическом способе отслеживания этого, за исключением вики или чего-то еще в make-файле.

Не уверен, что понимаю ваш вопрос, но это то, что делают менеджеры пакетов.

В Debian, например ты можешь использовать

apt-cache depends <packageX>

чтобы показать зависимости packageX, и

apt-cache rdepends <packageX>

чтобы показать обратные зависимости (пакеты, которые полагаются на packageX).

Если это не то, что вы ищете, может быть, вы могли бы описать, чем хотите заниматься?