我想设置一个LD_LIBRARY_PATH
可能存在也可能不存在的环境变量(它目前似乎不存在,但我不确定它是否会在某个时候存在)。我已经成功地设置了自己的变量,并扩展了变量PATH
,方法是将我的变量放入path.sh
其中/etc/profile.d/
,这可以正常工作,但是这个新变量似乎不起作用。我尝试过扩展它或设置它,使用和不使用 if / else(见屏幕截图)。无论我做什么,它都不会被添加到环境变量中,我不知道为什么(因为它以前有效)。我确实重新启动了,所以这应该不是问题
为了方便阅读,以下path.sh
以文本形式提供内容:
export PATH="$PATH:/snap/cmake/current/bin"
export unreal_path="/DevShared/UnrealEngine"
export GRPC_DIR="/DevShared/Dev_SRS/grpc/1.20.0"
export LD_LIBRARY_PATH="/DevShared/UnrealEngine"
#LD_LIBRARY_PATH may not exist
#ldPath="$unreal_path"
#if [ $LD_LIBRARY_PATH -z ]
#then
# export LD_LIBRARY_PATH="$ldPath"
#else
# export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$ldPath"
#fi
#echo $LD_LIBRARY_PATH
sudo bash /etc/profile.d/path.sh
请注意,如果我通过执行后半部分而不是注释掉后半部分来调用脚本,bash 实际上会回显正确的路径。此外,该ldPath
变量仅用于测试目的,实际上并非必需。
答案1
注意:您只能在交互式 shell 中设置此环境变量。从 Ubuntu 9.04 Jaunty Jackalope 开始,LD_LIBRARY_PATH 不能在 $HOME/.profile、/etc/profile 或 /etc/environment 文件中设置。您必须使用 /etc/ld.so.conf.d/*.conf 配置文件。有关更多信息,请参阅 Launchpad 错误 #366728。
LD_LIBRARY_PATH
因安全原因而被重置。
您需要添加一个conf文件/etc/ld.so.conf.d/
也可以看看: