Стандарт для цих питань - стандарт ієрархії файлів . Це досить великий документ. В основному (і дуже приблизно) стандартними шляхами для Linux є:
/bin
& /sbin
призначені для життєво важливих програм для ОС, sbin - лише для адміністраторів;
/usr/bin
& /usr/sbin
- не для життєво важливих програм, але sbin - лише для адміністраторів;
/var
призначений для даних про життя для програм. Це можуть бути дані кешу, дані котушки, тимчасові дані (якщо вони не є /tmp
, які стираються при кожному перезавантаженні) тощо;
/usr/local
призначений для локально встановлених програм. Зазвичай він розміщує програми, які відповідають стандартам, але не були упаковані для ОС, а встановлюються вручну адміністратором (використовуючи, наприклад ./configure && make && make install
), а також сценарії адміністратора;
/opt
призначений для програм, які не пакуються та не відповідають стандартам. Ви просто помістіть туди всі бібліотеки разом із програмою. Це часто швидке та брудне рішення, але воно також може бути використане для програм, створених власноруч і для яких ви хочете мати певний шлях. Ви можете зробити свій власний шлях (наприклад /opt/yourcompany
) всередині нього, і в цьому випадку вам рекомендується зареєструвати його як частину стандартних шляхів;
/etc
не повинен містити програм, а скоріше конфігурації.
Якщо ваші програми є специфічними для послуг, що надаються сервісом, /srv
вони також можуть бути хорошим розташуванням для них. Наприклад, я вважаю за краще використовувати /srv/www
для веб-сайтів, а не /var/www
для того, щоб каталог містив лише ті дані, які я додав, і нічого, що йде з програмних пакетів.
Існують деякі відмінності між розподілами. Наприклад, системи RedHat використовують libexec
каталоги, коли системи Debian / Ubuntu не роблять.
FHS в основному використовується дистрибутивами Linux (я фактично не знаю жодної іншої ОС, яка дійсно їй відповідає). Інші системи Unix цього не дотримуються. Наприклад, системи BSD, як правило, використовують /usr/local
для упакованих програм, що не стосується Linux. Solaris має дуже різні стандартні шляхи.
Я настійно рекомендую вам ознайомитись із документом FHS, до якого я зв'язаний вище, якщо ви хочете дізнатися більше про це.