Відповіді:
"Системи на базі Unix" - це занадто загальна категорія, щоб робити будь-які загальноприйнятні визначення, які застосовуватимуться до всіх систем на базі Unix. Проблема полягає в тому, що структура файлової системи (і "правильне" / "звичайне" місце для розміщення речей) настільки диво відрізняється між різними смаками "Unix" (якщо ви навіть можете це так назвати), що вам досить доведеться впоратися з цим у кожному конкретному випадку.
Кілька прикладів:
Відповідь полягає в тому, що канонічна, соціально прийнятна, добре інтегрована конвенція щодо того, де зберігати що-небудь у будь-якій операційній системі, будь то дистрибутив Linux, BSD, Solaris, HP-UX тощо, залежить від конкретних обставин . Конкретно:
apt-get
або yum
встановити її безпосередньо, не завантажуючи інсталятор з веб-сайту?На це немає прямої відповіді без врахування всіх факторів. Однак, зокрема для Ubuntu 12.04 , якщо ви збираєте свій пакунок у .deb
файл, який буде розповсюджуватися в PPA, або для подання у власні репозиторії ( main
або universe
) Ubuntu , я рекомендую зберігати кеш у /var/cache
. Але це лише для Ubuntu, і ви, звичайно, не повинні застосовувати припущення, що кожен дистрибутив або ОС на базі Unix вважатиме це прийнятним.
Крім того, якщо немає переваг для збереження даних кешу в черевиках системи, я думаю, вони також можуть належати в / tmp.
Зауважте, що ви зіткнетеся з цими проблемами з конвенційними шляхами для кожного типу файлів, якими користується ваша програма: спільних даних, виконуваних файлів, бібліотек, файлів довідки, зображень, звуку, веб-сторінок тощо. Тому мені потрібно задуматися, якщо ви запитуєте про файли кешу, як ви плануєте обробляти інші типи файлів. Ви просто робите наївні припущення і сподіваєтесь, що ніхто з вами не погоджується? Якщо ви ще не читали жодних документів або стандартів Ubuntu, які б підказували, куди їх розмістити, погана ідея просто припустити те чи інше. Наприклад, завжди вставляти бібліотеки в / usr / lib може бути помилкою, оскільки залежно від ситуації вони можуть належати в іншому місці.
Крім того, як розробник програмного забезпечення, я думаю, що найвідповідальніше, що потрібно зробити, це дозволити кінцевому користувачеві вирішити, де розмістити свої файли. Ви можете встановити за замовчуванням, але користувачі (і дистриб'ютори) можуть і налаштувати збірку відповідно до їх дистрибутива.
Найпростіший спосіб зробити це - створити свою програму за допомогою GNU Autoconf . Autoconf - це система збірки, де користувач може передавати аргументи командного рядка до сценарію збірки, щоб змінити шляхи різних "типів каталогів" подалі від значень за замовчуванням. Практично в кожному дистрибутиві є сценарій збірки для кожного пакета Autoconf, який встановлює відповідні дистрибутивам звичайні каталоги для кожного типу. Вони навіть спеціально мають тип каталогу для кешу: sharedstatedir .
gem
інструменти встановлюються інструментом. Однак, ймовірно, не було б доцільним створювати файли під час виконання у тому самому каталозі, де ваш додаток завантажується дорогоцінним каменем. З іншого боку, якщо ви користуєтеся додатком як користувач, вам потрібен каталог, який читають і записують для користувачів , а це означає або зміну дозволів (що вимагає ще більшої роботи системної інтеграції під час встановлення, наприклад створення групи тощо) або за допомогою глобального каталогу читання-запису, наприклад / tmp.
/usr
, /lib
або /bin
з додатку.
/tmp
папка. Відповіді на ваші запитання були б (скачати, ні, ні, ні, ні, ні, ні). Для більшості людей, мабуть, здається нормальним висновок,/tmp
але я новачок у системах Unix, і конвенції, засновані на ubuntu os, мені незнайомі. Це відкриває цікаву ідею для самоцвіту, щоб дозволити кешування агностичного диска (користувача агностика). Дякую, +1 від мене.