Sun*_*rge 11 ruby compiler-errors rvm apple-m1
我的 M1 mac 上总是出现以下错误rvm install 2.6.7
me@xx ~ % rvm install 2.6.7
ruby-2.6.7 - #removing src/ruby-2.6.7 - please wait
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/11.5/x86_64/ruby-2.6.7.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Certificates bundle '/opt/homebrew/etc/openssl@1.1/cert.pem' is already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/me/.rvm/rubies/ruby-2.6.7, this may take a while depending on your cpu(s)...
ruby-2.6.7 - #downloading ruby-2.6.7, this may take a while depending on your connection...
ruby-2.6.7 - #extracting ruby-2.6.7 to /Users/me/.rvm/src/ruby-2.6.7 - please wait
ruby-2.6.7 - #configuring - please wait
ruby-2.6.7 - #post-configuration - please wait
ruby-2.6.7 - #compiling - please wait
Error running '__rvm_make -j8',
please read /Users/me/.rvm/log/1629787822_ruby-2.6.7/make.log
There has been an error while running make. Halting the installation.
Run Code Online (Sandbox Code Playgroud)
Zai*_*sif 11
是的,这是上游的一个已知问题:https://bugs.ruby-lang.org/issues/17777 ruby-build 也在跟踪此问题: https: //github.com/rbenv/ruby-build/issues/1489
解决方法是运行以下代码,并再次安装 ruby 2.6.7:
$ export warnflags=-Wno-error=implicit-function-declaration
$ rbenv install 2.6.7
Run Code Online (Sandbox Code Playgroud)
-或者-
$ CFLAGS="-Wno-error=implicit-function-declaration" rbenv install 2.6.7
Run Code Online (Sandbox Code Playgroud)
看起来这也会影响带有本机扩展的 gem 安装(mysql2 就是其中之一):
gem install <GEMNAME> -- --with-cflags="-Wno-error=implicit-function-declaration"
Run Code Online (Sandbox Code Playgroud)
参考:在 mac os 上安装 ruby 2.6.7 时出错 - 如何解决?
我在 RVM 中遇到了同样的问题,以下解决方案对我有用。
CFLAGS="-Wno-error=implicit-function-declaration" rvm install 2.6.0
Run Code Online (Sandbox Code Playgroud)