模块:找不到命令

21

我正在尝试在Linux上加载多个模块来构建一个库,但是被告知命令“module”不存在。我已经在Google上搜索过并发现解决方法是要源化一个名为“module”的目录,但是我无法找到它,尽管进行了广泛的搜索。

我不太确定该怎么办,希望能得到帮助(可能需要知道我使用的makefile使用csh,而我的默认shell是bash)。谢谢!


7
请发一些代码样例,可能是您的Makefile的一部分。以及您遇到的任何错误信息。 - Sam Post
2
你可以尝试运行“which module”命令,也许$PATH路径中没有名为module的脚本或命令。 - questzen
2
指定你正在尝试构建的库也可能会有所帮助。 - Kevin Reid
5个回答

26

我尝试复现它,结果对我来说源代码

source /etc/profile.d/modules.sh

.sh 脚本中有助于 bash 和类似脚本。对于 cshtcsh,您需要添加


source /etc/profile.d/modules.csh

到脚本。请注意,这行必须首先出现,然后是

module load foo

行。


5
我在搜索如何在CentOS7中安装多个PHP版本时找到了https://blog.remirepo.net/post/2019/05/22/PHP-7.4-as-Software-Collection的文章,尝试按照其中的步骤操作时遇到了相同的“module:command not found”问题。
通过以下命令激活/etc/profile,似乎可以使“module load”正常运行: . /etc/profile 感谢https://forums.fedoraforum.org/showthread.php?262708-module-command-not-found论坛中fadishei的解决方案。
要使php版本(例如php7.4)持续存在,请将以下内容添加到文件/etc/profile.d/custom.sh中。
source /etc/profile.d/modules.sh
module load php74

重新启动并运行php --version命令,以交叉检查当前安装的PHP版本是否为7.4。


2
在我的情况下,我使用的是zsh而不是默认的bash shell。
切换到bash并提交脚本后,它成功运行了。

1

我认为你需要在脚本中加入以下内容来定义模块命令:

module () {
    eval `/usr/bin/modulecmd bash $*`
}

0

这对我来说是有效的

#!/bin/bash -i // it will make this interactive

这是很危险的,它可能掩盖了真正的问题。 - Fisher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接