Ruby пытается загрузить gem из старой версии - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь запустить скрипт , который вызывает гем ansi со следующей строкой:

require 'ansi/code'

Однако, когда я пытаюсь запустить его, я получаю следующееошибка:

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- ansi/code (LoadError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from ./taoup:4:in `<main>'

Я попытался запустить Ruby v2.6.5 и переустановить зависимости после этого.

→ rbenv versions
  system
  2.1.3
  2.2.1
* 2.6.5 (set by /Users/ricky/.rbenv/version)

→ gem install ansi
Successfully installed ansi-1.5.0
Parsing documentation for ansi-1.5.0
Done installing documentation for ansi after 0 seconds
1 gem installed

Для справки кажется, что rubygems работает на v.2.6.5.

→ gem env   
RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.3
  - RUBY VERSION: 2.6.5 (2019-10-01 patchlevel 114) [x86_64-darwin18]
  - INSTALLATION DIRECTORY: /Users/ricky/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0
  - USER INSTALLATION DIRECTORY: /Users/ricky/.gem/ruby/2.6.0
  - RUBY EXECUTABLE: /Users/ricky/.rbenv/versions/2.6.5/bin/ruby
  - GIT EXECUTABLE: /usr/local/bin/git
  - EXECUTABLE DIRECTORY: /Users/ricky/.rbenv/versions/2.6.5/bin
  - SPEC CACHE DIRECTORY: /Users/ricky/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/ricky/.rbenv/versions/2.6.5/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-18
  - GEM PATHS:
     - /Users/ricky/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0
     - /Users/ricky/.gem/ruby/2.6.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "install" => "--no-rdoc --no-ri"
     - "update" => "--no-rdoc --no-ri"
  - REMOTE SOURCES:
     - https://rubygems.org/

Я думаю, что мне нужно настроить среду выполнения на использование моей предполагаемой версии Ruby.

1 Ответ

0 голосов
/ 05 октября 2019

Хорошо, похоже, что скрипт указывает на конкретную установку Ruby, как указано здесь:

#!/usr/bin/ruby

Эта версия ruby ​​была не той, на которой я собирался работать. В конце концов, это другая версия:

→ /usr/bin/ruby --version 
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]

Поэтому я сделал быстрое и грязное исправление сценария, переписав объявление Shebang следующим образом:

#!/Users/ricky/.rbenv/versions/2.6.5/bin/ruby

Если кто-нибудь знает версию -Способ устранения этой зависимости, пожалуйста, дайте мне знать!

...