加载共享库时出错:libicuuc.so.50

error while loading shared libraries: libicuuc.so.50

我尝试在 CentOS 7 中向 SLURM 提交 R 脚本,如下所示:

#!/bin/bash
#SBATCH -J test                   
#SBATCH -o test.out               
#SBATCH -p compute                
#SBATCH --qos=normal              
#SBATCH -N 1                      
#SBATCH --ntasks-per-node=8       
#SBATCH --cpus-per-task=1         
#SBATCH --job-name=rtest

Rscript --vanilla Rhelp.R

然后系统会return一个jobid,但是R脚本不起作用。我可以保证这个脚本可以在命令行中 运行 。然后我在test.out里找到了,像这样:

error while loading shared libraries: libicuuc.so.50: 
cannot open shared object file: No such file or directory

我是 SLURM 的新生,Linux,谢谢!

看起来 libicu RPM 包没有安装在计算节点上。

仅仅因为它可能安装在头节点上并不意味着它安装在计算节点上。您可以在 Slurm 作业中启动相同的 ldconfig 命令并查看结果以确认情况是否如此。

使用来自头节点的 module avail 命令,您可以列出所有可用模块,并且 loaded 模块会根据您的 OS 以某种方式进行标记;对我来说,它们标有 (L)。您需要做的就是从您的文件脚本中加载那些已加载的模块,每个模块都使用以下行调用 module load path_to_module。然而,path_to_module 与前面的命令 module avail 所指示的一样。 或者不求助于 module avail,您可以对当前加载的模块使用 module list