gpt4 book ai didi

bash - 为非交互式 shell 获取 .bashrc 的正确方法

转载 作者:行者123 更新时间:2023-12-05 06:26:35 24 4
gpt4 key购买 nike

我一直在努力解决能够在多个节点上运行 openmpi 的问题。

最初我遇到了 $PATH$LD_LIBRARY_PATH 变量没有通过 openmpi session 从 .bashrc 文件更新的问题,所以我手动添加了 --prefix/path/to/openmpi 来解决这个问题。

事实证明,即使是 anaconda 路径变量也没有被加载。所以最终我需要从我的主目录获取 ~/.bashrc 文件。我怎样才能做到这一点?谁能帮帮我吗?

更新 01:

我写了一个简单的shell脚本来查看python的版本

python --version

并尝试在本地和远程机器上使用 openmpi 运行它,如下所示:

mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script

它返回

Python 2.7.12
Python 3.6.8 :: Anaconda, Inc.
Python 3.6.8 :: Anaconda, Inc.
Python 2.7.12

证实了我的怀疑,即无论 openmpi 为运行远程进程所做的什么,都不会从 ~/.bashrc 文件中调用/设置适当的环境变量。使用过多节点 openmpi 的人有任何帮助吗?

更新 02:

一个简单的 ssh 环境 grep 告诉我我的环境变量没有更新,这可能是问题的原因。 (我什至尝试在 ~/.ssh/environment 文件中设置它)

$ ssh remote-node env | grep -i path

它似乎只加载了只有基本路径设置的/etc/environment 文件。我该如何纠正这个问题?

最佳答案

也许你应该像这样运行。我猜。两种方式助您一臂之力!

首先:

mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 . ~/.bashrc && bash script

第二个:

## 1. add this line to the script
. ~/.bashrc

## 2. run command as you do
mpirun --prefix /home/usama/.openmpi --hostfile hosts -np 4 bash script

关于bash - 为非交互式 shell 获取 .bashrc 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55990383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com