【问题标题】:Error when running Jekyll: cannot load such file -- google/api_client (LoadError)运行 Jekyll 时出错:无法加载此类文件 -- google/api_client (LoadError)
【发布时间】:2015-09-20 08:35:56
【问题描述】:

我不得不重新安装 OS X Yosemite 10.10.5,现在在运行我的 Jekyll 站点时出现以下错误(之前它运行良好):

MacBook-Pro-Svetlana:iloveip svetlana$ jekyll serve
WARN: Unresolved specs during Gem::Specification.reset:
      pygments.rb (~> 0.6.0)
      redcarpet (~> 3.1)
      jekyll-watch (~> 1.1)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Configuration file: /Users/svetlana/Desktop/iloveip/_config.yml
/Users/svetlana/Desktop/iloveip/_plugins/page_view.rb:4:in `require': cannot load such file -- google/api_client (LoadError)
    from /Users/svetlana/Desktop/iloveip/_plugins/page_view.rb:4:in `<top (required)>'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:74:in `require'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:74:in `block (2 levels) in require_plugin_files'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:73:in `each'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:73:in `block in require_plugin_files'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:72:in `each'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:72:in `require_plugin_files'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:18:in `conscientious_require'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:79:in `setup'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:41:in `initialize'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:29:in `new'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:29:in `process'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/commands/serve.rb:26:in `block (2 levels) in init_with_program'
    from /usr/local/lib/ruby/gems/2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `call'
    from /usr/local/lib/ruby/gems/2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `block in execute'
    from /usr/local/lib/ruby/gems/2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `each'
    from /usr/local/lib/ruby/gems/2.2.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `execute'
    from /usr/local/lib/ruby/gems/2.2.0/gems/mercenary-0.3.5/lib/mercenary/program.rb:42:in `go'
    from /usr/local/lib/ruby/gems/2.2.0/gems/mercenary-0.3.5/lib/mercenary.rb:19:in `program'
    from /usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/bin/jekyll:20:in `<top (required)>'
    from /usr/local/bin/jekyll:23:in `load'
    from /usr/local/bin/jekyll:23:in `<main>'

我为我的一个插件安装了“google-api-client”gem。 Ruby 是使用 Homebrew brew install ruby 安装的。当我检查 Ruby 版本时,我得到:

MacBook-Pro-Svetlana:iloveip svetlana$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]

但是当我运行$ gem list google-api-client -d 时,我得到:

MacBook-Pro-Svetlana:iloveip svetlana$ gem list google-api-client -d

*** LOCAL GEMS ***

google-api-client (0.8.6)
    Authors: Bob Aman, Steven Bazyl
    Homepage: https://github.com/google/google-api-ruby-client/
    License: Apache-2.0
    Installed at: /usr/local/lib/ruby/gems/2.2.0

    The Google API Ruby Client makes it trivial to discover and access
    Google's REST APIs.

我想这与我电脑上安装的不同 Ruby 版本有关。由于 gem 是使用$ sudo gem install google-api-client 安装的。我该如何解决?

(之前 Ruby 是使用 RVM 安装的,但是我在安装 Jekyll 时遇到了一些错误,所以我卸载了 RVM。)

这是关于我的gem environment的信息:

MacBook-Pro-Svetlana:~ svetlana$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.5.1
  - RUBY VERSION: 2.2.3 (2015-08-18 patchlevel 173) [x86_64-darwin14]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.2.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - SPEC CACHE DIRECTORY: /Users/svetlana/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/Cellar/ruby/2.2.3/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-14
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/2.2.0
     - /Users/svetlana/.gem/ruby/2.2.0
     - /usr/local/Cellar/ruby/2.2.3/lib/ruby/gems/2.2.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["https://rubygems.org/"]
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Users/svetlana/.rvm/bin

【问题讨论】:

  • 嗯。 google-api-client 安装在 2.2.0 文件夹中。尝试重新安装 gem。这听起来很愚蠢,但是......
  • @JuanjoSalvador,我尝试使用 sudo 卸载 gem,然后使用 bundle install 安装它,但没有帮助。我用我的gem environment 更新了这个问题。
  • 检查google-api-client 是否未声明为运行时依赖项。
  • @JuanjoSalvador 我该怎么做?

标签: ruby google-api jekyll homebrew jekyll-extensions


【解决方案1】:

嗯。我一直在寻找这个问题。我发现了几个相同或相似的链接。试试这个:

_plugins/page_view.rb文件的第4行,放

require "google/api_client"

而不是

require "google-api-client"

似乎有一个错误的要求。

【讨论】:

    猜你喜欢
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2012-03-09
    • 2016-08-22
    • 2015-05-30
    • 2015-01-22
    相关资源
    最近更新 更多