Почему в Linux так много мест для размещения двоичного файла? Есть как минимум эти пять:
/bin/
/sbin/
/usr/bin/
/usr/local/bin/
/usr/local/sbin/
И на моем офисном ящике у меня нет разрешений на запись для некоторых из них.
Какой тип двоичного файла входит в какой из этих bin
с?
filesystems
binary
Lazer
источник
источник
/usr/sbin/
.~/bin/
для личных вещей./bin
было объединено с/usr/bin
и/sbin
было объединено/usr/sbin
- см. Раздел «Слияние / usr» ./usr/local/bin
?Ответы:
/bin
(и/sbin
) предназначались для программ, которые должны были находиться в небольшом/
разделе перед/usr
монтированием больших и т. д. разделов. В наши дни он в основном служит стандартным местом для таких ключевых программ, как/bin/sh
, хотя первоначальное намерение все еще может иметь значение, например, для установки на небольшие встроенные устройства./sbin
в отличие от/bin
программ управления системой (обычно не используемых обычными пользователями), необходимых перед/usr
монтированием./usr/bin
предназначен для обычных пользовательских программ, управляемых распространением.Существует
/usr/sbin
с тем же отношением,/usr/bin
что/sbin
и к/bin
./usr/local/bin
предназначен для обычных пользовательских программ, не управляемых менеджером пакетов распространения, например, локально скомпилированных пакетов. Вам не следует устанавливать их,/usr/bin
потому что будущие обновления дистрибутива могут изменить или удалить их без предупреждения./usr/local/sbin
, Как вы можете догадаться , на данный момент, является ,/usr/local/bin
как/usr/sbin
к/usr/bin
.Кроме того, есть и
/opt
монолитные нераспространяемые пакеты, хотя до того, как они были должным образом интегрированы, различные дистрибутивы помещали туда Gnome и KDE. Как правило, вы должны зарезервировать его для больших пакетов с плохим поведением, таких как Oracle.источник
~/bin
и добавьте этот каталог в вашу PATH как пользователь ... Спасибо за примечание, я удалил свой серьезно устаревший комментарий.PATH
переменной, иecho $PATH
для меня это показывает/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
, что означает, что исполняемые файлы/usr/local/bin
имеют приоритет над теми, в/usr/bin
которых приоритет над теми, в которых/bin
.Я рекомендую взглянуть на справочную страницу по иерархии файловой системы:
Который также доступен онлайн, например: http://linux.die.net/man/7/hier
источник
Запись Стандартной иерархии файловой системы в Википедии помогла мне ответить на тот же вопрос, когда он у меня был, плюс у него очень пояснительная таблица.
Выдержка из этой страницы 1 :
1 Получено 19 июня 2019 года; постоянная ссылка .
источник
В
sbin
директории содержит программы , которые обычно только систему управления. Программы для постоянных пользователей никогда не должны заходить в них.Во время запуска требуется несколько программ, которые заканчиваются на
/bin/
или/sbin/
. Они должны быть доступны до монтирования файловых систем. Такие вещи, какmount
иfsck
которые необходимы для проверки и монтирования файловых систем, должны быть там.Большинство упакованных программ заканчиваются в
/usr/bin/
и/usr/sbin/
. Они могут быть в файловой системе, отличной от корневой файловой системы. В некоторых случаях они могут находиться на сетевом диске.Локальные программы и скрипты принадлежат
/usr/local/bin/
а/usr/local/sbin/
. Это идентифицирует их как явно нестандартные и, возможно, доступные только на сайте.Для дальнейшего объяснения попробуйте
man hier
выполнить команду, которая должна предоставить описание рекомендуемой иерархии файловой системы для вашего дистрибутива. Вы также можете прочитать об иерархии файловой системы в Википедии.источник
В 1970-х годах
UNIX
все официальные исполняемые файлы располагались/bin
и/usr/bin
находились под домашними каталогами пользователей (например/usr/dmr
), которые были доступны любому пользователю для хранения собственных двоичных файлов, которые могли бы также представлять интерес для других.Результатом этого открытия
/usr/bin
стало хранилище недокументированного программного обеспечения, поэтому онStephen Bourne
написалcron script
файл, который каждую ночь проверял наличие новых двоичных файлов и удалял все двоичные файлы, у которых не было документации или которые были обновлены без обновления их документации.В конце 1970-х
/usr/bin
был интегрирован в базовый дистрибутив ОС, и люди начали использовать его/usr/local/bin
с целью предыдущего открытия/usr/bin
.Через некоторое время системные администраторы использовали
/usr/local/bin
для храненияnon-local
программного обеспечения, которое было импортировано из сети (например, USENET), и поскольку компании UNIX не хотели повторять ту же ошибку, что и/usr/bin
снова, в 1987 году была конференция по иерархии файловой системы, на которой все компании UNIX согласились сдаться/usr/local/bin
и использовать/opt/<vendor>/bin
вместо этого.К сожалению, дистрибутивы Linux не последовали этому решению ....
источник
/opt
не о UNIX, а о Linux. Это все равно что ответить «Почему у машин 4 колеса?» с "Велосипедов есть 2! К сожалению, машины нет." что не помогает ОП понять, почему у автомобилей 4.