linux Lmod / easybuild类别

yc0p9oo0  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(105)

我正在第一次修补模块。我已经安装了lmod和easybuild,并构建了一个包含依赖项的包(SAMtools)。
运行module av显示模块可用。它将它们列出两次,一次在“所有”类别中,另一次在其相关类别中。如果我试图加载一个像bio/SAMtools这样的模块,它会抱怨找不到依赖项。我假设这是因为它在需要查找all/ncursesdevel/ncurses时,却在查找ncurses
我知道我可以只更改modulepath直接指向all目录,而不是包含类别目录的目录,但我想知道这是否是正确的方法,或者我做错了什么,module应该能够定位模块依赖项。

iecba09b

iecba09b1#

module(无论是Environment Modules还是Lmod)在启用的modulepath下查找作为目录的模块名称。因此,如果您启用的modulepath是/path/to/modulefiles,如果您尝试加载devel/ncurses,它将查看/path/to/modulefiles/devel/ncurses目录下的版本文件。
由于easybuild生成的模块将依赖项定义为ncurses,而不是all/ncursesdevel/ncurses,这意味着要启用的模块路径应该是/path/to/modulefiles/all/path/to/modulefiles/devel
定位modulefile(4)手册页中的modulefile节提供了如何搜索模块的详细信息。这是环境模块的文档,但Lmod的机制非常相似。

相关问题