无法在 /etc/profile.d 中设置 LD_LIBRARY_PATH

无法在 /etc/profile.d 中设置 LD_LIBRARY_PATH

我在 Ubuntu Mate 16.04 中安装了 nVidia CUDA 7.5。但是,我在设置环境变量时遇到了问题。

这是nvidia-settings.sh我文件夹中的文件/etc/profile.d

export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:/usr/lib/nvidia-361:$LD_LIBRARY_PATH
export LIBRARY_PATH=/usr/lib/nvidia-361:/usr/local/cuda-7.5/lib64:$LIBRARY_PATH

但是,重启后LD_LIBRARY_PATH环境不会自动可用。以下是显示该问题的终端输出:

ponir@mate:~$ echo $LD_LIBRARY_PATH

ponir@mate:~$ echo $LIBRARY_PATH
/usr/lib/nvidia-361:/usr/local/cuda-7.5/lib64:
ponir@mate:~$ export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:/usr/lib/nvidia-361:$LD_LIBRARY_PATH
ponir@mate:~$ echo $LD_LIBRARY_PATH
/usr/local/cuda-7.5/lib64:/usr/lib/nvidia-361:
ponir@mate:~$ 

export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:/usr/lib/nvidia-361:$LD_LIBRARY_PATH在终端执行后我可以得到该变量。

可能是什么问题?谢谢。

答案1

Ubuntu wiki 帮助页面

注意:您只能在交互式 shell 中设置此环境变量。[即终端] 自 Ubuntu 9.04 Jaunty Jackalope 以来,LD_LIBRARY_PATH 无法在 $HOME/.profile、/etc/profile 或 /etc/environment 文件中设置。您必须使用 /etc/ld.so.conf.d/*.conf 配置文件。有关更多信息,请参阅 Launchpad 错误 #366728。

如何修复:

cd /etc/ld.so.conf.d

.conf在此处创建一个扩展名的文件

sudo nano cuda.conf

将路径添加为两行

/usr/local/cuda-7.5/lib64
/usr/lib/nvidia-361

保存并退出。检查ls -l该文件是否具有与目录中其他文件相同的所有权和权限,它们应该是:

-rw-r--r-- 1 root root

然后运行

ldconfig

这不会设置环境变量,但会适当地包含库,以便 CUDA 可以正常工作

答案2

首先,您应该已经通过 apt-get 安装了 cuda。

话虽如此,当您从源代码编译此类内容时,您通常需要运行以下命令:

 sudo ldconfig

如果没有理由安装编译版本,并且 apt-get 提供的版本足以满足您的需求,我建议卸载编译版本并安装 apt-get 提供的版本。

运行以下命令获取更多信息:

sudo apt-get update 
apt-cache search cuda | grep -i cuda

相关内容