ARM架构Mac上安装bzip2-ruby gem失败求助(Ruby 2.7.5环境)
ARM架构Mac上安装bzip2-ruby gem失败求助(Ruby 2.7.5环境)
嘿,我之前在ARM架构的Mac上用Ruby 2.7.5安装bzip2-ruby gem时也碰到过一模一样的问题,尤其是这个找不到version.h的编译错误,大概率是系统依赖路径没配置对或者gem本身的兼容性问题导致的。下面给你几个亲测有效的解决思路:
先安装bzip2开发依赖
首先确保你的Mac上已经安装了bzip2的开发库,用Homebrew安装最方便:brew install bzip2指定依赖路径安装gem
直接安装gem时,明确告诉它bzip2的安装路径,这样编译时就能找到缺失的头文件了:gem install bzip2-ruby -- --with-bzip2-dir=$(brew --prefix bzip2)要是
brew --prefix bzip2返回的路径不对(ARM Mac上Homebrew默认路径是/opt/homebrew/opt/bzip2),也可以直接写绝对路径:gem install bzip2-ruby -- --with-bzip2-dir=/opt/homebrew/opt/bzip2手动修改源码编译(如果上述方法失效)
这个老版本的bzip2-ruby gem代码里的头文件引用可能有问题,找不到系统里的bzip2头文件。你可以手动克隆源码修改后编译安装:- 克隆仓库并切换到对应版本:
git clone https://github.com/paul/bzip2-ruby.git cd bzip2-ruby git checkout v0.2.7 - 打开
ext/bzip2.c文件,把第6行的#include <version.h>改成#include <bzip2/version.h> - 编译并安装:
ruby extconf.rb --with-bzip2-dir=$(brew --prefix bzip2) make && make install
- 克隆仓库并切换到对应版本:
另外,那个关于rubyio.h的警告不用太在意,是因为Ruby 2.7已经废弃了这个旧头文件,改用ruby/io.h,但这只是警告,不会影响gem的安装和使用,主要解决version.h找不到的问题就行。
备注:内容来源于stack exchange,提问作者Sandeep Singh
相关产品推荐
相关产品推荐

