Ошибка зависимости Jekyll при обновлении с 2.x до 3.x

Следуя официальному руководству по обновлению, я недавно обновил Jekyll 2.x до Jekyll 3.1.1.

После установки запуск jekyll serve привел к следующей ошибке:

Ошибка зависимости: да! Похоже, у вас не установлен jekyll-markdown-block или одна из его зависимостей. Чтобы использовать Jekyll в текущей конфигурации, вам необходимо установить этот гем. Полное сообщение об ошибке от Ruby: «Невозможно активировать jekyll-markdown-block-1.1.0, поскольку jekyll-3.1.1 конфликтует с jekyll (~> 2.0)». Если у вас возникнут проблемы, вы можете найти полезные ресурсы по адресу http://jekyllrb.com/help/!

Итак, оттуда я sudo gem update jekyll-markdown-block, но ошибка все еще сохраняется. Затем я попытался обновить все свои драгоценные камни:

sudo gem update `gem list | cut -d ' ' -f 1`

А затем в отчаянии удалил все мои драгоценные камни (кроме основного, который мне не разрешили удалить):

sudo gem uninstall `gem list | cut -d ' ' -f 1`

Затем я приступил к установке jekyll как обычно (при условии, что теперь я работаю с чистого листа):

sudo gem install jekyll
Fetching: liquid-3.0.6.gem (100%)
Successfully installed liquid-3.0.6
Fetching: kramdown-1.9.0.gem (100%)
Successfully installed kramdown-1.9.0
....
Parsing documentation for jekyll-watch-1.3.1
Installing ri documentation for jekyll-watch-1.3.1
Parsing documentation for jekyll-3.1.1
Installing ri documentation for jekyll-3.1.1
14 gems installed

После установки jekyll-press и jekyll-markdown-block (новое сообщение об ошибке жаловалось, что у меня их нет), я получил исходное сообщение об ошибке с жалобой на Jekyll 2.x.

Как я могу полностью удалить Jekyll 2.x и завершить обновление без ошибок зависимости от драгоценного камня?


person James Taylor    schedule 03.02.2016    source источник
comment
Пробовали ли вы добавить jekyll-markdown-block в Gemfile вашего сайта jekyll?   -  person AntK    schedule 03.02.2016
comment
Попробуйте создать сайт с помощью bundler. Если он у вас не установлен, запустите gem install bundler из командной строки. Затем добавьте Gemfile со всеми необходимыми драгоценными камнями. Затем выполните команду bundle install, когда пакет установит все необходимые гемы и их зависимости. И, наконец, запустите bundle exec jekyll serve для локального обслуживания. Вы можете добавить флаги --watch, --baseurl "" , а также --safe к команде bundle exec.   -  person Virtua Creative    schedule 03.02.2016
comment
Обновление: в конечном итоге я заставил это работать, перейдя в новый каталог и запустив jekyll init. Обслуживание этого недавно созданного сайта сработало, и я просто перенес старый сайт. Я почти уверен, что были изменения конфигурации, которые привели к поломке старого сайта.   -  person James Taylor    schedule 21.03.2016


Ответы (3)


У меня была такая же проблема после обновления до jekylls 3.1.2 с 2.x. Запустив jekyll serve, я получил следующее сообщение:

Ошибка зависимости: да! Похоже, у вас не установлен kramdown или одна из его зависимостей. Чтобы использовать Jekyll в текущей конфигурации, вам необходимо установить этот гем. Полное сообщение об ошибке от Ruby: «невозможно загрузить такой файл -- kramdown». Если у вас возникнут проблемы, вы можете найти полезные ресурсы по адресу http://jekyllrb.com/help/!

Я сделал то, что предлагает Virtua Creative в его комментарии:

bundle install

а потом:

bundle exec jekyll serve

Первоначальная команда давала мне ту же ошибку, но пакет exec работает.

person Darien    schedule 21.02.2016
comment
ага, я имею дело с той же проблемой kramdown, и ваше решение работает, но почему? - person Josh.F; 15.03.2016
comment
У меня был такой же опыт. Я предполагаю, что bundle exec jekyll serve использует зависимости, установленные локально bundle install, тогда как jekyll serve использует геммы, установленные глобально. Бьюсь об заклад, если мы попробуем gem install kramdown или что-то в этом роде, это исправит ситуацию. - person Tobias Fünke; 01.04.2016
comment
Я тоже столкнулся с этим. Проблема, похоже, вызвана пакетом. Запустил jekyll serve --trace и обнаружил, что исключение выбрасывается в сборщик. Когда я удалил пакет, я смог создать сайт с помощью jekyll 3.1.2. - person codewise; 06.04.2016

Кажется, что пакет envitorment перепутан. Попробуйте bundle clean --force - с помощью sudo, если у вас есть проблемы с разрешениями.

person Carlo    schedule 15.05.2016
comment
У меня было установлено 3 версии kramdown. Это помогло мне. - person Alfred Myers; 05.06.2016

Убедитесь, что у вас установлен сборщик,

sudo gem install bundler
person Lean Junio    schedule 09.11.2016