ruby - rbenv gem安装路径错误-找不到gem

标签 ruby rubygems bundle rbenv httparty

我遇到了 rbenv 问题,我认为问题在于 require 尝试从我的系统 gem 而不是垫片中读取。

我正在尝试创建单个脚本文件,而不需要 bundle 的开销 - 尽管我尝试添加 Gemfile 并将脚本和 Gemfile 放在同一目录中。

可重复的步骤:

  1. brew 安装 rbenv
  2. 在我的 .zshrc 中导出 PATH="$HOME/.rbenv/bin:$PATH"
  3. eval "$(rbenv init -)" 添加到我的 .zshrc
  4. 来源:。 ~/.zshrc
  5. rbenv 安装 2.6.3
  6. rbenv 重新哈希
  7. rbenv 全局 2.6.3
  8. rbenv rehash 为了简洁
  9. 关闭终端
  10. 新终端:
    • ruby -v = "ruby 2.6.3p62"
    • rbenv 版本 = "2.6.3(由 $HOME/Desktop/.ruby-version 设置)"
  11. 哪个 ruby​​ = "$HOME/.rbenv/shims/ruby"
  12. gem 环境
    • 安装目录:$HOME/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0
    • 用户安装目录:$HOME/.gem/ruby/2.6.0
    • RUBY 可执行文件:$HOME/.rbenv/versions/2.6.3/bin/ruby
    • 可执行目录:$HOME/.rbenv/versions/2.6.3/bin
    • SPEC 缓存目录:$HOME/.gem/specs
    • 系统配置目录:$HOME/.rbenv/versions/2.6.3/etc
    • ruby 平台:
      • ruby
      • x86_64-darwin-18
    • gem 路径:
      • $HOME/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0
      • $HOME/.gem/ruby/2.6.0
  13. gem install colorize - 这个 gem 看起来工作正常
  14. gem 安装 httparty
  15. gem 安装 pry
  16. 文件头:

    #!/usr/bin/ruby
    
    require 'httparty'
    require 'colorize'
    require 'pry'
    
  17. ./file.rb
  18. HTTParty 的堆栈跟踪
    /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/dependency.rb:319:in 'to_specs': Could not find 'multi_xml' (>= 0.5.2) among 17 total gem(s) (Gem::LoadError)
    Checked in 'GEM_PATH=$HOME/.gem/ruby/2.3.0:/Library/Ruby/Gems/2.3.0:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0', execute `gem env` for more information
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/specification.rb:1442:in `block in activate_dependencies'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/specification.rb:1431:in `each'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/specification.rb:1431:in `activate_dependencies'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/specification.rb:1413:in `activate'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems.rb:196:in `rescue in try_activate'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems.rb:193:in `try_activate'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:125:in `rescue in require'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:39:in `require'
    from ./cdw-demo.rb:3:in `<main>'
    
  19. Pry 的堆栈跟踪
    /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 -- pry (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 ./cdw-demo.rb:4:in `<main>'
    

堆栈跟踪显示可能存在 multi_xml 缺少 gem 的问题,但它是通过 httparty 安装的

gem 列表: gem 列表

*** LOCAL GEMS ***

bigdecimal (default: 1.4.1)
bundler (2.1.4, default: 1.17.2)
cmath (default: 1.0.0)
coderay (1.1.2)
colorize (0.8.1)
csv (default: 3.0.9)
date (default: 2.0.0)
dbm (default: 1.0.0)
did_you_mean (1.3.0)
e2mmap (default: 0.1.0)
etc (default: 1.0.1)
fcntl (default: 1.0.0)
fiddle (default: 1.0.0)
fileutils (default: 1.1.0)
forwardable (default: 1.2.0)
gdbm (default: 2.0.0)
httparty (0.17.3)
io-console (default: 0.4.7)
ipaddr (default: 1.2.2)
irb (default: 1.0.0)
json (default: 2.1.0)
logger (default: 1.3.0)
matrix (default: 0.1.0)
method_source (0.9.2)
mime-types (3.3.1)
mime-types-data (3.2019.1009)
minitest (5.11.3)
multi_xml (0.6.0)
mutex_m (default: 0.1.0)
net-telnet (0.2.0)
openssl (default: 2.1.2)
ostruct (default: 0.1.0)
power_assert (1.1.3)
prime (default: 0.1.0)
pry (0.12.2)
psych (default: 3.1.0)
rake (12.3.2)
rdoc (default: 6.1.0)
rexml (default: 3.1.9)
rss (default: 0.2.7)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
shell (default: 0.7)
stringio (default: 0.0.2)
strscan (default: 1.0.0)
sync (default: 0.5.0)
test-unit (3.2.9)
thwait (default: 0.1.0)
tracer (default: 0.1.0)
webrick (default: 1.4.2)
xmlrpc (0.3.0)
zlib (default: 1.0.0)

如果需要更多信息,请告诉我。

最佳答案

不要使用系统安装的 Ruby /usr/bin/ruby,而是使用 hashbang

#!/usr/bin/env ruby

这应该指向您的全局 rbenv 支持的 Ruby。

关于ruby - rbenv gem安装路径错误-找不到gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60212356/

相关文章:

Ruby 音频 API

ruby - 安装 gem Nokogiri-1.8.4 时出错

ruby-on-rails - 找不到 JavaScript 运行时。有关可用运行时的列表,请参阅 https://github.com/rails/execjs。 (ExecJS::运行时不可用)

ruby-on-rails - 由于 unicorn ,bundle exec rails s 失败

ruby-on-rails - 没有路由匹配 { :action= >"edit", :controller= >"comments", :article_id=>nil, :id=>nil} 用于编辑 ruby​​ on rails 博客中文章的评论

ruby-on-rails - 如何在 Rails 中使用雷神?

ios - 错误 : "Could not find ' cocoapods'"while installing a Pod

asp.net-mvc - ASP.NET bundle - 包含文件更改或 bundle 结构更改后 bundle 未更新

ruby - 如何使用 MongoDB Ruby Driver 做一个 "Group"(group by)?

ruby-on-rails - Ruby:include 有反义词吗?对于 Ruby 数组?