我正在尝试运行通过以下行调用script gem的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版本。
好的,看起来脚本指向了特定的Ruby安装,如此处指定:
#!/usr/bin/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
如果有人知道与版本无关的方法来解决此依赖性,请告诉我!