2016-09-16 96 views
4

我试图用命令jekyll build构建一个jekyll站点。当我运行该命令时出现以下错误:Jekyll构建错误

/usr/local/share/ruby/gems/2.0/gems/bundler-1.13.1/lib/bundler/rubygems_ext.rb:45:in `full_gem_path': uninitialized constant Bundler::Plugin::API::Source (NameError) 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:1393:in `contains_requirable_file?' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:68:in `block in require' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:823:in `block in each' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:822:in `each' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:822:in `each' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:67:in `find' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:67:in `require' 
    from /usr/local/share/ruby/gems/2.0/gems/bundler-1.13.1/lib/bundler/plugin/api/source.rb:2:in `<top (required)>' 
    from /usr/local/share/ruby/gems/2.0/gems/bundler-1.13.1/lib/bundler/rubygems_ext.rb:45:in `full_gem_path' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:1393:in `contains_requirable_file?' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:68:in `block in require' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:823:in `block in each' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:822:in `each' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/specification.rb:822:in `each' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:67:in `find' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:67:in `require' 
    from /usr/local/share/ruby/gems/2.0/gems/bundler-1.13.1/lib/bundler.rb:11:in `<top (required)>' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:135:in `require' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require' 
    from /usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require' 
    from /usr/local/share/ruby/gems/2.0/gems/jekyll-3.2.1/lib/jekyll/plugin_manager.rb:34:in `require_from_bundler' 
    from /usr/local/share/ruby/gems/2.0/gems/jekyll-3.2.1/exe/jekyll:9:in `<top (required)>' 
    from /usr/local/bin/jekyll:23:in `load' 
    from /usr/local/bin/jekyll:23:in `<main>' 

我运行的是Ruby 2.2版。我的服务器是Amazon Linux AMI。让我知道是否有任何其他信息需要回答这个问题!

回答

4

我最终弄清楚了这一点。显然我错过了一个JavaScript环境。步骤:

  1. sudo rm -r Gemfile.lock
  2. nano Gemfile。添加gem 'therubyracer'。保存并退出
  3. bundle install
  4. bundle exec jekyll build

这解决了这个问题对我来说!

2

我遇到了同样的问题。当您尚未初始化bundler和jekyll依赖关系时会发生这种情况。

为了解决这个问题,

  1. 转到根目录包含您的化身文件
  2. 运行jekyll new . --force。这将初始化捆绑和依赖杰基尔当前文件夹
  3. 现在运行使用bundler exec jekyll serve

jekyll new . --force作品像git init一个新的git仓库服务器。请参阅documentation以获取更多信息