Каталоги Linux - PullRequest
       14

Каталоги Linux

2 голосов
/ 16 марта 2010

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

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

Ответы [ 5 ]

3 голосов
/ 16 марта 2010
  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 (такие как файлы блокировки, pidfiles и сокеты) или /var/lib (такие как общие двоичные базы данных).

3 голосов
/ 16 марта 2010

Список зависит от файловой системы 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 за указание на мой блок ....

2 голосов
/ 16 марта 2010

Ознакомьтесь со стандартом Иерархия файловой системы .

1 голос
/ 16 марта 2010

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

1 голос
/ 16 марта 2010

Исполняемый файл (двоичный):

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

Общий:

  • / USR / доли /

Другое:

  • / и т.д. /

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

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

^. ^

...