0

我删除了所有旧的 Ruby 库并从命令行编译了 v3.0(没有使用 pkg 管理器。)

二进制文件的 CLI 可以处理参数:

$ruby -v --> ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]

irb 还活着:

$irb --> irb(main):001:0>

但是在没有任何 CLI 参数的情况下启动 Ruby 已经死了。没有反应。

RubyGems 包管理器仍然存在,但在尝试从 ruby​​gems.org 下载时失败(Net::OpenTimeout)。

我很困惑。有任何想法吗?

4

2 回答 2

1

这是正常的红宝石行为。ruby 是一个命令行程序,经过优化可用作命令行管道的一部分

$> echo "puts(2 ** 5)" | ruby 
$= 32

在没有任何参数的情况下执行时,您将它连接到一个无限的标准输入流,这看起来似乎没有响应,但实际上正在积极解析输入。您可以通过简单地键入endwhich 将终止程序并出现语法错误来检查它。

使用ruby可执行文件的正常方法是给它一个文件来执行:

ruby my_script.rb

您可以看到更多选项ruby -h

于 2021-05-06T22:24:44.310 回答
0

gem 安装问题似乎与 ruby​​gems API 有 IPv6 问题有关:gem cannot access ruby​​gems.org

我编辑了我的 /etc/gai.conf 副本,gem install问题似乎消失了。

于 2021-05-07T16:36:54.190 回答