Есть ли способ применить $LD_LIBRARY_PATH: LD_LIBRARY_PATH=. для каждой команды автоматически?

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ./myAppUsingAlibraryInThisDirectory
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. ~/dir/anotherAppUsingLibraryFromHere

Существует ли ярлык для этого так, чтобы я не должен был повторно снабжать префиксом ту же команду для каждой команды?

Для Windows не нужно ничто как это, но я предпочитаю использовать Ubuntu.

0
задан 5 February 2019 в 04:59

1 ответ

Когда Вы делаете что-то как

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:. хотя: необходимо постараться не указывать относительные пути (здесь . ссылка на текущий рабочий каталог) в любых связанных с путем переменных среды. Эти относительные пути будут всегда разрешаться относительно Вашего текущего рабочего каталога каждый раз, когда Вы выполняете команду, которая использует его, не относительно Вашего рабочего каталога в тот момент времени, когда Вы определяете переменную. Это может иметь непреднамеренные и запутывающие побочные эффекты и даже быть угрозами нарушения безопасности. Всегда используйте полные пути.

2
ответ дан 26 October 2019 в 09:00

Другие вопросы по тегам:

Похожие вопросы: