Jekyll/Ruby 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

Я уже установил kramdown, когда он спрашивает, но все равно получаю эту ошибку. Я нашел в другом посте, чтобы добавить gem 'kramdown' в Gemfile, который все еще не работает. Я супер новичок в Ruby/Jekyll, поэтому любая помощь будет очень оценена!

Ответы

Ответ 1

Я думаю, что проблема

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

как предложено в http://bundler.io/, всегда используйте bundle exec

bundle exec jekyll serve --watch 

В некоторых случаях выполнение исполняемых файлов без пакета exec может работать, если исполняемый файл будет установлен в вашей системе и не будет тяните любые драгоценные камни, которые конфликтуют с вашим комплектом. Однако это ненадежны и являются источником значительной боли. Даже если это выглядит как это работает, он может не работать в будущем или на другой машине.

Ответ 2

Это, скорее всего, связано с несколькими установленными драгоценными камнями jekyll. Jekyll может быть установлен несколько раз, потому что у вас может быть

  • установил его gem install jekyll при первой попытке
  • добавлена ​​зависимость github-pages в Gemfile, как предложено руководствами

Поэтому вы должны проверить наличие нескольких установленных копий. Запустите gem list jekyll из оболочки, которая выводит следующее:

$ 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)
...

Как вы видите, установлены 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

Я также удалил jekyll-gist таким же образом. Таким образом вам вообще не нужно удалять рубин.

Ответ 3

Удалить Gemfile.lock

bundle install

запустить jekyll

Ответ 4

Я решил ту же проблему в моей среде:

$>gem uninstall kramdown

Select gem to uninstall:
 1. kramdown-1.5.0
 2. kramdown-1.9.0
 3. All versions
> 3

You have requested to uninstall the gem:
        kramdown-1.5.0

github-pages-39 depends on kramdown (= 1.5.0)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Successfully uninstalled kramdown-1.5.0

You have requested to uninstall the gem:
        kramdown-1.9.0

jekyll-3.0.1 depends on kramdown (~> 1.3)
jekyll-2.4.0 depends on kramdown (~> 1.3)
markdown-1.2.0 depends on kramdown (>= 1.5.0)
test-unit-3.1.5 depends on kramdown (>= 0, development)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Remove executables:
        kramdown

in addition to the gem? [Yn]  y
Removing kramdown
Successfully uninstalled kramdown-1.9.0

$>gem install kramdown
Fetching: kramdown-1.9.0.gem (100%)
Successfully installed kramdown-1.9.0
Parsing documentation for kramdown-1.9.0
Installing ri documentation for kramdown-1.9.0
Done installing documentation for kramdown after 2 seconds
1 gem installed

Проблема вызвана двумя версиями kramdown.

Итак, uninstall сначала, затем re install it.

Надеюсь, что это поможет.

Ответ 5

Я столкнулся с той же проблемой в OS X Yosemite, вы должны проверить свою среду Ruby, посмотрите, может ли команда bundle install установить ваши драгоценные камни в нужное место.

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)