LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./myAppUsingAlibraryInThisDirectory
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ~/dir/anotherAppUsingLibraryFromHere
Существует ли ярлык для этого так, чтобы я не должен был повторно снабжать префиксом ту же команду для каждой команды?
Для Windows не нужно ничто как это, но я предпочитаю использовать Ubuntu.
Когда Вы делаете что-то как
SOME_VARIABLE=some_value some_command
Вы работаете some_command
, но с переменной среды SOME_VARIABLE
набор к some_value
только для этой единственной команды.
Когда Вы запишете присвоение на отдельной строке без любого после команды, переменная будет установлена на это значение для всей сессии оболочки, т.е. обычно пока Вы не закрываете свой терминал. Вы будете, скорее всего, иметь к export
переменная, так, чтобы это не было только доступно в оболочке, но также и ко всем ее подоболочкам и дочерним процессам, т.е. командам, которые Вы выполните:
export SOME_VARIABLE=some_value
some_command
another_command and so on
Таким образом, переменная длится Вашу целую сессию оболочки, но она не сохранится через сессии. Это закончится при открытии нового терминала. Для сохранения переменных для всех сессий оболочки необходимо установить их в рамках сценариев запуска оболочки, обычно ~/.profile
. Просто добавьте строку, которая экспортирует Вашу переменную в конец этого файла и все Ваши оболочки, которые Вы открываете, с тех пор будет иметь это набором.
Другое примечание для Вашего конкретного случая LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
хотя: необходимо постараться не указывать относительные пути (здесь .
ссылка на текущий рабочий каталог) в любых связанных с путем переменных среды. Эти относительные пути будут всегда разрешаться относительно Вашего текущего рабочего каталога каждый раз, когда Вы выполняете команду, которая использует его, не относительно Вашего рабочего каталога в тот момент времени, когда Вы определяете переменную. Это может иметь непреднамеренные и запутывающие побочные эффекты и даже быть угрозами нарушения безопасности. Всегда используйте полные пути.