2014-11-28 6 views
3

Я использую Jekyll, у меня есть два независимых репозитория, и я думаю, что недавно обновил их. Все отлично работало в последний раз, когда я делал свой блог. Теперь только это:Jekyll/gem: Неразрешенные спецификации

$ jekyll serve --watch 
WARN: Unresolved specs during Gem::Specification.reset: 
     redcarpet (~> 3.1) 
     jekyll-watch (~> 1.1) 
     classifier-reborn (~> 2.0) 
WARN: Clearing out unresolved specs. 
Please report a bug if this causes problems. 
/var/lib/gems/2.1.0/gems/jekyll-2.5.2/bin/jekyll:21:in `block in <top (required)>': cannot load such file -- jekyll/version (LoadError) 
    from /var/lib/gems/2.1.0/gems/mercenary-0.3.5/lib/mercenary.rb:18:in `program' 
    from /var/lib/gems/2.1.0/gems/jekyll-2.5.2/bin/jekyll:20:in `<top (required)>' 
    from /usr/local/bin/jekyll:23:in `load' 
    from /usr/local/bin/jekyll:23:in `<main>' 

Что, черт возьми, происходит? Кажется, Джекил или Джем убили себя. Как я могу это исправить?

Как я могу предотвратить, что Jekyll или Ruby возится с глобальной установкой (я думаю, что это то, что происходит - два блога не независимы друг от друга)? Могу ли я гарантировать, что каждый каталог Jekyll изолирован от другого, как в любой системе языка/сборки спуска?


Редактировать. Я беспорядочно бежал sudo gem cleanup && bundle install. Кажется, что удалил (!?!) Все драгоценные камни, а затем снова установил их. Теперь я получаю другую ошибку:

WARN: Unresolved specs during Gem::Specification.reset: 
     listen (~> 2.7) 
WARN: Clearing out unresolved specs. 
Please report a bug if this causes problems. 

Правильно ли я предположить, что камень/расслоение не имеет ни малейшего представления, что переходная зависимость?

$ bundle show listen 
/var/lib/gems/2.1.0/gems/listen-2.7.11 

Так это слушать. Так почему же Джекил жалуется?

ответ

12

Кажется, что вы не единственный, у кого есть такая проблема. See issue here.

Мне удалось обойти эту проблему двумя способами.

На Jekyll 2.5.x, удаляя Gemfile, просто устраните ошибку.

Если Gemfile необходим, bundle exec jekyll serve в порядке.

+0

Отлично! Я изменил 'jekyll serve' для' bundle exec jekyll serve'. Он всегда работал без 'bundle exec' раньше, поэтому я не знаю, что изменилось, но префикс заставляет его работать. –

-2

На сайте Jekyll они рекомендуют передать пустую строку в параметр baseurl после подачи jekyll. Лично, единственное, что сработало для меня, было сочетание этого и совета Дэвида. bundle exec jekyll serve --baseurl ''

Смежные вопросы