Вони мають патчі, застосовані до дерева вихідного коду, які адаптують розташування.
Існує достатньо "стандартів", щоб кожен дистрибутив міг вибрати свій вибір, виходячи з (особистих) уподобань та / або історичної практики. Рідко є рішення, яке має лише переваги. Іноді це дратує / заплутує, але послідовність у межах одного дистрибутива є найважливішою метою: це призводить до менших проблем і легшого вгадування, де можуть бути програми для програми 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), ви побачите, що ви поєднуєте оригінальний оригінальний тарбол пакету з одним або декількома патчами, які будуть застосовані перед налаштуванням / компіляцією .