У меня несколько другой взгляд на этот вопрос.
Хотя все в jlliagre ответе верно, для меня практическое применение при развертывании программного обеспечения в кластере сводится к переменным среды по умолчанию и повторное использование библиотек по умолчанию.
Проще говоря - / usr / local
и все его дочерние каталоги находятся в соответствующих переменных окружения, таких как PATH
и MANPATH
и / usr / local / lib {, 64}
находятся в файле ldconfig ( /etc/ld.so.conf.d/
).
/ opt /
OTOH не является - что является преимуществом, когда требуется, чтобы несколько версий или конфликтующие пакеты сосуществовали в системе, но требует некоторого управления средой (например, environment-modules ] или коллекций программного обеспечения ), и невыгоден тем, что потенциально может «тратить» пространство памяти на дублирование разделяемых библиотек, поскольку каждая установка в / opt
может быть полностью автономной.
Для совместной работы / usr / local
предполагается, что, например, двоичные файлы устанавливаются непосредственно в / usr / local / bin
(и страницы руководства, соответствующие / usr / local / share / man / ...
), а не в / usr / local / app / {bin, share / man, ...}
и т. д.
Вы не можете использовать двойные кавычки, так как присваивание произошло в первой строке. Если вы не избежите знака доллара:
$ a="\$(date)"
$ echo "$a"
$(date)
$ eval echo "$a"
Fri 5 Oct 18:53:45 CEST 2018
И с одинарными кавычками вы можете сделать это:
$ a='$(date)'
$ echo "$a"
$(date)
$ eval echo "$a"
Fri 5 Oct 16:45:45 CEST 2018