macOS10.13.6下通过RVM安装Ruby3.0.0失败求助
在macOS 10.13.6上通过RVM安装Ruby 3.0.0失败
问题概述
在macOS 10.13.6系统中,通过PowerShell执行rvm install 3.0.0安装Ruby 3.0.0时失败,核心原因是无法安装依赖包gcc@6。
环境信息
- gcc版本:
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 10.0.0 (clang-1000.10.44.4) Target: x86_64-apple-darwin17.7.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
- Homebrew版本:
Homebrew 3.6.17-66-g974984d Homebrew/homebrew-core (git revision 0149ce7e63e; last commit 2023-01-07)
- RVM版本:
rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
- 当前Ruby版本:
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
- Ruby路径:
/usr/bin/ruby
报错详情
首次执行rvm install 3.0.0报错
执行'requirements_osx_brew_libs_install gcc@6'时出错,请查看/Users/ben/.rvm/log/1673079096_ruby-3.0.0/package_install_gcc@6.log 依赖安装失败,状态码:1。
再次执行rvm install 3.0.0报错
错误:无效用法:该命令至少需要1个文本或正则表达式参数。 用法:brew search, -S [选项] 文本|/正则表达式/ [...] 对cask标识和软件包名称执行子串搜索。如果文本被斜杠包裹,则会被解析为正则表达式。搜索会在线扩展到homebrew/core和homebrew/cask。 --formula, --formulae 在线和本地搜索软件包。 --cask, --casks 在线和本地搜索cask。 --desc 搜索描述匹配文本的软件包,以及名称或描述匹配文本的cask。 --eval-all 评估所有可用的软件包和cask(无论是否已安装)以搜索其描述。如果设置了HOMEBREW_EVAL_ALL则自动启用。 --pull-request 搜索包含文本的GitHub拉取请求。 --open 仅搜索开放状态的GitHub拉取请求。 --closed 仅搜索关闭状态的GitHub拉取请求。 --repology 在指定数据库中搜索文本。 --macports 在指定数据库中搜索文本。 --fink 在指定数据库中搜索文本。 --opensuse 在指定数据库中搜索文本。 --fedora 在指定数据库中搜索文本。 --archlinux 在指定数据库中搜索文本。 --debian 在指定数据库中搜索文本。 --ubuntu 在指定数据库中搜索文本。 -d, --debug 显示调试信息。 -q, --quiet 减少输出内容。 -v, --verbose 增加输出详细度。 -h, --help 显示此帮助信息。 错误:无效用法:该命令至少需要1个文本或正则表达式参数。 正在为osx_brew安装依赖... 正在更新系统.......... 正在安装所需软件包:gcc@6........软件包安装出错,请查看日志。 尝试执行`brew tap --repair`,并确保`brew doctor`输出正常。 查看Homebrew安装要求文档。 . 执行'requirements_osx_brew_libs_install gcc@6'时出错,请查看/Users/benoitlardinois/.rvm/log/1673081014_ruby-3.0.0/package_install_gcc@6.log 依赖安装失败,状态码:1。
手动执行brew install gcc@6报错
警告:你正在使用macOS 10.13。 我们(以及Apple)不再为这个旧版本提供支持。 部分软件包无法在该版本上编译是正常现象。 Homebrew在该系统上出现bug或运行缓慢也是正常现象。 请勿在Homebrew的GitHub仓库提交相关问题。 即使你认为这条提示和你的问题无关,也不要提交问题。 所有提交的相关问题都会被立即关闭,不予回复。 请勿在Twitter上向MacHomebrew求助。 你可以在Homebrew的讨论区提问,但大概率得不到回复。 请尝试自行解决问题并提交修复的Pull Request。 我们会审核,但不一定会接受。 警告:gcc@6已被弃用,因为上游已停止维护! ==> 为gcc@6拉取依赖:isl、mpfr和libmpc ==> 拉取isl ==> 下载https://raw.githubusercontent.com/Homebrew/formula-patches/03cf8088210822aa2c1ab544ed 已下载:/Users/benoitlardinois/Library/Caches/Homebrew/downloads/195208ba31cadc265ea97bb8aad4e78caab1200daf4d855e6c839b5f987f92db--configure-big_sur.diff ==> 下载https://libisl.sourceforge.io/isl-0.25.tar.xz 已下载:/Users/benoitlardinois/Library/Caches/Homebrew/downloads/dce6d1ed4d25c923a4ad350c4b9cdf03406f649cd55be8c385814703502b5c81--isl-0.25.tar.xz ==> 拉取mpfr ==> 下载https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.0.tar.xz 已下载:/Users/benoitlardinois/Library/Caches/Homebrew/downloads/2b7a1efec00f58b200d550146d18563516f005674020aa39ca2cd6666cb1d215--mpfr-4.2.0.tar.xz ==> 拉取libmpc ==> 下载https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz 已下载:/Users/benoitlardinois/Library/Caches/Homebrew/downloads/22a255b07a458ea7bd9717c0d1509282a69135dd842aa6b64144820c50bfd208--mpc-1.3.1.tar.gz ==> 拉取gcc@6 ==> 下载https://ftp.gnu.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.xz 已下载:/Users/benoitlardinois/Library/Caches/Homebrew/downloads/0a7c1b4768113746153c6e06f4ea6b2abf2d8ba48a68bf28f7c686b70117540e--gcc-6.5.0.tar.xz ==> 安装gcc@6的依赖:isl、mpfr和libmpc ==> 安装gcc@6的依赖:isl ==> 打补丁 ==> 应用configure-big_sur.diff补丁 patching file configure Hunk #1 succeeded at 13866 (offset 5133 lines). ==> ./configure --prefix=/usr/local/Cellar/isl/0.25 --with-gmp=system --with-gmp-prefix=/usr/local/op ==> make /Users/benoitlardinois/Library/Logs/Homebrew/isl/02.make最后15行: constexpr value_type& value() & ^ /Library/Developer/CommandLineTools/usr/include/c++/v1/optional:933:33: 注意:候选函数已被显式禁用 constexpr value_type const& value() const& ^ /Library/Developer/CommandLineTools/usr/include/c++/v1/optional:951:28: 注意:候选函数不可用:无法将“optional<...>”转换为“optional<...>”作为对象参数 constexpr value_type&& value() && ^ /Library/Developer/CommandLineTools/usr/include/c++/v1/optional:960:34: 注意:候选函数不可用:无法将“optional<...>”转换为“const optional<...>”作为对象参数 constexpr value_type const&& value() const&& ^ 生成2个错误。 make[2]: *** [isl_test_cpp17.o] 错误 1 make[1]: *** [all-recursive] 错误 1 make: *** [all] 错误 2 请勿向Homebrew/brew或Homebrew/core报告此问题! 错误:你正在使用macOS 10.13。 我们(以及Apple)不再为这个旧版本提供支持。 部分软件包无法在该版本上编译是正常现象。 Homebrew在该系统上出现bug或运行缓慢也是正常现象。 请勿在Homebrew的GitHub仓库提交相关问题。 即使你认为这条提示和你的问题无关,也不要提交问题。 所有提交的相关问题都会被立即关闭,不予回复。 请勿在Twitter上向MacHomebrew求助。 你可以在Homebrew的讨论区提问,但大概率得不到回复。 请尝试自行解决问题并提交修复的Pull Request。 我们会审核,但不一定会接受。
解决方案建议
1. 跳过RVM依赖检查,用系统clang编译
Ruby 3.0.0兼容macOS 10.13自带的clang,无需强制安装gcc@6,直接执行:
rvm install 3.0.0 --with-gcc=clang
2. 降级Homebrew到支持macOS 10.13的版本
当前Homebrew版本过新,对旧系统兼容性差,切换到历史兼容分支:
cd "$(brew --repo)" git checkout 2.7.0 brew update
之后再尝试安装gcc@6,或直接用clang编译Ruby。
3. 替换RVM为rbenv
如果RVM的依赖处理始终有问题,换用rbenv尝试:
brew install rbenv ruby-build rbenv install 3.0.0 rbenv global 3.0.0
4. 手动安装兼容版本的isl依赖
gcc@6依赖的isl 0.25在macOS 10.13编译失败,尝试安装旧版本isl:
brew install isl@0.24 brew link isl@0.24 --force
再执行brew install gcc@6
内容的提问来源于stack exchange,提问作者BenoitLardinois
相关产品推荐
相关产品推荐

