安装rlwrap遇perl(File::Slurp)依赖无提供者问题求助
关于rlwrap安装时忽略perl(File::Slurp)依赖的问题
问题描述
尝试安装rlwrap-0.45.2-2.el8.x86_64包时,发现其依赖的perl(File::Slurp)没有对应的提供者。已单独安装该依赖,但执行yum install rlwrap仍报错,且已尝试yum提示的--skip-broken和--nobest参数,询问是否有命令行参数可忽略该依赖。
依赖列表
package: rlwrap-0.45.2-2.el8.x86_64 dependency: /usr/bin/perl provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: /usr/bin/python3 provider: python36-3.6.8-38.module+el8.5.0+12207+5c5719bc.x86_64 provider: python38-3.8.13-1.module+el8.7.0+15641+2ece4388.x86_64 provider: python39-3.9.13-2.module+el8.7.0+17195+44752b34.x86_64 dependency: libc.so.6(GLIBC_2.15)(64bit) provider: glibc-2.28-211.el8.x86_64 dependency: libreadline.so.7()(64bit) provider: readline-7.0-10.el8.x86_64 dependency: libtinfo.so.6()(64bit) provider: ncurses-libs-6.1-9.20180224.el8.x86_64 dependency: libutil.so.1()(64bit) provider: glibc-2.28-211.el8.x86_64 dependency: libutil.so.1(GLIBC_2.2.5)(64bit) provider: glibc-2.28-211.el8.x86_64 dependency: perl(:VERSION) >= 5.6.0 provider: perl-libs-4:5.26.3-421.el8.i686 provider: perl-libs-4:5.26.3-421.el8.x86_64 dependency: perl(AutoLoader) provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: perl(Carp) provider: perl-Carp-1.42-396.el8.noarch dependency: perl(Config) provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: perl(Data::Dumper) provider: perl-Data-Dumper-2.167-399.el8.x86_64 dependency: perl(Exporter) provider: perl-Exporter-5.72-396.el8.noarch dependency: perl(File::Slurp) dependency: perl(Getopt::Std) provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: perl(POSIX) provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: perl(RlwrapFilter) provider: rlwrap-0.45.2-2.el8.x86_64 dependency: perl(constant) provider: perl-constant-1.33-396.el8.noarch dependency: perl(lib) provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: perl(strict) provider: perl-libs-4:5.26.3-421.el8.i686 provider: perl-libs-4:5.26.3-421.el8.x86_64 dependency: perl(vars) provider: perl-interpreter-4:5.26.3-421.el8.x86_64 dependency: rtld(GNU_HASH) provider: glibc-2.28-211.el8.i686 provider: glibc-2.28-211.el8.x86_64
安装命令及报错信息
yum install rlwrap Last metadata expiration check: 0:41:10 ago on Thu Dec 22 16:38:35 2022. Error: Problem: cannot install the best candidate for the job - nothing provides perl(File::Slurp) needed by rlwrap-0.45.2-2.el8.x86_64 (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
解决方法
1. 使用rpm强制忽略依赖安装
Yum本身没有直接忽略单个依赖的参数,但可以用rpm命令绕过依赖检查:
- 先下载
rlwrap-0.45.2-2.el8.x86_64.rpm包到本地 - 执行以下命令忽略
perl(File::Slurp)依赖安装:rpm -ivh --nodeps --ignoreperl(File::Slurp) rlwrap-0.45.2-2.el8.x86_64.rpm - 如果上述命令无效,可直接忽略所有未满足的依赖(注意:此操作可能导致rlwrap部分功能失效,仅在确认依赖不影响核心功能时使用):
rpm -ivh --nodeps rlwrap-0.45.2-2.el8.x86_64.rpm
2. 验证perl(File::Slurp)的识别状态
如果已经通过cpan等方式安装了File::Slurp模块,但yum无法识别,可先确认模块是否正常安装:
perl -MFile::Slurp -e 'print "模块已安装\n"'
若输出模块已安装,说明模块存在但yum无法通过rpm数据库检测到。这种情况下,除了用rpm强制安装外,也可以手动创建一个提供该依赖的伪rpm包,但操作较复杂,推荐优先使用rpm强制安装。
3. 检查EPEL仓库状态
CentOS/RHEL 8中的rlwrap通常来自EPEL仓库,若未启用EPEL可能导致依赖缺失。尝试启用EPEL后重新安装:
dnf install epel-release dnf install rlwrap
若EPEL仓库中仍缺少perl(File::Slurp),则回到第一种方法处理。
内容的提问来源于stack exchange,提问作者Albert
相关产品推荐
相关产品推荐

