M1 Mac 安装canvas依赖时遭遇gobject版本不兼容问题
M1 Mac 安装canvas依赖时遭遇gobject版本不兼容问题
嗨,这个问题我之前帮朋友处理过,M1 Mac的ARM架构特殊性确实容易碰到这类依赖版本冲突的情况,给你几个实用的解决方案试试:
更新并重装Homebrew依赖
大概率是你本地的依赖库版本太旧,先把Homebrew和相关依赖都更新到最新版:- 先更新Homebrew本身:
brew update && brew upgrade - 强制卸载现有冲突的依赖,再重新安装:
brew uninstall --force pkg-config cairo pango libpng jpeg giflib librsvg brew install pkg-config cairo pango libpng jpeg giflib librsvg - 清理brew缓存避免残留:
brew cleanup - 最后重新运行
npm install试试。
- 先更新Homebrew本身:
用Rosetta 2兼容模式运行终端
有些旧依赖对ARM原生支持不好,切换到x86兼容模式可能解决问题:- 找到「终端」App,右键选择「显示简介」,勾选「使用Rosetta打开」
- 重启终端,重新执行之前的brew安装命令和
npm install
调整PKG_CONFIG_PATH让新版本gobject优先
可能系统里同时存在多个版本的gobject,旧版本优先级更高,我们手动指定brew安装的新版本路径:- 先查看当前生效的gobject版本:
pkg-config --modversion gobject-2.0 - 把brew的pkgconfig路径加到最前面(M1的brew默认路径是
/opt/homebrew/lib/pkgconfig):export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH" - 再运行
npm install,如果要永久生效,可以把这个export命令添加到你的~/.zshrc或~/.bash_profile文件里(根据你使用的Shell)。
- 先查看当前生效的gobject版本:
切换Node.js版本试试
某些Node版本和canvas依赖的兼容性更好,用nvm管理版本会更方便:- 先安装nvm(如果没装的话):
brew install nvm - 安装一个LTS版本的Node,比如18.x:
nvm install 18 nvm use 18 - 重新执行
npm install。
- 先安装nvm(如果没装的话):
备注:内容来源于stack exchange,提问作者Bjørson Bjørson
相关产品推荐
相关产品推荐

