Arch系Manjaro i3笔记本安装RGtk2报错求助
解决Manjaro i3上RGtk2编译时
PangoFontClass错误的方案 这个错误本质是Pango 1.44+版本的API变更导致的——RGtk2是比较老旧的R包,没有跟上Pango的最新接口调整,所以编译时会找不到PangoFontClass这类已被修改的类型名。结合你已经安装了pango 1.44.3-1和gtk2 2.24.32-1的情况,给你几个可行的解决路径:
优先推荐:使用AUR适配好的预编译包
Manjaro作为Arch系发行版,AUR社区已经有人为RGtk2打了适配Pango新版本的补丁,直接安装就能避免编译问题:
- 先卸载你之前尝试安装的RGtk2(如果是从CRAN安装的):
在R控制台运行:remove.packages("RGtk2") - 用AUR助手(比如
yay或paru)安装适配好的包:
这个包会自动处理依赖和补丁,安装完成后就能正常在R里加载RGtk2了。yay -S r-rgtk2
手动编译(适合不想用AUR的情况)
如果想自己编译源码解决问题,需要手动应用适配Pango 1.44的补丁:
- 先安装编译依赖:确保你装了
base-devel组(提供编译所需的工具链):sudo pacman -S base-devel - 下载RGtk2的源码包(可以从CRAN下载):
wget https://cran.r-project.org/src/contrib/RGtk2_2.20.36.tar.gz - 解压源码并进入目录:
tar -xzf RGtk2_2.20.36.tar.gz cd RGtk2 - 手动修改报错的头文件:编辑
./RGtk2/pangoClasses.h,将报错的PangoFontClass替换为PangoFontFaceClass(这是Pango 1.44+中替代原类型的兼容结构),同时检查相关的函数声明是否需要对应调整。 - 最后在R里编译安装:
R CMD INSTALL .
不推荐的方案:降级Pango
虽然降级Pango到1.43或更早版本可以解决编译问题,但这可能会导致系统中其他依赖Pango的应用出现兼容性问题,破坏系统稳定性,所以不建议这么做。
内容的提问来源于stack exchange,提问作者Peter Prevos
相关产品推荐
相关产品推荐

