Я пытаюсь установить конкретный LD_LIBRARY_PATH
для загрузки модифицированной версии libpcap вместо общесистемной.
Это работает, конечно, если я запускаю весь скрипт с LD_LIBRARY_PATH=/blah ./script_name
. Я хочу сделать это прозрачным для пользователя, поэтому я попытался установить $ENV{'LD_LIBRARY_PATH'}
. Это, однако, не меняет поведение. Я пытался поместить его в блок BEGIN
, чтобы он работал раньше других use
-s, но там тоже не повезло.
Я подозреваю, что это из-за того, что ld загружает все конфиги / конфигурирует себя в начале процесса перед запуском любой части скрипта. Есть ли способ заставить его работать?
Я бы хотел избежать глупостей вроде:
if (check_parent()) { $ENV...=.... ; `$0` ; exit }
(или внешние обертки, как было предложено - чем меньше беспорядочных и случайных оберток, тем лучше)