【问题标题】:Ruby fails to start when switching bootable HD from one machine to other将可启动 HD 从一台机器切换到另一台机器时,Ruby 无法启动
【发布时间】:2017-08-21 09:00:42
【问题描述】:

一台 Macbook Pro(大约 2011 年)出现问题,我将硬盘换成另一台 Macbook Pro(大约 2008 年)。

启动终端以启动rails应用服务器rails s,服务器启动失败并出现错误

You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

rails s 命令之后:

/Users/maneuser/.rbenv/versions/2.3.4/lib/ruby/2.3.0/x86_64-darwin13/openssl.bundle: 
[BUG] Illegal instruction at 0x0000011069880a
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-darwin13]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0031 p:-17569493279562 s:0115 e:000114 TOP    [FINISH]
c:0030 p:---- s:0113 e:000112 CFUNC  :require
c:0029 p:0008 s:0109 e:000108 TOP    /Users/maneuser/.rbenv/versions/2.3.4/lib/ruby/2.3.0/openssl.rb:13 [FINISH]
c:0028 p:---- s:0107 e:000106 CFUNC  :require
c:0027 p:0010 s:0103 e:000102 TOP    /Users/maneuser/.rbenv/versions/2.3.4/lib/ruby/2.3.0/securerandom./Users/maneuser/.rbenv/versions/2.3.4/lib/ruby/2.3.0/x86_64-darwin13/openssl.bundle: [BUG] Illegal instruction at 0x0000010dd2480a
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-darwin13]

Ruby 是通过 rbenv 安装的。

对我来说,给定磁盘上的整个环境在另一台计算机上的行为方式不同是相当不合逻辑的。 似乎 ruby​​ 以某种方式与运行它的硬件版本相关联。这个假设是错误的吗?

考虑到这个磁盘可能还需要移动到另一台机器上,因为这种情况应该是暂时的,所以继续获得工作版本的 ruby​​ 的最佳方法是什么?

【问题讨论】:

  • 我不明白“不,我不明白”。这是“红宝石被硬件束缚”的答案吗?

标签: ruby-on-rails ruby osx-mavericks rbenv


【解决方案1】:

您可以在此处查看来自 openssl 的问题。

在您的计算机上安装的任何 OpenSSL 都会动态链接到已安装的库,通常是在您安装 Ruby 时。

旧的机器可能是 32 位而不是 64 位。

您可以在此处查看您的处理器类型:

https://support.apple.com/en-us/HT201948

短版,Core Solo 和 Core Duo 为 32 位,Core 2 Duo 及更高版本为 64 位。

通过 rbenv 或 ruby​​-install 删除并重新安装 Ruby 应该可以解决您的问题,但如果您确实在新硬件上启动硬盘驱动器,我有点惊讶您没有遇到比仅使用 Ruby 更多的麻烦.

【讨论】:

  • 这有助于阐明背景信息。我首先更新了 openssl 以处理 ruby​​ 版本brew install openssl@1.1 brew install curl 我通过 rbenv 重新安装了 ruby​​ 并遇到了相同的解释器/扩展库错误。但没有通过先删除来做到这一点。 rbenv 询问'2.3.4 存在。继续?'我做到了。我将您的指示解析为删除和安装会导致与安装不同的行为?
  • 我确认这是完全正确的。 (事情会这样,我正在去苹果商店安装的路上!)。全新安装操作系统后,即可安装 ruby​​。
猜你喜欢
  • 2021-10-15
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多