Двоичный файл linux должен распознавать и использовать для этого локальную библиотеку

Простейшим решением было бы просто объединить два файла:

cat.env.env.overwrite >.env.new

Тогда последняя обновленная запись будет активной. Теперь нам просто нужно удалить все двойные записи.

А если порядок и прочие комментарии не имеют значения:

for variable in \
    $(cut -d= -f1.env.overwrite.env | sort |uniq) ; 
do 
     grep ^${variable}=.env.overwrite || \
     grep ^${variable}=.env ; 
done
0
08.11.2021, 14:03
2 ответа

Пути поиска в библиотеке контролируются либо на системном уровне с помощью записей в базе данных /etc/ld.so.cache, либо на уровне приложения путем установки переменной средыLD_LIBRARY_PATH

Система -широкая

Добавьте каталог (или каталоги ), содержащие необходимые библиотеки, в текстовый файл в разделе /etc/ld.conf.d. В некоторых системах вам может потребоваться добавить их непосредственно в /etc/ld.conf.

Запустите ldconfigдля обновления базы данных библиотеки/etc/ld.so.cache

Приложение

Установить или расширить LD_LIBRARY_PATH, чтобы включить каталог (или каталоги ), содержащие необходимые библиотеки для контекста только вашего приложения:

LD_LIBRARY_PATH="/usr/local/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/local/bin/your_app arg1 arg2…

Если вы можете гарантировать, что LD_LIBRARY_PATHпусто или не содержит ничего, относящегося к вашему приложению, вы можете упростить этот вызов:

LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/your_app arg1 arg2…

В любом случае, если у вас уже есть /usr/local/binв вашем $PATH, вы можете упростить, не используя явный путь к приложению. Например,

LD_LIBRARY_PATH=/usr/local/lib your_app arg1 arg2…
0
08.11.2021, 14:20

В дополнение к ответу @roaima вы можете скомпилировать свое приложение для явного поиска в локальной библиотеке. Добавить

-Wl,-rpath /usr/local/lib

в вашу команду компиляции (при условии, что вы используетеgcc).

0
08.11.2021, 14:24

Теги

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