Как определить, какие корабли с драгоценными камнями поставляются в комплекте с версиями Ruby - PullRequest
0 голосов
/ 30 апреля 2020

Какие драгоценные камни и их конкретные версии c поставляются в комплекте с различными версиями Ruby на Linux?

Как я могу получить эту информацию без необходимости устанавливать каждую версию Ruby и запускать gem list? Есть ли где-нибудь файлы манифеста для этого онлайн?

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Какие драгоценные камни и их спецификации c поставляются в комплекте с различными версиями Ruby на Linux?

Это на самом деле не так сильно зависит от Ruby версия, но в реализации Ruby. Например, в Rubinius компилятор, синтаксический анализатор, абстрактное синтаксическое дерево, набор инструкций и стандартная библиотека - это отдельные гемы.

В то время как в YARV синтаксический анализатор и компилятор являются только частями monolithi c VM, и стандартная библиотека является лишь частью дерева исходных текстов.

Как получить эту информацию без необходимости устанавливать каждую версию Ruby и запускать gem list? Есть ли где-нибудь файлы манифеста для этого онлайн?

Опять же, это сильно зависит от реализации.

Для Трюфель Ruby, вы можете найти список связанных драгоценных камней и драгоценных камней по умолчанию в файле 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

Я не очень знаком с системой сборки Rubinius , поэтому мне не удалось найти простое единственное место для списка драгоценных камней. Я нашел пару, но я не думаю, что список является исчерпывающим:

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 Code содержит инструменты для компиляции и запуска кода на платформе Rubinius, которые используются в реализации Rubinius Ruby. Хранилище содержит следующие гемы:

  • rubinius-ast.gemspec: rubinius-ast - Абстрактное синтаксическое дерево для языковой платформы Rubinius.
  • rubinius-compiler.gemspec: rubinius-compiler - Компилятор байт-кода для языковой платформы Rubinius.
  • rubinius-instructions.gemspec: rubinius-instructions - Инструменты поддержки для набора команд Rubinius.
  • rubinius-melbourne.gemspec: rubinius-melbourne - Ruby синтаксический анализатор, извлеченный из MRI.
  • rubinius-processor.gemspec: rubinius-processor - Преобразует дерево разбора Мельбурна в AST.
  • rubinius-toolset.gemspec: rubinius-toolset - Реестр для инструментов кода Rubinius.
  • rubinius-code.gemspec: rubinius-code - Набор инструментов для работы с кодом на языке Rubinius платформа. (Мета-драгоценный камень в зависимости от других 6 драгоценных камней, rubinius-ast, rubinius-compiler, rubinius-instructions, rubinius-melbourne, rubinius-processor и rubinius-toolset.)

Конечно, в дополнение ко всему этому пакет ruby любого дистрибутива Linux может находиться на диске Любой сопровождающий этого пакета зависит от любого количества драгоценных камней или установит их.

0 голосов
/ 30 апреля 2020

Полагаю, вы запрашиваете gem list --local, чтобы увидеть, какие гемы были установлены для конкретного проекта.

Ruby - это такой язык, как Python, PERL или C#, но gem - это библиотека Ruby, просто скрипт Ruby, который служит какой-то цели, как и любой другой язык, имеет библиотеки для обработки таких вещей, как объекты Time или, возможно, для выполнения HTTP-запроса.

Saying "какие гемы приходят с версией Ruby "это странный запрос для меня, потому что, в частности, на Linux, если бы вы собирали Ruby из исходного кода, у вас не было бы никаких драгоценных камней. Вы бы установили на вашу машину только переводчика. Драгоценные камни - это то, что вам нужно будет установить, если у вас есть указанная c версия 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, которые я установил, и внутри каждой находится папка с гемами, которую я установил для каждой версии:

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, и вы найдете все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...