Can't locate Switch.pm in INC的解决

rhel7.4上对oracle 11.2.0.4打psu,直接就报这个错误:

[root@hisdb1 grid]# /u01/app/grid/product/11.2.0/grid/OPatch/opatch auto /u01/setup/psu/26635745/ -ocmrf /u01/setup/psu/ocm.rsp

Can't locate Switch.pm in @INC (@INC contains: /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 /u01/app/grid/product/11.2.0/grid/OPatch/crs/auto_patch.pl line 2730.

BEGIN failed--compilation aborted at /u01/app/grid/product/11.2.0/grid/OPatch/crs/auto_patch.pl line 2730.

[root@hisdb1 grid]#

这个是perl5.10以上版本的原因,如果是auto打psu,最简单的办法,就是把oracle的perl替换本身的perl,如下:

cp /u01/app/grid/product/11.2.0/grid/perl/lib/5.10.0/Switch.pm /usr/lib64/perl5/.

之后,再去安装psu ,就没有问题了.

[root@hisdb1 perl5]# /u01/app/grid/product/11.2.0/grid/perl/bin/perl /u01/app/grid/product/11.2.0/grid/OPatch/opatch auto /u01/setup/psu/26635745/ -ocmrf /u01/setup/psu/ocm.rsp

Executing /u01/app/grid/product/11.2.0/grid/perl/bin/perl /u01/app/grid/product/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /u01/setup/psu -patchn 26635745 -ocmrf /u01/setup/psu/ocm.rsp -paramfile /u01/app/grid/product/11.2.0/grid/crs/install/crsconfig_params

This is the main log file: /u01/app/grid/product/11.2.0/grid/cfgtoollogs/opatchauto2017-12-25_21-20-02.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:

/u01/app/grid/product/11.2.0/grid/cfgtoollogs/opatchauto2017-12-25_21-20-02.report.log

2017-12-25 21:20:02: Starting Clusterware Patch Setup

Using configuration parameter file: /u01/app/grid/product/11.2.0/grid/crs/install/crsconfig_params

Stopping CRS...

Stopped CRS successfully

patch /u01/setup/psu/26635745/26392168 apply successful for home /u01/app/grid/product/11.2.0/grid

patch /u01/setup/psu/26635745/26609929 apply successful for home /u01/app/grid/product/11.2.0/grid

patch /u01/setup/psu/26635745/22502505 apply successful for home /u01/app/grid/product/11.2.0/grid

Starting CRS...

Installing Trace File Analyzer

CRS-4123: Oracle High Availability Services has been started.

opatch auto succeeded.

[root@hisdb1 perl5]#

转载于:https://my.oschina.net/u/3635497/blog/2967509

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Perl 中使用 `use Foo;` 语句导入模块时,Perl 会在 `@INC` 数组中搜索 `Foo.pm` 文件。如果找不到该文件,就会报错 `Can't locate Foo.pm in @INC`。 `@INC` 是 Perl 的一个数组,它包含了 Perl 搜索模块文件的路径。当我们使用 `use` 导入模块时,Perl 会在 `@INC` 数组中搜索与模块名相同的 `.pm` 文件。如果找到了该文件,就会执行其中的代码并将模块中定义的函数、变量或常量导入到当前命名空间中。 如果报错 `Can't locate Foo.pm in @INC`,那么可能是以下原因之一: 1. `Foo.pm` 文件不存在。请检查是否存在名为 `Foo.pm` 的文件,以及该文件是否在 `@INC` 中。 2. `Foo.pm` 文件存在,但是没有在 `@INC` 中。可以使用 `use lib` 语句将文件所在目录添加到 `@INC` 中,例如: ``` use lib '/path/to/Foo'; use Foo; ``` 上面的代码会将 `/path/to/Foo` 目录添加到 `@INC` 中,然后使用 `use Foo;` 导入 `Foo` 模块。 3. `Foo.pm` 文件存在,但是没有权限读取。请检查文件权限是否正确,以及当前用户是否有权限读取该文件。 4. `Foo.pm` 文件存在,但是文件名有误。请检查文件名是否为 `Foo.pm`,以及文件名的大小写是否与 `use` 语句中的模块名一致。 5. `Foo.pm` 文件存在,但是文件中有语法错误。请检查文件中的语法是否正确。 总的来说,解决 `Can't locate Foo.pm in @INC` 错误的方法是找到 `Foo.pm` 文件并将其添加到 `@INC` 中,或者将文件所在目录添加到 `@INC` 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值