执行sudo yum update时出现“最佳候选包”安装错误的解决办法
解决
sudo yum update时的netdata依赖错误 问题核心
执行yum update时的错误本质是两点:
- netdata更新包(1.37.1-1.el8)依赖
libjson-c.so.4(JSONC_0.14)(64bit),当前系统缺少该版本的库文件 - netdata与netdata-conf版本冲突:旧版netdata绑定对应版本的conf包,但更新时新版conf包无法与旧版共存
解决方案
1. 临时绕过错误(优先更新其他包)
如果只是想先完成其他软件的更新,直接用yum提示的参数:
- 跳过损坏的包:
sudo yum update --skip-broken - 不局限于最佳候选包,尝试安装兼容版本:
sudo yum update --nobest
2. 修复依赖缺失(根本解决)
步骤1:检查当前libjson-c版本
先确认系统已安装的json-c包版本:
rpm -qa | grep json-c
如果输出版本低于0.14,说明需要升级该库。
步骤2:安装/升级libjson-c
EL8系统可通过EPEL源获取兼容版本:
- 未安装EPEL源的话先安装:
sudo dnf install epel-release - 升级json-c包:
sudo yum install json-c
该操作会安装提供JSONC_0.14符号的json-c-0.14-7.el8.x86_64版本,满足netdata的依赖要求。
3. 解决版本冲突
如果升级libjson-c后仍有冲突,强制替换冲突包:
sudo yum update --allowerasing
这个命令会自动卸载旧版netdata和netdata-conf,安装新版兼容包,彻底解决版本冲突。
4. 重置netdata安装(极端情况)
如果以上方法都无效,彻底卸载旧包后重新安装:
- 卸载旧包:
sudo yum remove netdata netdata-conf - 重新安装netdata:
sudo yum install netdata
内容的提问来源于stack exchange,提问作者Raashith
相关产品推荐
相关产品推荐

