Незалежно від того, яку організацію обрали, деякі речі спростять, а деякі - складніше.
Організація файлів за типами, шляхи Unix (Into bin
, man
, lib/python
, ...), робить його легше використовувати файли. Якщо ви хочете запустити команду, ви знаєте, де її знайти, незалежно від того, який пакет її надає. Якщо ви хочете шукати документацію, це все в одному місці. Якщо якась програма пропонує модуль виділення синтаксису Vim, функцію завершення zsh або прив'язки Python, відповідний файл буде знаходитись там, де vim / zsh / python може його знайти.
Unix також організовує файли за шаблонами використання. Заходять файли конфігурації, входять /etc
файли, які не змінюються у звичайній роботі /usr
, а файли, що змінюються, автоматично заходять /var
. Дані користувачів підпадають під /home
. Це дуже корисно для управління конфігурацією (керуйте тим, що /etc
додається, та переліком встановлених пакетів). Також корисно визначити стратегії резервного копіювання: те, що є, /etc
і що /home
є критично важливим, тоді як те, що є, /usr
можна легко завантажити знову.
Основна вартість способу Unix полягає в тому, що установка програмного забезпечення розповсюджується в багатьох каталогах. Однак у сучасних системах Unix все одно є менеджери пакетів; управління файлами в багатьох каталогах - це далеко не найскладніша річ, яку вони роблять (відстеження залежностей дуже корисно і важче).
Порівнюйте це з Windows. Windows почався без управління пакетами, і кожен додаток десь створив свою власну директорію. Усі файли, як правило, знаходяться всередині цього каталогу: програми, статичні дані, дані користувачів ... За винятком випадків, коли бібліотеки, програми яких потрапляють у загальну системну директорію, не враховуючи конфліктів ("DLL hell"). З часом Windows стала багатокористувацькою, вимагаючи відокремлення каталогів користувачів від системних каталогів. Windows також створила центральне місце для файлів конфігурації (Unix /etc
) та деяких системних даних (Unix)/var
), реєстр. Це більше історичний артефакт багато в чому через відсутність управління пакетами та ранню історію як однокористувацької системи. У підходу Windows є багато обмежень: він не дозволяє програмним пакетам взаємодіяти легко. Наприклад, більшість встановлених програм не закінчується на шляху пошуку команд за замовчуванням, тому воно погано взаємодіє з будь-якою формою сценаріїв. Зазвичай інсталятори надають піктограму меню як окремий випадок - потрапляють у окремий системний каталог (à la Unix!).
Обмеженням підходу Unix є те, що він не дозволяє легко співіснувати декількох версій пакету, що особливо проблематично під час оновлення пакета. Способом отримати найкраще з обох світів було б розпакувати кожен пакунок у власному каталозі ( /opt
структурі) та створити ліси символічних зв’язків із каталогів пакетів до /usr
структури. Це те, що робить програмне забезпечення, як Stow .
Підсумовуючи підсумок, підхід Unix полегшує використання файлів, управління файлами та дозволити взаємодії пакетів; для цього потрібне програмне забезпечення для управління пакетами, але це все одно бажано. Підхід Windows полегшує керування пакунками вручну, але повинен орієнтуватися на модель Unix, щоб отримати корисну функціональність.