CentOS7 Perl v5.34环境安装DBD-SQLite 1.70提示DBI版本错误问题问询
解决方案
排查sudo环境变量问题
如果你是通过perlbrew、plenv或手动编译方式安装的Perl 5.34,安装模块时不要加sudo执行cpanm。sudo会默认重置PATH环境变量,调用CentOS7系统自带的旧版Perl,导致模块路径读取混乱,明明在自定义Perl环境下安装了高版本DBI,安装脚本却读到系统路径的旧版本DBI。直接执行cpanm DBD::SQLite重试即可。手动指定DBI路径源码安装
如果上述方法无效,可手动指定DBI路径编译安装:
- 下载DBD-SQLite 1.70源码并解压,进入源码目录
- 执行以下命令获取DBI的安装路径:
perldoc -l DBI
输出示例为/opt/perl5.34/lib/site_perl/5.34.0/x86_64-linux/DBI.pm,对应的DBI头文件路径为该路径去掉末尾的DBI.pm后加上auto/DBI,即/opt/perl5.34/lib/site_perl/5.34.0/x86_64-linux/auto/DBI
3. 执行Makefile生成命令,替换为你自己的DBI路径:
perl Makefile.PL DBI_INCLUDE=/opt/perl5.34/lib/site_perl/5.34.0/x86_64-linux/auto/DBI
- 执行编译安装:
make && make test && make install
- 调整PERL5LIB优先级
如果安装脚本还是读取到系统旧版DBI,执行以下命令将自定义Perl的模块路径设为最高优先级后,再重新执行安装步骤:
export PERL5LIB=$(perl -e 'print join(":",@INC)')
如果要永久生效,可将上述命令写入你的shell配置文件(/.bashrc、/.zshrc等)。
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

