2010-03-16 2 views
2

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

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

Полезно: http://standards.freedesktop.org/basedir-spec/latest/, http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard – 2010-03-16 09:54:09

+2

@ Миграторы: это не похоже на SuperUser, поскольку это о том, как * написать программу установки *. – 2010-03-16 09:55:36

ответ

3

Перечень варьируется в зависимости от файловой системы 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 под именем каталога точки, если профиль позволяет каталог бен находиться под /home/user_id/bin где «user_id» является отношение Логин ID ..для примера для пользователя «JDoe», его конфигурация может быть записана в /home/jdoe/.configs или ~/.configs

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

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

Edit: Благодаря dtrosset за указание на мой ляп ....

+0

НЕТ!/usr/share для файлов, которые могут использоваться несколькими архитектурами (i686, amd64, ppc, armel ...), например изображениями или документацией. Это не для разделяемых библиотек, которые должны идти как 2). –

+0

/etc доступен только для чтения на моем компьютере Ubuntu, какой каталог доступен для доступа для чтения/записи для всех пользователей, таких как Documents and Settings \ All Users in Win XP? –

+0

@Alex: Другое место может быть/usr/local/etc – t0mm13b

1

Executable (Binary):

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

Shared:

  • /usr/share/

Другое:

  • /и т.д./

Я не уверен, что было бы целесообразно, чтобы писать инсталляционный скрипт, если вы не знаете файловую структуру * Никс ОПЕРАЦИОННЫЕ СИСТЕМЫ. Кроме того, каждый дистрибутив * nix сильно отличается, когда дело доходит до того, где хранятся данные.

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

^^

+2

NO!/usr/share для файлов, которые могут использоваться несколькими архитектурами (i686, amd64, ppc, armel ...), например изображениями или документацией. Это не для разделяемых библиотек, которые должны идти как 2). –

+1

+1 для ссылки, но вы должны упомянуть, что пользовательские программы не должны входить в/bin –

+0

Извинения по всему кругу, первый ответ на утро - пожалуйста, простите меня: '(- Cheers for the +1 хотя! –

1

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

3
  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 (такие как общие двоичные базы данных).

+0

Справа. И по поводу комментариев OPs, если у вас нет привилегий root, которые вы устанавливаете в $ HOME и обновляете свою переменную пути, чтобы это отразить. – dmckee