ssh中的RH 6.1、7.4、7.6用户相关错误以及LD_LIBRARY_PATH和openmpi mpiexec的设置

是的,这很奇怪。

我在RH 7.6上运行openmpi-4.0.2遇到麻烦。一切都是段错误,甚至是非MPI Shell脚本。如果我以其他用户身份运行,那么一切都会按预期运行-因此,这取决于用户。而且我一直在寻找自己的环境和其他用户的环境,寻找有毒物质。

将内容精简为裸机后,我发现基本的ssh命令将环境变量LD_libraRY_PATH设置为以“:”结尾的字符串,这对我的用户来说是有毒的。对其他使用者无毒。

对于RH 6.1、7.4和7.6会发生这种情况。我有一个RH 7.1系统,在该系统上不会发生这种情况(怪异的行为不断地付出和付出)。

我需要解决以下问题的两件事之一:一种是通过“ mpiexec”命令在基础ssh命令中填充LD_libraRY_PATH(到目前为止,我的所有尝试均以失败告终),或者是找到用户的根本原因环境并修复它。

以下是来自RH 6.1的信息,它提供了实际的错误消息,而不仅仅是段错误。

-bash-4.1$ /usr/bin/ssh -x $(hostname) 'LD_libraRY_PATH=barney:fred ; export LD_libraRY_PATH ; echo done ; env | egrep LD_'
done
LD_libraRY_PATH=barney:fred
-bash-4.1$ /usr/bin/ssh -x $(hostname) 'LD_libraRY_PATH=barney: ; export LD_libraRY_PATH ; echo done ; env | egrep LD_'
done
env: relocation error: libc.so.6: symbol _dl_starting_up,version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
egrep: relocation error: libc.so.6: symbol _dl_starting_up,version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
-bash-4.1$ /usr/bin/ssh -x $(hostname) 'LD_libraRY_PATH=barney ; export LD_libraRY_PATH ; echo done ; env | egrep LD_'
done
LD_libraRY_PATH=barney
-bash-4.1$ sudo su - otheruser
-bash-4.1$ /usr/bin/ssh -x $(hostname) 'LD_libraRY_PATH=barney:fred ; export LD_libraRY_PATH ; echo done ; env | egrep LD_'
done
LD_libraRY_PATH=barney:fred
-bash-4.1$ /usr/bin/ssh -x $(hostname) 'LD_libraRY_PATH=barney: ; export LD_libraRY_PATH ; echo done ; env | egrep LD_'
done
LD_libraRY_PATH=barney:
-bash-4.1$ /usr/bin/ssh -x $(hostname) 'LD_libraRY_PATH=barney ; export LD_libraRY_PATH ; echo done ; env | egrep LD_'
done
LD_libraRY_PATH=barney
lxbagglo 回答:ssh中的RH 6.1、7.4、7.6用户相关错误以及LD_LIBRARY_PATH和openmpi mpiexec的设置

我只跳舞了三天。 (得让openmpi为我的用户工作。)

来自这篇文章:https://comp.os.linux.development.apps.narkive.com/P7hTPwxP/must-ld-library-path-end-with-a,我发现终端“:”会将$ HOME添加到LD_LIBRARY_PATH的末尾。这不是我所知道的(我在* NIX系统上拥有35年的专业经验)。

我在我的主目录中发现了libc.so.6的副本,出于四个原因(当时可能是当时有效的原因),或者仅仅因为那天我很笨拙,所以我将其放在四个月前。删除了libc.so.6,问题消失了。

两种解决方案:不要在LD_LIBRARY_PATH后缀,并且永远不要在您的家庭目录中放置任何共享的库。

四天我永远都不会回来。

经验就是当您没有得到想要的东西时得到的东西。

避免尴尬:在将问题发布到stackoverflow.com上之前,您不会自己找到愚蠢问题的答案。

本文链接:https://www.f2er.com/2682471.html

大家都在问