如何确定哪些宝石与Ruby的版本捆绑在一起?

问题描述 投票:0回答:1

哪些 gem,以及它们的具体版本,与不同版本的 Ruby on Linux 捆绑在一起?

我如何才能在不安装每个版本的Ruby和不运行这些信息的情况下获得这些信息?gem list? 网上有这个的清单文件吗?

ruby rubygems
1个回答
0
投票

哪些 gem,以及它们的具体版本,与不同版本的 Ruby on Linux 捆绑在一起?

这其实并不取决于Ruby的版本,而是取决于Ruby的实现。例如,在Rubinius中,编译器、解析器、抽象语法树、指令集和标准库都是独立的gems。

而在YARV中,解析器和编译器只是单片虚拟机的一部分,标准库只是源树的一部分。

如何才能在不需要安装每个版本的Ruby和执行 gem list? 网上是否有这方面的清单文件?

同样,这在很大程度上取决于实现。

对于 松露红宝石列表,你可以找到 捆绑宝石默认宝石 档案中 versions.json,目前是这样的。

{
  "ruby": {
    "version": "2.6.5",
    "revision": 67812
  },

  "gems": {
    "default": {
      "bundler": "1.17.2",
      "gem": "3.0.3",
      "irb": "1.0.0",
      "rake": "12.3.2",
      "rdoc": "6.1.2"
    },

    "bundled": {
      "did_you_mean": "1.3.0",
      "minitest": "5.11.3",
      "net-telnet": "0.2.0",
      "power_assert": "1.1.3",
      "rake": "12.3.2",
      "test-unit": "3.2.9",
      "xmlrpc": "0.3.0"
    }
  }
}

对于 YARV列表,你可以找到 捆绑宝石 档案中 gems/bundled_gems YARV源代码中,目前是这样的。

minitest 5.14.0 https://github.com/seattlerb/minitest
power_assert 1.2.0 https://github.com/ruby/power_assert
rake 13.0.1 https://github.com/ruby/rake
test-unit 3.3.5 https://github.com/test-unit/test-unit
rexml 3.2.4 https://github.com/ruby/rexml
rss 0.2.9 https://github.com/ruby/rss

我不是很熟悉YARV源码中的 鲁比尼乌斯 构建系统,所以我无法为宝石列表找到一个简单的单一位置。我找到了几个,但我不认为这个列表是详尽的。

gems_list.txt 在... Rubinius主库:

bundler-1.16.1.gem
minitest-5.11.1.gem
racc-1.4.14.gem
rake-12.3.0.gem
rb-readline-0.5.5.gem
rdoc-5.1.0.gem

负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: 负责人: Rubinius代码 资源库包含了在Rubinius平台上编译和运行代码的工具,这些工具在Rubinius Ruby的实现中使用。资源库包含了以下的gems。

当然,除了这一切外,还包括 ruby 任何Linux发行版的软件包,都可以根据该软件包的维护者的决定,依赖或安装任何数量的gems。


0
投票

我猜你是在问 gem list --local 来查看某个项目已经安装了哪些 gem。

Ruby是一门语言,就像Python、PERL或C#一样,但gem是一个Ruby库,只是一个服务于某种目的的Ruby脚本,就像任何其他语言都有库来处理诸如Time对象或也许是发出HTTP请求。

对我来说,说 "哪个版本的Ruby自带哪些gems "是个奇怪的要求,因为,具体到Linux上,如果你要从源代码编译Ruby,你不会有任何gems。 你只会在你的机器上安装解释器。 Gems是指一旦你有了特定版本的Ruby,你就必须安装的东西。

可能有一些自动安装程序的Linux软件包会自动安装一个包含常用宝石的Ruby版本。 大多数安装Ruby的方法都会包含功能--就像TinMan在评论中指出的那样--比如rubygems--让你入门。

在MacOS上。

ls -ltra ~/.rbenv/versions
Apr 27 12:13 2.4.5
Aug 21  2019 2.4.6
Mar  5 06:35 2.5.0
Jan 12 20:57 2.5.3
Oct  4  2019 2.6.3
Feb 11 09:32 2.6.5
Mar  4 22:20 2.7.0

这些是我安装的Ruby版本,每个版本里面都有我为每个版本安装的gems文件夹。

ls -l .rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems
actioncable-5.0.7.2  benchmark-ips-2.7.2  excon-0.71.1  io-like-0.3.0  parser-2.7.0.4  recaptcha-5.2.1  sidekiq-6.0.7
actioncable-5.2.4.1  better_errors-2.5.1  execjs-2.7.0  io-like-0.3.1  pg-0.21.0       recaptcha-5.3.0  signet-0.12.0

还有很多特定版本的宝石。

只要列出安装的Ruby版本目录下的文件,你就会发现一切。

© www.soinside.com 2019 - 2024. All rights reserved.