Правильный способ экспорта нескольких LD_LIBRARY_PATH - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок с точки зрения использования Linux. В соответствии с инструкциями по моему проекту, я должен несколько раз экспортировать LD_LIBRARY_PATH, и я не уверен, что не перезаписываю их.

#Cupti + Tensorflow_CUDAit
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

#Mujoco
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/robolab/.mujoco/mujoco200/bin
export MUJOCO_PY_MJPRO_PATH=$HOME/.mujoco/mujoco200/
export MUJOCO_PY_MJKEY_PATH=$HOME/.mujoco/mjkey.txt

#Mujoco_py
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so

Это правильный путь или я перезаписываю их? Если это так, что является правильным способом?

Заранее спасибо.

1 Ответ

2 голосов
/ 03 ноября 2019

Ваш подход должен работать, т. Е. Вы добавляете несколько путей к LD_LIBRARY_PATH (а не перезаписываете), однако есть две ловушки, на которые следует обратить внимание.

(1) предпочитают цитировать LD_LIBRARY_PATH, как в:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":/home/robolab/.mujoco/mujoco200/bin

... чтобы внедренные пробелы в LD_LIBRARY_PATH не вызывали проблемы.

(2) Рассмотрите порядок объединения путей, например, вы можете альтернативно сделать

export LD_LIBRARY_PATH=/home/robolab/.mujoco/mujoco200/bin:"$LD_LIBRARY_PATH"

Если вы поэкспериментируете с обоими подходами, а затем echo $LD_LIBRARY_PATH, вы увидите, что он меняет порядок путей, и это может быть важно, если у вас есть одни и те же библиотеки в нескольких местах.

...