如何修复CentOS8下conda安装R后运行时报libreadline.so.6加载错误
解决方案
问题根因
你安装的R 3.2.2是r channel提供的老旧版本,依赖libreadline.so.6,但CentOS 8默认自带的是libreadline.so.7,conda环境中安装的readline为8.1版本,版本不匹配导致动态库加载失败。
方案1(推荐):安装conda-forge源的新版本R
- 先卸载原有旧版本R相关组件:
conda remove r r-base -y
- 改用维护更活跃的conda-forge源安装适配高版本系统的R:
conda install -c conda-forge r-base -y
安装完成后直接执行R即可正常启动,该方案不会改动系统配置,兼容性最好。
方案2(需保留R 3.2.2时优先选择):安装官方readline6兼容包
CentOS 8官方提供readline6的兼容软件包,直接安装即可获取缺失的动态库:
dnf install compat-readline6 -y
安装完成后即可正常启动R,无需改动其他配置。
方案3(临时 workaround,不推荐长期使用):手动创建软链接
如果不想安装额外软件包,可以将现有libreadline.so.7软链接为缺失的libreadline.so.6:
ln -s /usr/lib64/libreadline.so.7.0 /usr/lib64/libreadline.so.6
注意:该方案存在潜在的接口不兼容风险,可能导致R运行时出现异常崩溃问题,仅建议临时测试使用。
注意事项
- 优先使用conda-forge源安装R及相关扩展包,其更新频率远高于默认r channel,对新系统的适配性更好
- 不建议使用root账号运行conda,建议新建普通用户独立管理conda环境,避免权限混乱引发的各类问题
内容的提问来源于stack exchange,提问作者Ehsan
相关产品推荐
相关产品推荐

