Jekyll/Ruby Kramdown缺少依赖性

aba*_*azn 15 ruby gem jekyll kramdown

我正在努力建立我的第一个jekyll博客.我正在尝试运行jekyll服务器,但在将其键入终端后,我收到错误消息:

You are missing a library required for Markdown. Please run:
$ [sudo] gem install kramdown
Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2013-08-15-immunize-canada-app.md/#excerpt':
                Missing dependency: kramdown
         ERROR: YOUR SITE COULD NOT BE BUILT:
                ------------------------------------
                Missing dependency: kramdown
Run Code Online (Sandbox Code Playgroud)

我已经安装了kramdown,但仍然收到此错误.我在另一篇文章中发现将gem'kramdown'添加到Gemfile中,但仍无效.我是Ruby/Jekyll的新手,所以任何帮助都会非常感激!

Dyn*_* Fu 46

我认为问题是

gem query | grep kramdown
kramdown (1.8.0, 1.5.0)

bundle show kramdown
/Library/Ruby/Gems/2.0.0/gems/kramdown-1.5.0
Run Code Online (Sandbox Code Playgroud)

正如http://bundler.io/中所建议的,总是使用bundle exec

bundle exec jekyll serve --watch 
Run Code Online (Sandbox Code Playgroud)

在某些情况下,如果可执行文件恰好安装在您的系统中并且没有引入任何与您的软件包冲突的gem,那么运行没有bundle exec的可执行文件可能会有效.然而,这是不可靠的,并且是相当痛苦的根源.即使看起来它有效,它可能在将来或在另一台机器上不起作用.

  • 使用`bundle exec`为我工作.谢谢 (2认同)

mck*_*cku 12

这很可能是由于安装了多个jekyll宝石.Jekyll可以多次安装,因为可能有

  1. gem install jekyll第一次尝试安装它
  2. github-pages根据指南建议在Gemfile中添加依赖项

因此,您应该检查是否有多个已安装的副本.gem list jekyll从shell 运行,输出以下内容:

$ gem list jekyll

*** LOCAL GEMS ***

jekyll (2.5.3, 2.4.0)
jekyll-coffeescript (1.0.1)
jekyll-feed (0.3.1)
jekyll-gist (1.3.4, 1.2.1)
...
Run Code Online (Sandbox Code Playgroud)

如您所见,安装了2.5.3和2.4.0.我正在跑去gem uninstall摆脱一个.旧版本是依赖项github-pages,因此只需卸载jekyll-2.5.3.

$ gem uninstall jekyll

Select gem to uninstall:
 1. jekyll-2.4.0
 2. jekyll-2.5.3
 3. All versions
> 2
Successfully uninstalled jekyll-2.5.3
Run Code Online (Sandbox Code Playgroud)

我也jekyll-gist以同样的方式卸载了.这样您根本不需要卸载ruby.


Cla*_*auz 0

我在 OS X Yosemite 下遇到了同样的问题,你应该检查你的 Ruby 环境,看看bundle install命令是否将你的 gems 安装到正确的位置。

which ruby
which gem
which jekyll
bundle show jekyll

您可能会发现您没有拨打jekyll您想要拨打的电话。


我的解决方案:

brew uninstall ruby (I installed ruby with HomeBrew) brew install rbenv ruby-build (Use rbenv to manage system Ruby reference) echo 'eval "$(rbenv init -)"' >> ~/.bash_profile (or ~/.zshrc)

重新启动你的外壳

rbenv install 2.2.2 (Install Ruby v2.2.2) rbenv global 2.2.2 (Make v2.2.2 the global default) rbenv versions (Double check the output, whether the default is not system one)