You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下zshrc中部分LD_LIBRARY_PATH设置未生效问题咨询

zshrc中LD_LIBRARY_PATH配置失效问题排查

问题描述

在Ubuntu系统的zshrc中配置LD_LIBRARY_PATH时,ROS和CUDA相关的路径无法生效。执行echo ${LD_LIBRARY_PATH}后,仅显示Isaac Gym注释后的路径配置,ROS和CUDA的配置完全消失。将ROS和CUDA的代码段移到Isaac Gym配置之后,所有路径都能正常显示。

原始zshrc配置片段

# ros
source /opt/ros/noetic/setup.zsh
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH

# cuda 
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.2
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-11.2/lib64

# isaac gym
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
export LD_LIBRARY_PATH=/home/xzc/mambaforge/envs/mvp/lib

# mujoco
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/xzc/.mujoco/mujoco200/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/xzc/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/xzc/.mujoco/mujoco211/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/xzc/.mujoco/mujoco214/bin

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/nvidia
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so

执行echo ${LD_LIBRARY_PATH}的输出

/home/xzc/mambaforge/envs/mvp/lib:
/home/xzc/.mujoco/mujoco200/bin:
/home/xzc/.mujoco/mujoco210/bin:
/home/xzc/.mujoco/mujoco211/bin:
/home/xzc/.mujoco/mujoco214/bin:/usr/lib/nvidia

原因分析

zshrc是从上到下逐行执行的,环境变量的赋值会直接覆盖原有内容:

  • ROS和CUDA部分的配置都是采用追加模式(比如$LD_LIBRARY_PATH或${LD_LIBRARY_PATH:+:...}),会保留之前的路径并添加新路径。
  • 但Isaac Gym的配置是直接赋值:export LD_LIBRARY_PATH=/home/xzc/mambaforge/envs/mvp/lib,这会完全清空之前所有的LD_LIBRARY_PATH内容,把它替换成这个单一路径。后续Mujoco等配置都是在这个被清空后的基础上追加,所以之前的ROS和CUDA路径完全丢失。

当把ROS和CUDA代码段移到Isaac Gym之后,它们的追加操作是在Isaac Gym的路径基础上添加,所以所有路径都会被保留。

解决方案

将Isaac Gym的LD_LIBRARY_PATH配置改为追加模式,根据需求选择以下两种方式之一:

  1. 把Isaac Gym的路径放在现有路径的前面:
export LD_LIBRARY_PATH=/home/xzc/mambaforge/envs/mvp/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

(${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}的作用是:如果LD_LIBRARY_PATH已有内容,就添加冒号和原有内容;如果为空则只保留新路径)

  1. 把Isaac Gym的路径放在现有路径的后面:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/xzc/mambaforge/envs/mvp/lib

修改后重新加载zshrc(source ~/.zshrc),再执行echo ${LD_LIBRARY_PATH}就能看到所有路径了。

内容的提问来源于stack exchange,提问作者KKKmelody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:57:33