-
场景一 运行程序时报错:ImportError: libXrender.so.1: cannot open shared object file
- 说明缺少运行时库,安装 64 位版本即可:
- CentOS 7:sudo yum install -y libXrender-0.9.10-1.el7.x86_64
- 若仓库默认给到 i686,可强制指定架构:sudo yum install -y libXrender-0.9.10-1.el7.x86_64 --setopt=protected_multilib=false
- 其他可能同时缺失的依赖(一并装上):libSM、libXext 的 x86_64 版本。以上做法可解决 Python/OpenCV 等程序因缺 XRender 导致的启动失败。
-
场景二 编译时报错:/usr/bin/ld: cannot find -lXrender
- 说明缺少开发包,安装 libXrender-devel(64 位):sudo yum install -y libXrender-devel.x86_64。若是 32 位环境或需要 32 位库,则安装对应的 i686 包。该问题常见于编译 Qt/WebKit 等需要 XRender 的程序。
-
场景三 使用 yum 安装时报错:Error downloading packages: … [Errno 5] [Errno 2] No such file or directory
- 多见于系统把默认 python 改成 python3 后,yum 仍依赖 python2 导致脚本无法执行。修复方法:
- 编辑文件:/usr/bin/yum 与 /usr/libexec/urlgrabber-ext-down
- 将首行 #!/usr/bin/python 改为 #!/usr/bin/python2.7(或系统中实际存在的 python2 路径)
- 保存后再执行 yum 安装即可恢复正常。
-
场景四 仓库里找不到或版本不匹配
- 先确认系统版本:cat /etc/centos-release
- 查找哪个包提供所需文件:yum provides */libXrender.so.1
- 若仓库确实缺失,可考虑启用 EPEL 或升级系统后再试;安装时尽量使用明确的版本与架构(如 x86_64)以避免误装 i686。