【问题标题】:Issues with installing Ruby 2.0.0 on macOS Catalina在 macOS Catalina 上安装 Ruby 2.0.0 的问题
【发布时间】:2020-11-20 23:32:11
【问题描述】:

我正在运行在带有 macOS Catalina(版本 10.15.7)的新 Macbook 上安装 Ruby 2.0.0 的问题。起初我用 rvm 安装了 Ruby,但它不起作用。我发现这是因为 Catalina 的默认终端是 ZSH 而不是 Bash (https://gorails.com/setup/osx/10.15-catalina)。我能够按照说明安装 Ruby 2.6.3,但问题是我目前正在处理的项目是用 Ruby 2.0.0 编写的。我尝试使用rbenv install 2.0.0-p0 安装此版本,但遇到以下错误:

ruby-build: using libyaml from homebrew
Downloading openssl-1.0.2u.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16
Installing openssl-1.0.2u...
Installed openssl-1.0.2u to /Users/vydoan/.rbenv/versions/2.0.0-p0

Downloading ruby-2.0.0-p0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.bz2
Installing ruby-2.0.0-p0...

WARNING: ruby-2.0.0-p0 is past its end of life and is now unsupported.
It no longer receives bug fixes or critical security updates.

ruby-build: using readline from homebrew

BUILD FAILED (Mac OS X 10.15.7 using ruby-build 20201005)

Inspect or clean up the working tree at /var/folders/m4/3k5xfdwx7x7gqkzzlyrlc_gc0000gn/T/ruby-build.20201006082731.4615.0q3Cat
Results logged to /var/folders/m4/3k5xfdwx7x7gqkzzlyrlc_gc0000gn/T/ruby-build.20201006082731.4615.log

Last 10 log lines:
compiling cont.c
compiling ./enc/ascii.c
thread.c:928:27: error: implicit conversion loses integer precision: 'long' to '__darwin_suseconds_t' (aka 'int') [-Werror,-Wshorten-64-to-32]
        tp->tv_usec = ts.tv_nsec / 1000;
                    ~ ~~~~~~~~~~~^~~~~~
compiling ./enc/us_ascii.c
1 error generated.
make: *** [thread.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.

我已尝试执行以下操作:

1.

brew tap homebrew/dupes

这给了我这个错误日志

Error: homebrew/dupes was deprecated. This tap is now empty and all its contents were either deleted or migrated.
brew install gcc
rbenv install 2.0.0-p0

这给了我与上面相同的错误。

我询问了我的团队,发现另一个人在他们的新 mac 机器上安装 ruby​​ 也有问题。较旧的mac没有这个问题。有人能在较新的 mac 上成功安装 Ruby 2.0.0 吗?

【问题讨论】:

  • FWIW,ZSH 应该可以在 RVM 上正常工作。我刚刚使用 RVM 和 ZSH 在我的机器(Catalina)上安装了 Ruby 2.0.0。
  • github.com/rbenv/ruby-build/issues/1068 在这个帖子中有一些有用的东西可以尝试
  • @weltschmerz 你能扩展一下吗?您运行安装 2.0.0 的脚本是什么?我再次尝试使用 rvm 并收到此错误 Error running '__rvm_make -j12',
  • 我刚刚跑了rvm install 2.0.0。尝试更新您的 rvm rvm get head 然后再试一次?
  • 更新后可能需要运行rvm reload

标签: ruby-on-rails ruby macos


【解决方案1】:

您好,我在尝试安装ruby 2.2.7 时遇到了很多问题然而已经成功使用rbenv 破坏您体验的主要是Apple提供的命令行工具,因为在较新版本中它不支持编译较旧的ruby版本。 我也运行相同版本的 MacOS:

你最好的选择(因为我已经连续几天尝试让我的设置正常工作,安装 ruby​​ 是最大的障碍)。转到苹果的开发者网站并下载旧版本的命令行工具 here 并浏览11.4.1在运行后续步骤之前,请确保清除以前的尝试以及 ruby​​ 版本管理器和符号链接,这样它就不会干扰您的下一次安装并使您的生活变得艰难)。 在下载和安装它之前检查你的gcc -v记住这一点并安装你下载的命令行工具并再次检查它是否按计划进行,你应该得到类似的东西:

Apple clang version 11.0.3 (clang-1103.0.32.59)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

我还没有尝试过其他版本,但是这个版本之后可以工作去rbenv官方网站安装工具将shell脚本添加到您本地的.zshrc文件中(如果你没有,只需创建它)。此外添加指南所说的内容会省略一个重要步骤,您还需要将其添加到您的.zshrc

export PATH="$HOME/.rbenv/bin:$PATH"

然后你应该关闭并打开终端并安装你需要的 ruby​​ 版本:

# list latest stable versions:
$ rbenv install -l

# list all local versions:
$ rbenv install -L

# install a Ruby version:
$ rbenv install 2.0.0-p247

请咨询docs,了解如何在全局或本地使用它们,如果使用不起作用结束所有终端窗口并重新启动进程,它应该可以正常工作。

!重要的是在编译不同的 ruby​​ 相关版本时不要更改命令行工具可能会破坏设置(运行 brew doctor 时忽略 brew 消息以更新命令行工具)!

【讨论】:

    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2022-08-24
    相关资源
    最近更新 更多