r - 如何解决 Can't locate IO/Zlib.pm in @INC 错误?
问题描述
使用:
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)"
解决方案
我不知道 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::cpanminus
和sudo cpanm IO::Zlib
export PERLLIB=/some/dir:$PERLLIB
如果您找到了 IO/Zlib.pm 文件,但它不在输出底部 @INC 下提到的目录下perl -V
。PERLLIB 中的目录不应该是 IO 目录,而是它的正上方。- 你在哪个 linux 版本和发行版上,也许
如果您添加有关您正在运行的 Linux 版本和发行版的信息,您更有可能得到好的答案。在某些系统上,这是由cat /etc/*release
推荐阅读
- apache-spark - 从 PySpark 运行大量 Hive 查询
- arrays - 查找二维数组中有多少个圆的算法
- ios - 拆分视图控制器中的大标题奇怪行为
- javascript - 循环遍历vuejs中api响应的多维数组
- java - 用按键打破 do..while 循环
- java - 该方法未定义类型 T
- android - 无法在 react-native 应用程序中使用 redux-persist 检查持久状态是否已加载到索引/主文件上
- ruby-on-rails - rspec 传递的参数值错误
- jenkins - 重试阶段将构建标记为失败
- bash - 在管理员提示模式下远程触发 powershell 脚本