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

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

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

 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终端I中的export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:/usr/lib/nvidia-361:$LD_LIBRARY_PATH可以得到该变量。

可能是什么问题? 谢谢。

来自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 

这不会设置env变量,但会适当地包含库以便CUDA工作

首先,你应该通过apt-get安装cuda。

话虽如此,当你从源代码编译这样的东西时,你经常需要运行以下命令:

  sudo ldconfig 

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

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

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