Каталоги Linux
Я пишу сценарий установки для моей программы, которая должна работать в ОС Linux/Unix. Что такое каталог по умолчанию для следующих файлов:
- Исполняемые файлы (программы). Программа должна быть выполнена путем ввода ее имени из командной строки.
- Общие библиотеки.
- Сторонние разделяемые библиотеки (программа не с открытым исходным кодом, поэтому мне нужно распространять сторонние библиотеки).
- Только для чтения файлы конфигурации программы для всех пользователей.
- Данные конфигурации доступны для чтения / записи для всех пользователей.
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....
$PREFIX/bin
$PREFIX/lib
$PREFIX/lib
/etc
$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
^. ^