首页 > 解决方案 > 如何解决 Can't locate IO/Zlib.pm in @INC 错误?

问题描述

我安装了这个库:https ://www.thermofisher.com/us/en/home/life-science/microarray-analysis/microarray-analysis-partners-programs/affymetrix-developers-network/affymetrix-devnet-tools.html

使用:

install.packages("SNPolisher_2.0.3.tar.gz",repos=NULL,type="source")

我正在使用 R 版本 3.6.3 运行它,如下所示:

> library(SNPolisher)
> Ps_Visualization(pidFile="pidfile.txt", summaryFile="brlmm-p.summary.txt" ,callFile="brlmm-p.calls.txt", confidenceFile="brlmm-p.confidences.txt")
Can't locate IO/Zlib.pm in @INC (@INC contains: /software/linux-el7-x86_64/tools/vcftools-0.1.16/installer/vcftools-vcftools-954e607/src/perl /opt/moab/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/anamaria/R/x86_64-pc-linux-gnu-library/3.6/SNPolisher/Perl/visualization.pl line 9.
BEGIN failed--compilation aborted at /home/anamaria/R/x86_64-pc-linux-gnu-library/3.6/SNPolisher/Perl/visualization.pl line 9.
1 probesets in the pid file.  First 1 requested for plotting. Generating the cluster plots for 1 SNPs/probesets.


No file found for ABAFT_g_4RWG569_BI_SNP_A01_34952.CEL in the temporary directory Temp 

Note that ABAFT_g_4RWG569_BI_SNP_A01_34952.CEL file is located in Temp and I also have it in the current directory from where I’m running this.

pidfile.txt 看起来像这样:

probeset_id
ABAFT_g_4RWG569_BI_SNP_A01_34952.CEL

abotu 软件的详细信息在这里:https ://assets.thermofisher.com/TFS-Assets/LSG/manuals/MAN0017790_SNPolisher_UG.pdf

每个 $KjetilS 的更新。注释

perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 33 registered patches, see perl -V for more detail)

perl -MIO::Zlib -le'print$INC{"IO/Zlib.pm"}'

 Can't locate IO/Zlib.pm in @INC (@INC contains: /software/linux-el7-x86_64/tools/vcftools-0.1.16/installer/vcftools-vcftools-954e607/src/perl /opt/moab/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).

BEGIN 失败——编译中止。

我无法使用“sudo”(或任何其他 sudo 命令)运行它,因为我没有此集群的系统管理员权限:

sudo perl -MIO::Zlib -le'print$INC{"IO/Zlib.pm"}'

I can not find library with:

find /software/linux-el7-x86_64/tools/vcftools-0.1.16/installer/vcftools-vcftools-954e607/src/perl /opt/moab/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 -wholename "*IO/Zlib.pm" -ls

find: ‘/opt/moab/lib/perl5’: No such file or directory
find: ‘/usr/local/lib64/perl5’: No such file or directory
find: ‘/usr/local/share/perl5’: No such file or directory

CentOS Linux release 7.4.1708 (Core) 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)" 

标签: rperl

解决方案


我不知道 R,但这看起来像是 Perl 错误消息。Perl 找不到 IO::Zlib 模块。这是不寻常的,因为 IO::Zlib 是一个核心模块,因此是自 perl 版本 5.9.3 以来任何正常 Perl 安装的一部分。我会尝试的事情:

  • 运行perl -v以查看您是否获得了比 5.9.3 更旧的 perl(自 2006 年发布该版本以来,该版本在 2020 年非常不寻常)
  • 运行find /software/linux-el7-x86_64/tools/vcftools-0.1.16/installer/vcftools-vcftools-954e607/src/perl /opt/moab/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 -wholename "*IO/Zlib.pm" -ls并检查 Zlib.pm 文件(如果找到)是否对您的当前用户可读。列出的目录是您的错误消息中的目录
  • 运行与上面相同的命令,前面带有sudo (sudo space)
  • perl -MIO::Zlib -le'print$INC{"IO/Zlib.pm"}'
  • sudo perl -MIO::Zlib -le'print$INC{"IO/Zlib.pm"}'如果文件存在,但您当前的用户没有读取权限,请添加该权限chmod(也添加到上述目录)
  • sudo cpan IO::Zlib或者
  • sudo cpan App::cpanminussudo cpanm IO::Zlib
  • export PERLLIB=/some/dir:$PERLLIB如果您找到了 IO/Zlib.pm 文件,但它不在输出底部 @INC 下提到的目录下perl -V。PERLLIB 中的目录不应该是 IO 目录,而是它的正上方。
  • 你在哪个 linux 版本和发行版上,也许

如果您添加有关您正在运行的 Linux 版本和发行版的信息,您更有可能得到好的答案。在某些系统上,这是由cat /etc/*release


推荐阅读