Я понимаю, что в Windows, а также в Linux и Unix программное обеспечение может быть установлено в любой каталог. Также, если пакеты установлены с использованием системы упаковки дистрибутива, файлы будут размещены в правильном месте.
Но иногда при установке программного обеспечения запрашивается путь для размещения файлов. В случае дистрибутива Linux, где это место по умолчанию ( C:\Program Files
или C:\progra~1
эквивалентное)? Различен ли он для разных дистрибутивов? Если да, то где это будет RHEL
, Suse
и Ubuntu
?
Прямого эквивалента нет. Структура каталогов очень отличается. В Windows у вас есть один каталог для каждого установленного пакета / программного обеспечения, который содержит все файлы, связанные (например
C:\Program Files\MyProgram
). В Linux каждое программное обеспечение «разбросано» по многим каталогам в соответствии с типом файла и некоторыми другими правилами.В качестве примера мы можем рассмотреть, где установлены различные файлы, связанные с
xscreensaver
программой:Не волнуйтесь, как правило , когда установщик спросит , куда установить на правильный ответ является один из следующих:
/
,/opt
,/usr
,/usr/local
Как видите, довольно все (1) файлы
xscreensaver
установлены в/usr
соответствии с неким простым правилом: исполняемые файлы в/usr/bin
, страницы руководства в/usr/share/man
, документация в/usr/share/doc/packages/PROGRAMNAME
и так далее.Когда установщик запрашивает установку
prefix
, обычно он хочет указать базовый путь, по которому устанавливается программа. В моемxscreensaver
примере это так/usr
.Как простое правило:
/
должно содержать только программу, необходимую для загрузки системы (какC:\windows\system32
),/usr/local
должно содержать программы, которые нужны только на этом уникальном компьютере,/opt
(2) все дополнительные программы, которые имеют нестандартную структуру каталогов и/usr
все стандартное программное обеспечение ,В любом случае, существует стандарт, который детально определяет все эти правила: Стандарт иерархии файловой системы
(1) общесистемные файлы конфигурации должны находиться в
/etc
(2) довольно устаревший под Linux
источник
/opt
является предпочтительным для стороннего программного обеспечения в/usr/local
течение достаточно долгого времени./usr/share
называется «поделиться», потому что оно совместно используется различными архитектурами (документация, сценарии, изображения), в то время/usr/lib*
как для архитектурно-зависимых файлов (а не исполняемых файлов, которые/usr/bin
).Ususually,
/bin
,/usr/bin
,/usr/local/bin
, или/opt/bin
. Я думаю/usr/bin
и/opt/bin
ближе всего к программным файлам, потому что обычно они предназначены для не критичных для системы двоичных файлов, которые устанавливаются системным администратором, хотя в отличие от окон, оба из них содержат программы, установленные с помощью менеджера пакетов. Где/usr/local/bin
для не дистрибутивного программного обеспечения./bin
для системы критических двоичных файлов нравятся/bin/sh
.источник
/bin
,/usr/bin
,/usr/local/bin
Или/opt/bin
. Разве нет одного стандартного местоположения? Причина, по которой я спрашиваю, заключается в том, что я устанавливаю программное обеспечение на нескольких виртуальных машинах, а расположение по умолчанию соответствует тому, какой раздел занимает наибольшее пространство Я хочу изменить пространство разделов на каталог, куда обычно направляется программное обеспечение, и чтобы программное обеспечение не размещалось по-разному во всех виртуальных машинах./opt
например, обычно используется для проприетарного программного обеспечения./usr/
это отдельный раздел./bin
и/usr/bin
дискриминация устарела сейчас; Исторически система критичных материал будет в/bin
,/lib
... (непосредственно в корневом каталоге), а/usr
(с/usr/bin
,/usr/lib
...) будет установлен позже (возможно через сеть), не являются необходимыми для базовой функциональности системы./opt
не должен выходить . В прошлом некоторые люди думали, что было бы неплохо иметь некоторые приложения в другом месте, чем все другие приложения./bin
находится в корневом разделе. Поскольку в некоторых системах пространство в корневом разделе ограничено, второстепенные двоичные файлы (т. Е. Все пользовательские приложения) были перемещены в/usr/bin
.Взгляните на
man hier
это «Описание иерархии файловой системы».источник
Как уже отмечали другие, программы, установленные через менеджер пакетов, разбросаны по нескольким каталогам. Хотя бинарный файл обычно обнаруживается
/usr/bin
, в нем находятся системные файлы конфигурации/etc
и т. Д.Если приложение не установлено через менеджер пакетов, файлы должны быть установлены в месте, где они не мешают менеджеру пакетов. Это место есть
/usr/local
.Если вас попросят указать путь установки, наиболее распространенным вариантом будет
/usr/local/appname
источник
Введите
echo $PATH
свой терминал, чтобы увидеть пути, по которым оболочка будет искать команду. Идет проверка файла в порядке его печати.источник
Ну, вы не найдете все свои решения,
/bin
иsbin
потому что они содержат в основном системные команды (то есть команды, используемые системой)./usr/bin
В идеале можно назвать"Program Files"
мир Unix. Что касается/opt
очень немногих пакетов, которые используют это расположение для установки, то же самое относится и к пакетам, использующим/etc/
или/var
расположенным какисточник