/usr /bin vs /usr /local /bin в Linux

Почему в Linux так много мест для размещения бинарных файлов? Есть по крайней мере эти пять:

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /usr/local/sbin/

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

Какой тип двоичного файла входит в какой из этих bin s?

364 голоса | спросил Lazer 5 MarpmSat, 05 Mar 2011 20:57:48 +03002011-03-05T20:57:48+03:0008 2011, 20:57:48

5 ответов


458
  1. /bin/sbin) предназначены для программ, которые должны быть на небольшом сегменте /, перед тем, как увеличить /usr и т. д. были установлены разделы. В наши дни он в основном служит стандартным местом для ключевых программ, таких как /bin/sh, хотя исходное намерение может по-прежнему иметь значение, например. установки на небольших встроенных устройствах.

  2. /sbin, в отличие от /bin, предназначен для программ управления системой (обычно не используемых обычными пользователями), необходимых до /usr.

  3. /usr/bin предназначен для обычных пользовательских программ, управляемых дистрибутивом.

  4. Существует /usr/sbin с тем же отношением к /usr/bin, что /sbin должен /bin.

  5. /usr/local/bin предназначен для обычных пользовательских программ not , управляемых менеджером пакетов распространения, например. локально скомпилированные пакеты. Вы не должны устанавливать их в /usr/bin, потому что будущие обновления могут изменять или удалять их без предупреждения.

  6. /usr/local/sbin, как вы можете догадаться, на этот момент, это /usr/local/bin как /usr/sbin в /usr/bin.

Кроме того, существует также /opt, который предназначен для монолитных пакетов нераспространения, хотя до того, как они были правильно интегрированы, различные дистрибутивы размещали Gnome и KDE. Как правило, вы должны зарезервировать его для больших, некачественных пакетов сторонних производителей, таких как Oracle.

ответил geekosaur 5 MarpmSat, 05 Mar 2011 21:22:12 +03002011-03-05T21:22:12+03:0009 2011, 21:22:12
54

Я рекомендую взглянуть на справочную страницу иерархии файловой системы:

man hier

, который также доступен в Интернете, например: http://linux.die.net/man/7/hier

ответил davitenio 5 MarpmSat, 05 Mar 2011 23:14:09 +03002011-03-05T23:14:09+03:0011 2011, 23:14:09
32

Стандартная иерархия файловой системы в Википедии помогла мне ответить на тот же вопрос, когда у меня было это, плюс это очень пояснительная таблица.

ответил Humphrey Bogart 6 MaramSun, 06 Mar 2011 00:03:01 +03002011-03-06T00:03:01+03:0012 2011, 00:03:01
15

Каталоги sbin содержат программы, которые обычно являются системным администрированием. Программы для обычных пользователей никогда не должны входить в них.

Во время запуска требуется несколько программ, и они заканчиваются в /bin/ или /sbin/. Они должны быть доступны до установки файловых систем. Такие вещи, как mount и fsck, которые необходимы для проверки и монтирования файловых систем, должны быть там.

Большинство упакованных программ заканчиваются на /usr/bin/ и /usr/sbin/. Они могут быть в файловой системе, отличной от корневой файловой системы. В некоторых случаях они могут быть подключены к сети.

Локальные программы и скрипты принадлежат /usr/local/bin/ и /usr/local/sbin/. Это идентифицирует их как явно нестандартные и, возможно, только доступные на сайте.

Для дальнейшего объяснения попробуйте запустить команду man hier, которая должна предоставить описание рекомендуемой иерархии файловой системы для вашего дистрибутива. Вы также можете прочитать о иерархии файловой системы в Википедии

ответил BillThor 5 MarpmSat, 05 Mar 2011 21:21:54 +03002011-03-05T21:21:54+03:0009 2011, 21:21:54
8

В 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 не приняли это решение ....

ответил schily 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 17:24:24 +0300000000pmTue, 02 Feb 2016 17:24:24 +030016 2016, 17:24:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132