我安装了不同版本的 CUDA /usr/local/cuda-...
,我需要某种方法来为不同的项目选择正确的版本。
我试过
export CUDA_HOME=/usr/local/cuda-10.0
export PATH=\$CUDA_HOME/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=\$CUDA_HOME/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
但 PATH 中的变量似乎没有扩展。
我目前最好的想法是这样的:
BASEPATH=$PATH:$HOME/installed/pycharm-community-2020.2/bin
LIBBASEPATH=$LD_LIBRARY_PATH
function env100() {
CUDA_HOME=/usr/local/cuda-10.0
setpaths
}
function env101() {
CUDA_HOME=/usr/local/cuda-10.1
setpaths
}
function setpaths() {
export PATH=$BASEPATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LIBBASEPATH:$CUDA_HOME/lib64
}
但我无法想象这是做我想做的事情的最简单的方法。而且我使用它的时间还不够长,也不知道它会以何种奇怪的方式爆炸。 (编辑:首先要爆炸的是:Python virtualenvs。)
相关:我正在尝试做与这个问题类似的事情:在 bash 中设置“动态”路径的正确方法是什么? (适用于安卓 SDK)
那么,让我们听听您的建议吧!
答案1
如果没有关于您想要做什么的更多信息,就很难推荐一些东西:
路径扩展是这样完成的:
PATH=$PATH:$CUDA_HOME/bin:/foo/otherpath
.bashrc
您可以创建更多用户,为每个用户环境(如果使用 bash)设置特定的 PATHexport
。要在用户之间切换,su username
请运行 runexit
以切换回来。奔跑whoami
寻找方向。运行echo $SHLVL
查看您所在的 shell 级别。在第一个 shell 中,SHLVL
计数器 var 以 1 开头,每次su
加一,exit
减一。PATH
在 shell 脚本中设置var 而无需export
ing 它。这只会更改PATH
脚本运行所在的子 shell。
测试文件
#!/bin/bash
PATH=/home/foo
echo $PATH
跑步./test.sh;echo $PATH
- 如果您使用 编译代码
make
,您可以添加/更改路径生成文件