【问题标题】:Why I can't access gem on github in my app?为什么我无法在我的应用程序中访问 github 上的 gem?
【发布时间】:2020-05-11 16:19:31
【问题描述】:

我无法在我的应用中访问我在 github 上的 gem。

在“检查”本地存储库的目录中:

  1. my@pc:/check$ 捆绑安装/更新
  2. my@pc:/check$ 捆绑信息考试

    • 考试 (0.1.0 e21d9f9)
      摘要:只是示例
      主页:https://github.com/
      路径:/home/.rvm/gems/ruby-2.6.3@check/bundler/gems/exam-e21d9f936578
  3. my@pc:/check$ ruby runner.rb

    Traceback (most recent call last):
    2: from runner.rb:1:in '<main>'
    1: from /usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in 'require'
    /usr/share/rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in **'require': cannot load such file -- exam (LoadError)**

  4. 看什么考试

ERROR: Can't find Ruby library file or shared library exam
在过程中“捆绑安装”路径已添加到 $LOAD_PATH 但是当我通过 irb 打开 $LOAD_PATH 时,该路径不存在

**gem env**
RubyGems Environment:
  - RUBYGEMS VERSION: 3.1.2
  - RUBY VERSION: 2.6.3 (2019-04-16 patchlevel 62) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/pc/.rvm/gems/ruby-2.6.3@check
  - USER INSTALLATION DIRECTORY: /home/pc/.gem/ruby/2.6.0
  - RUBY EXECUTABLE: /usr/share/rvm/rubies/ruby-2.6.3/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /home/pc/.rvm/gems/ruby-2.6.3@check/bin
  - SPEC CACHE DIRECTORY: /home/pc/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/pc/.rvm/gems/ruby-2.6.3@check
     - /home/pc/.rvm/gems/ruby-2.6.3@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/pc/.rvm/gems/ruby-2.6.3@check/bin
     - /home/pc/.rvm/gems/ruby-2.6.3@global/bin
     - /usr/share/rvm/rubies/ruby-2.6.3/bin
     - /usr/share/rvm/bin`

【问题讨论】:

  • 只需在 Gemfile 中添加 gemspec 行并在 gemspec 文件中列出 deps
  • 没用。 LoadError 的问题
  • @Orion Edwards 请帮忙

标签: ruby-on-rails ruby rubygems


【解决方案1】:

您需要激活 Bundler 以便它可以将您的考试 gem 添加到加载路径。您可以使用bundle exec 执行您的代码:

$ bundle exec ruby​​ runner.rb 来自宝石的 Hola

或在加载“exam”之前将require 'bundler/setup' 添加到runner.rb:

require 'bundler/setup'
require 'exam'

# Console.new.run
Game.greeting
红宝石亚军.rb 来自宝石的 Hola

【讨论】:

  • 太棒了。非常感谢。
猜你喜欢
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多