Различия между / home, / root и / usr

Я узнал эту тему: В чем разница между / opt и / usr / local?

И эта ссылка: http://www.pathname.com/fhs/pub/fhs-2.3.html

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

Для системы, в которой я хочу установить свои приложения, которые должны использоваться локально пользователем, лучше ли разместить приложения в /home или /usr/bin или /root ? Есть ли «хорошая практика», о которой я должен знать?

3 Solutions collect form web for “Различия между / home, / root и / usr”

Ну, есть разные соображения.

  1. Вы ничего не ставите в /root . Это только для uid 0 и системного администрирования; он часто даже не доступен пользователям без полномочий root.

  2. Установите под /home/<username> если вы являетесь непривилегированным пользователем на машине, и вы лично должны иметь возможность использовать программное обеспечение, которое вы устанавливаете. Если вы администратор, вы, как правило, не должны возиться с гомингами пользователей.

  3. Установите в /usr/local для обычных программных пакетов, которые по какой-либо причине вы устанавливаете из источника локально (вместо установки через диспетчер пакетов). Обычно это происходит, если вы запускаете стандартный файл autoconf ./configure && make && make install incantation из исходного tarball. Я также добавил небольшие утилиты, которые я разработал локально в /usr/local/bin , если я хочу, чтобы они были универсальными.

  4. Установите под /opt стороннее программное обеспечение, поставляемое в комплекте (хорошим примером этого является Caliber, если вы используете их двоичный установщик). Это делает отдельный каталог под /opt для каждого установленного вами пакета, и этот каталог имеет все реквизиты для пакета (в отличие от /usr или /usr/local , где двоичные файлы для всех пакетов находятся в bin , библиотеки для всех пакеты находятся под lib и т. д.). В общем, если вы сами пишете или упаковываете программное обеспечение, для которого требуется множество разных компонентов, может быть, это хорошо, но здесь, вероятно, субоптимально попытаться установить там чужой пакет, если это не их рекомендация. Это может быть вопросом мнения.

Если вы создаете пакет, который пользователи или администраторы будут устанавливать вручную, вы хотите либо /opt либо /usr/local . Если вы устанавливаете чужой пакет, следуйте их рекомендациям. Если вы упаковываете что-то для распространения (чего вы, вероятно, нет), используйте /usr .

Системный комплексный пакет с хорошим поведением ставит:

  • исполняемые файлы в /usr/bin
  • .so и .a библиотеки в /usr/lib
  • независимые от архитектуры данные (включая документацию) в /usr/share
  • общесистемные данные конфигурации в /etc
  • данные конфигурации пользователя в dotfile в $HOME или в $HOME/.config

Если ваш пакет не интегрирован в систему (например, что вы строите из исходного кода), ваш префикс будет /usr/local а не просто /usr .

Если ваш пакет не соответствует этому соглашению о разделении данных, он должен войти в /opt .

Если у вас нет прав на запись за пределами вашего $HOME , вы можете реплицировать bin , lib и share в $HOME/.local но большинство менеджеров пакетов на уровне пользователя не следуют этому (по моему опыту).

/root – это только корень пользователя root. Обычно вам не нужно беспокоиться о /root если вы хотите поместить программное обеспечение в систему.

/ home является базовым каталогом для личных пользователей. В Windows XP / home сопоставим с% HOMEDRIVE%. Полный путь, обычно / home / $ Loginname, сопоставим с% HOMEPATH%.

/ root – домашний каталог главной учетной записи суперпользователя. Он находится на /, чтобы сделать его доступным во время ранней загрузки, где / home может быть недоступным (сетевой ресурс или собственная точка монтирования).

Я не буду повторять то, что можно прочитать в других ответах о / usr / local …

  • Конвенция для основной структуры развертывания приложений на Unix-подобном сервере приложений
  • Многоэлементные бин-каталоги
  • Стандартные переменные среды для путей, специфичных для распространения
  • Обмен каталогами в дереве, из / dir1 / dir2 / dir3 / dir4 to / dir1 / dir2 / dir4 / dir3
  • Бесконечно вложенные каталоги внутри / usr / bin / X11
  • Что это за папка / run / user / 1000?
  • Как файловая система / организация Linux отличается от Windows?
  • соглашение о временных временных данных
  • Linux и Unix - лучшая ОС в мире.