我必须将 PATH 添加到 /etc/environment 但是它会损坏我的机器 - 为什么?

我必须将 PATH 添加到 /etc/environment 但是它会损坏我的机器 - 为什么?

我正在尝试在 Ubuntu 18.04 上使用 tensorflow深度学习 AMI从 Amazon 下载,其中已安装所有 CUDA 版本。但是,由于一些 $PATH 问题,让 tensorflow 1.X 与 GPU 配合使用并不容易。如果不采取任何措施,使用 TF 1.X 时会发生此运行时错误:

2020-03-25 16:31:58.162200: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory

但它在 TF 2.X 上可以正常工作

所以在阅读了一些帖子之后喜欢这个或,我决定将这些命令添加到 1) 中~/.bashrc,然后再添加到 2) 中~/.profile

export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda-10.0/bin:$PATH"

但没有效果(我确实重新启动了机器或使用了source ~/.bashrc命令)。

但是,如果我将这些变量添加到/etc/environmentTensorFlow,它就会找到这些变量并完美运行!问题是,它完全破坏了机器,因为我认为它会覆盖所有其他$PATH变量LD_LIBRARY_PATH。我的理论是,由于/etc/environment该变量具有最高优先级,LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64因此它正是 TF 1.X 所需要的。

问题

我该如何正确添加这个变量,以便 TF 1.X 找到它的 CUDA-10.0 文件并且 TF 2.X 找到它的更高 CUDA 版本?

答案1

我自己的问题的答案就在这里:为 CUDA 设置 LD_LIBRARY_PATH和它的这个帖子但不要忘记sudo ldconfig

相关内容