Вони мають патчі, застосовані до дерева вихідного коду, які адаптують розташування.
Існує достатньо "стандартів", щоб кожен дистрибутив міг вибрати свій вибір, виходячи з (особистих) уподобань та / або історичної практики. Рідко є рішення, яке має лише переваги. Іноді це дратує / заплутує, але послідовність у межах одного дистрибутива є найважливішою метою: це призводить до менших проблем і легшого вгадування, де можуть бути програми для програми Y, якщо ви вже знаєте, де подібні речі (файли налаштування / конфігурації, наприклад) для програми X.
Приклад застосування патчу
Мій пакет python ruamel.yaml
доступний у Debian Sid. Раніше це залежало від того ruamel.base
, і користувачі, які встановили через PyPI, можуть все-таки встановити старіші, несумісні версії ruamel.base
. Використання setup.py
/ PyPI не є реальним управлінням пакетом, тому ви не можете видалити пакет, встановлений раніше через залежності. Я вирішив проблему для користувачів PyPI, створивши новішу версію, ruamel.base
яка усунула проблеми, пов’язані зі старими ruamel.base
пакунками, і стала ruamel.yaml
залежною від нової версії.
Для Sid це не проблема: старіші версії ruamel.base
файлів не були встановлені (або їх можна було видалити за допомогою управління пакетами). Тому вони застосовують патч , який ви можете знайти на ruamel.yaml
сторінці інформації для Сіда , який видаляє залежність ruamel.yaml
від ruamel.base
.
Інші дистрибутиви мають подібні налаштування. Наприклад, якщо ви подивитеся на характеристики створення вихідного RPM-файлу (наприклад, для RedHat / CentOS / SuSE), ви побачите, що ви поєднуєте оригінальний оригінальний тарбол пакету з одним або декількома патчами, які будуть застосовані перед налаштуванням / компіляцією .