Как уже упоминалось , /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дистрибутиве или отредактирован системным администратором.