Как ArchLinux обрабатывает конфликты зависимостей?

1500
Gary Chang

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

В исходном дистрибутиве с непрерывным выпуском, таком как Gentoo, вы создаете каждый пакет самостоятельно для версий библиотек, установленных в вашей системе, и в случае, если два пакета зависят от разных версий одной и той же библиотеки, вы можете установить эти разные версии в разные слоты. Таким образом, у вас есть разумный механизм, чтобы избежать конфликтов.

Недавно я обнаружил ArchLinux, еще один дистрибутив с скользящей моделью выпуска, и он основан на бинарных пакетах. Это также, кажется, не поддерживает слоты.

Теперь я озадачен. Что произойдет с ArchLinux, если я попытаюсь установить пакет, который зависит от версии библиотеки, отличной от той, которую я установил? Я вынужден обновить библиотеку? Но что произойдет, если два пакета зависят от разных версий библиотеки?

Я просмотрел различные вики-страницы ArchLinux на pacman, но не нашел закулисного объяснения.

6

1 ответ на вопрос

3
grawity

Зависимости с явной версией редки в Arch; большинство пакетов просто ожидают установки последней версии зависимости. (Пользователь не должен выполнять выборочные обновления, но должен сохранять все установленные пакеты в их последней версии.)

В редких случаях, когда требуются две версии с разными ABI, более старые версии могут быть предоставлены в виде пакетов с разными именами - например, libpng(последняя), libpng14(1.4), libpng12(1.2).

Похожие вопросы