Ruby 2.7环境安装json 2.6.3失败,请求协助排查解决
解决Ruby 2.7下安装json 2.6.3时bundle install失败的问题
错误核心原因
从报错日志可以明确看到,编译json gem原生扩展时触发关键错误:
xcrun: 错误:无效的活动开发者路径(/Library/Developer/CommandLineTools),在/Library/Developer/CommandLineTools/usr/bin/xcrun路径下找不到xcrun
这是因为Mac系统缺少Xcode Command Line Tools,而带有原生扩展的gem(如json)依赖该工具链完成编译工作。
解决方案
安装Xcode Command Line Tools
打开终端执行以下命令,按照提示完成安装流程:xcode-select --install若之前已安装但路径出现异常,执行重置命令修复:
sudo xcode-select --reset验证工具可用性
执行以下命令确认工具正常运行:xcrun --version能正常输出版本信息即表示安装成功。
重新执行bundle install
回到项目目录,再次运行安装命令:bundle install
原始错误日志
Installing json 2.6.3 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /private/var/folders/7g/95lyxbdd033gp04mqyx_hg_00000gn/T/bundler20230220-12004-po1nc6json-2.6.3/gems/json-2.6.3/ext/json/ext/generator /Users/user_name/.asdf/installs/ruby/2.7.6/bin/ruby -I /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0 -r ./siteconf20230220-12004-1nsrtrf.rb extconf.rb creating Makefile current directory: /private/var/folders/7g/95lyxbdd033gp04mqyx_hg_00000gn/T/bundler20230220-12004-po1nc6json-2.6.3/gems/json-2.6.3/ext/json/ext/generator make \"DESTDIR=\" clean xcrun: 错误:无效的活动开发者路径(/Library/Developer/CommandLineTools),在/Library/Developer/CommandLineTools/usr/bin/xcrun路径下找不到xcrun current directory: /private/var/folders/7g/95lyxbdd033gp04mqyx_hg_00000gn/T/bundler20230220-12004-po1nc6json-2.6.3/gems/json-2.6.3/ext/json/ext/generator make \"DESTDIR=\" xcrun: 错误:无效的活动开发者路径(/Library/Developer/CommandLineTools),在/Library/Developer/CommandLineTools/usr/bin/xcrun路径下找不到xcrun make failed, exit code 1 Gem files will remain installed in /var/folders/7g/95lyxbdd033gp04mqyx_hg_00000gn/T/bundler20230220-12004-po1nc6json-2.6.3/gems/json-2.6.3 for inspection. Results logged to /var/folders/7g/95lyxbdd033gp04mqyx_hg_00000gn/T/bundler20230220-12004-po1nc6json-2.6.3/extensions/x86_64-darwin-21/2.7.0/json-2.6.3/gem_make.out /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:99:in `run' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:51:in `block in make' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:43:in `each' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:43:in `make' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/ext_conf_builder.rb:63:in `block in build' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/tempfile.rb:291:in `open' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/ext_conf_builder.rb:30:in `build' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:169:in `block in build_extension' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:165:in `synchronize' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:165:in `build_extension' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:210:in `block in build_extensions' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:207:in `each' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/ext/builder.rb:207:in `build_extensions' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/2.7.0/rubygems/installer.rb:844:in `build_extensions' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/rubygems_gem_installer.rb:71:in `build_extensions' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/rubygems_gem_installer.rb:28:in `install' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/source/rubygems.rb:204:in `install' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/installer/gem_installer.rb:54:in `install' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/installer/parallel_installer.rb:186:in `do_install' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/installer/parallel_installer.rb:177:in `block in worker_pool' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/worker.rb:62:in `apply_func' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/worker.rb:57:in `block in process_queue' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/worker.rb:54:in `loop' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/worker.rb:54:in `process_queue' /Users/user_name/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/bundler-2.3.12/lib/bundler/worker.rb:91:in `block (2 levels) in create_threads' An error occurred while installing json (2.6.3), and Bundler cannot continue.
内容的提问来源于stack exchange,提问作者Vineesh K S
相关产品推荐
相关产品推荐

