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)