Каталоги Linux

Я пишу сценарий установки для моей программы, которая должна работать в ОС Linux/Unix. Что такое каталог по умолчанию для следующих файлов:

  1. Исполняемые файлы (программы). Программа должна быть выполнена путем ввода ее имени из командной строки.
  2. Общие библиотеки.
  3. Сторонние разделяемые библиотеки (программа не с открытым исходным кодом, поэтому мне нужно распространять сторонние библиотеки).
  4. Только для чтения файлы конфигурации программы для всех пользователей.
  5. Данные конфигурации доступны для чтения / записи для всех пользователей.

5 ответов

Решение

Список варьируется в зависимости от файловой системы Linux.

1) /bin, /usr/bin, /usr/local/bin

2/3) /lib, /usr/lib, /usr/local/lib

3./usr/share/lib

4) /etc это место только для чтения для данных конфигурации.

5) /usr/local/etc или обычно в /home каталог под именем каталога точек, если профиль позволяет расположить каталог bin под /home/user_id/bin где 'user_id' - соответствующий идентификатор входа в систему. Например, для пользователя 'jdoe' его конфигурация может быть записана в /home/jdoe/.configs или же ~/.configs

Не полагайтесь на это, по большей части файловая система LSB диктует, что должно быть как минимум:/bin, /etc, /usr, /lib, /home

Например, /usr может быть на другом разделе, так же как и для /home

Редактировать: Спасибо dtrosset за указание моего blooper....

  1. $PREFIX/bin
  2. $PREFIX/lib
  3. $PREFIX/lib
  4. /etc
  5. $HOME/.config

куда $HOME это домашний каталог пользователя, запускающего приложение, определяемый во время выполнения. $PREFIX зависит от способа распространения:

  • Если распространяется как источник, $PREFIX должен быть настраиваемым, но по умолчанию /usr/local;
  • Если распространяется как бинарный архив, $PREFIX обычно должно быть /usr/local (но /opt также распространено);
  • Если распространяется как пакет распространения (например, RPM или DPKG), $PREFIX должно быть /usr,

Документация и другие независимые от архитектуры файлы должны быть в $PREFIX/share/doc; сгенерированные программой файлы, используемые несколькими экземплярами, должны /var/run (такие вещи, как lockfiles, pidfiles и сокеты) или /var/lib (такие вещи, как общие двоичные базы данных).

Самый простой способ - это сделать .rpm вашего приложения, а затем использовать, например, alien сделать .deb из этого. В последний раз, когда я сделал деб, это было действительно очень просто. Упаковка также позволяет выполнять автоматическое обновление, если вы хотите включить его, и вам не нужно много думать о процедурах удаления.

Исполняемый (бинарный):

  • / Бен /
  • / USR / бен /
  • / Дом / ~ пользователь / бен /

Общий:

  • / USR / доли /

Другой:

  • /так далее/

Я не уверен, что было бы разумно писать сценарий установки, если вы не знаете файловую структуру ОС *nix. Кроме того, каждый дистрибутив *nix немного отличается, когда дело доходит до места хранения данных.

Я предлагаю вам прочитать это: http://www.comptechdoc.org/os/linux/commands/linux_crfilest.html

^. ^

Другие вопросы по тегам