Как уже упоминалось , /usr/local
он предназначен в качестве префикса для программного обеспечения, установленного системным администратором, и /usr
должен использоваться для программного обеспечения, установленного из пакетов дистрибутива.
Идея заключается в том, чтобы избежать столкновений с распределенным программным обеспечением (например, rpm
и deb
пакетами) и дать администратору полный контроль над префиксом «local».
Это означает, что администратор может установить пользовательское скомпилированное программное обеспечение, все еще используя дистрибутив, такой как Debian.
Программное обеспечение, помещенное в / или / usr, может быть перезаписано при обновлении системы (хотя мы рекомендуем, чтобы при этих обстоятельствах дистрибутивы не перезаписывали данные в / etc). По этой причине локальное программное обеспечение не должно размещаться за пределами / usr / local без уважительной причины.
При установке пользовательского программного обеспечения Утер предлагает использовать $HOME
в качестве префикса, поскольку это гарантирует, что у вас есть права на запись. Лично я чувствую, $HOME/.local
что это более элегантное решение, так как оно позволяет избежать загромождения вашего (надеюсь) красивого и аккуратного домашнего каталога!
$HOME/.local/share
уже используется в спецификации XDG Base Directory freedesktop.org , поэтому вам не нужно много думать , чтобы добавить $HOME/.local/bin
к себе $PATH
и сделать $HOME/.local/lib
, и т. д., пока вы на нем.
Если вы не хотите, чтобы ваш префикс был скрытым каталогом, вы можете легко создать символическую ссылку на него, например:
ln -s .local ~/local
Примечание
Стоит отметить, что .config
(не .local/etc
) является значением по умолчанию, $XDG_CONFIG_HOME
используемым для пользовательских файлов конфигурации. Следует также отметить, что, к сожалению, большая часть программного обеспечения игнорирует XDG и создает файлы конфигурации там, где им нравится (обычно в корне $HOME
). Также обратите внимание, что $XDG_CONFIG_HOME
может быть не установлен, если $HOME/.config
требуется значение по умолчанию .
Как ни странно, нет каталога, зарезервированного для конфигурационных файлов по умолчанию дистрибутива, поэтому нет способа узнать, был ли файл в /etc
дистрибутиве или отредактирован системным администратором.