我完成了 OpenMPI 的安装,在该过程结束时,它要求执行以下操作:
Then openmpi is installed at the directory indicated by prefix. Next,
add the following two lines to your ./bashrc file, which is located
at your home directory.
PATH=$PATH:/usr/local/openmpi-3.0.0/bin export PATH
When you open the terminal window next time, you can use openmpi. Make it sure by typing
$which mpirun
我需要做什么?为什么需要这一步?
答案1
PATH 是一个 shell 变量,它将在 shell 中执行命令,而无需提供安装位置的完整路径。要了解当前的命令路径,您可以在 shell 中运行以下命令
# echo $PATH
您已将软件安装在不同的路径 /usr/local/openmpi-3.0.0/bin 上,您的 openmpi 完整命令路径为 /usr/local/openmpi-3.0.0/bin/openmpi
因此,如果将文件夹 /usr/local/openmpi-3.0.0/bin 添加到 PATH 变量中,则只需将命令执行为 .
# openmpi
否则你需要执行它
# /usr/local/openmpi-3.0.0/bin/openmpi
答案2
有几件事:首先,就像评论者 @Artem S. Tashkinov 所说,(在某些 shell 中)需要export PATH
换行,因为它是一个单独的命令。它说将新设置PATH
为环境变量。环境变量是一种变量(动态值),它不仅被一个程序使用,而且被整个环境使用。作为简化,认为环境 = shell(感谢 ilkkachu 更正)。
其次,为了更直接地回答您的问题,$PATH
是一个存储可执行文件(程序)位置的环境变量。您只需附加/usr/local/openmpi-3.0.0/bin
到$PATH
,这样,如果您mpirun
在终端中键入,shell 就知道它存在/usr/local/openmpi-3.0.0/bin
并可以运行它。冒号之前的部分是$PATH
already的内容;冒号的意思是“将后面的内容附加到前面的内容”; the 是/usr/local/openmpi-3.0.0/bin
要附加的内容。
你可能会问,为什么我需要美元?简单的答案是 shell 引用已经用 $ 定义的变量。例如,如果我运行:
NAME='BOB'
echo $NAME
shell 会打印BOB
,而
echo NAME
会导致外壳打印NAME
。
最后,您不想只更改$PATH
可执行文件的主目录(而不是附加),否则系统将不知道其他程序所在的位置。