місцезнаходження за замовчуванням postgresql при установці через apt-get


15

При встановленні postgresql 14.04 він вставляє основні серверні програми postgres за адресою:

/usr/lib/postgresql/9.3/bin/postgres

каталог даних, де будуть зберігатися всі кластери бази даних:

/var/lib/postgresql/9.3/main

і файл конфігурації за адресою:

/etc/postgresql/9.3/main/postgresql.conf

Тепер я можу зрозуміти, чому postgresql.conf та інші файли конфігурації зберігаються в /etc/postgresql/9.3/main. Зрештою, / etc - це файли конфігурації, які зберігаються в системі Linux.

Однак навіщо розміщувати область зберігання бази даних у / var / lib? Я можу зрозуміти / var, оскільки це місце для нестатичних даних, а бази даних нестатичні. Але чому / var / lib зокрема?

Далі я вважаю, що / bin призначений для програм, необхідних для завантаження. / usr / bin призначений для програм, що включаються в дистрибутив. та / usr / local / bin має бути для програм, не включених до дистрибуції, але доступних для загальносистемного використання. Отже, оскільки postgresql призначений для загальносистемного використання, він повинен бути доступний в / usr / local / bin. Тим не менш, вони розміщують його в / usr / lib, що я не маю поняття чому.

Чому я задаю це питання? Тому що без порядку та структури складно запам'ятати розташування програм, якими ви користуєтесь щодня.

Відповіді:


11

У стандарті ієрархії файлової системи `/ var / lib / зазначено як (курсивом найважливіша частина):

5.8.1 Мета

Ця ієрархія містить інформацію про стан, що стосується програми чи системи. Інформація про стан - це дані, які програми змінюють під час роботи, і вони стосуються одного конкретного хоста. Користувачам ніколи не потрібно змінювати файли в / var / lib для налаштування роботи пакету.

Інформація про стан зазвичай використовується для збереження стану програми (або групи взаємозалежних додатків) між викликами та між різними примірниками однієї програми. Інформація про стан, як правило, повинна залишатися дійсною після перезавантаження, не повинна вести журнал виводу і не повинна бути спустованими даними.

Додаток (або група взаємопов'язаних додатків) повинен використовувати підкаталог / var / lib для своїх даних. Є один необхідний підкаталог / var / lib / misc, який призначений для файлів станів, яким не потрібен підкаталог; інші підкаталоги повинні бути присутніми лише в тому випадку, коли відповідна програма включена в дистрибутив.

/ var / lib / - це місце, яке потрібно використовувати для всієї підтримки упаковки для розповсюдження. Звичайно, різні дистрибутиви можуть використовувати різні назви.

Якщо коротко: / var / lib / - це дані, які використовуються локально.

Тому має сенс розміщувати дані бази даних у каталог / var / lib / {mysql | postgress} /, але ... FHS - це стандарт, створений здебільшого для використання дистрибутивами . Як користувач, ви можете розміщувати свої дані куди завгодно, і це, головним чином, питання думки.


Ви неправильно розумієте слово "місцевий". / usr / local / bin / призначений не для системного програмного забезпечення, а для власного програмного забезпечення (в основному ніщо з "local" in ніколи не повинно торкатися системою. Як пояснює FHS:

/ usr / місцеві /

4.9.1 Мета

/ Usr / local ієрархія використовується для системного адміністратора при локальній установці програмного забезпечення. Це повинно бути захищено від перезапису при оновленні системного програмного забезпечення. Він може використовуватися для програм і даних, які можна поділити серед групи хостів, але їх не знайти в / usr. Місцеве програмне забезпечення повинно розміщуватися в / usr / local, а не / usr, якщо воно не встановлюється для заміни або оновлення програмного забезпечення в / usr.

Виконаний файл, встановлений із системного програмного забезпечення, ніколи не повинен переходити ні на що місцеве.


Тепер для / usr / lib / .

4.7.1 Мета

/ usr / lib включає файли об'єктів, бібліотеки та внутрішні бінарні файли, які не призначені для виконання безпосередньо користувачами або скриптами оболонки. Програми можуть використовувати один підкаталог під / usr / lib. Якщо програма використовує підкаталог, всі дані, що залежать від архітектури, виключно використовувані додатком, повинні бути розміщені в цьому підкаталозі.

postgressql - це, напевно, демон, запущений під час завантаження? Якщо так, то є сенс розмістити його тут. Ви не повинні використовувати команду самостійно, але запускаєте службу. Файли в / usr / lib /, як правило, мають власного користувача та групу та / або демон, що обмежує доступ до / var / lib (наприклад, лише mysqld може отримати доступ / var / lib / mysql /; це буде те саме для postgressql)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.