在 Apple M1 处理器 macOs BigSur 11.4 中 db:reset 时出现“预期:平面命名空间”Rails 错误

时间:2021-07-10 17:06:57

标签: ruby-on-rails ruby macos rubygems macos-big-sur

我最近购买了 macOs BigSur,不幸的是,我在尝试安装 Rails 应用程序时遇到了很多问题。在解决论坛答案问题几天后,我遇到了一个我无法解决的问题,而且互联网上没有太多关于如何解决这个问题的信息。

每当我运行以下命令 rails db:reset 时,我都会得到以下输出:

dyld: lazy symbol binding failed: Symbol not found: _grpc_set_ssl_roots_override_callback
  Referenced from: /Users/usr/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/grpc-1.38.0/src/ruby/lib/grpc/grpc_c.bundle
  Expected in: flat namespace

dyld: Symbol not found: _grpc_set_ssl_roots_override_callback
  Referenced from: /Users/usr/.rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/grpc-1.38.0/src/ruby/lib/grpc/grpc_c.bundle
  Expected in: flat namespace

zsh: abort      rails db:reset

我查看了这个 Github 问题 https://github.com/grpc/grpc/issues/24846 并按照 nilleb 用户标记的步骤解决了我的第一个问题,但随后我进入了此错误消息,该消息也在同一线程中提到,但我找不到解决方法。

当我运行 gem list 时,我得到

  • grpc(1.38.0 ruby​​ 通用达尔文)
  • google-protobuf (3.17.3 ruby​​ Universal-darwin)

我的红宝石版本是

  • ruby 2.6.6p146(2020-03-31 修订版 67876)[-darwin20]

我阅读了用户前提的帖子,但不知道该怎么做。

在这种情况下你能帮我吗?我非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。该问题是由我的自制程序路径引起的,我需要将其文件夹安装在 /usr/local/homebrew 而不是 /usr/opt/homebrew 因为 /opt/homebrew 是供 ARM 使用的(所以我必须使用 intel 安装)。 我卸载了 brew 及其所有工具,例如 rbenv、nvm 等。然后,我再次安装了 brew,但使用了 arch flag x86_64 命令:arch -x86_64 /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)\"。之后,我安装了 rbenv、nvm 和其他工具,始终使用 arch 标志:arch -x86_64