Jekyll — ошибка при запуске «Jekyll Serve»

РЕДАКТИРОВАТЬ: Нашел ответ (см. Мой ответ ниже!). Это предполагает использование версии 1.4.2 вместо 1.4.3, поэтому, если у кого-то есть какие-либо идеи о том, как заставить работать 1.4.3, это также может быть полезно. Спасибо!

РЕДАКТИРОВАТЬ 2: благодаря комментарию ниже кажется, что у 1.4.3 есть проблема при работе в Windows. https://github.com/jekyll/jekyll/issues/1948

Я только что установил jekyll на свой компьютер с Windows 7. У меня Ruby установлен вместе с пакетом разработчика.

Я запустил gem install jekyll и успешно завершил. Я создал новый сайт в соответствии с документацией jekyll.

Проблема, с которой я сталкиваюсь, возникает, когда я пытаюсь запустить jekyll serve. Пожалуйста, найдите ниже вывод ошибки.

PS C:\jekyll\test-site> jekyll serve --trace
Configuration file: C:/jekyll/test-site/_config.yml
        Source: C:/jekyll/test-site
   Destination: C:/jekyll/test-site/_site
  Generating... C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir': Invalid argument - C:/jekyll/test-site/_site/C: (Errno::EINVAL)
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:205:in `each'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:205:in `mkdir_p'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/convertible.rb:168:in `write'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:259:in `block in write'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:397:in `block (2 levels) in each_site_file'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:396:in `each'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:396:in `block in each_site_file'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:395:in `each'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:395:in `each_site_file'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:259:in `write'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:41:in `process'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/command.rb:18:in `process_site'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/commands/build.rb:23:in `build'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/commands/build.rb:7:in `process'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/bin/jekyll:97:in `block (2 levels) in <top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/command.rb:180:in `call'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/command.rb:180:in `call'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/command.rb:155:in `run'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/runner.rb:402:in `run_active_command'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/runner.rb:78:in `run!'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/delegates.rb:11:in `run!'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/import.rb:10:in `block in <top (required)>

Я осмотрелся, но я новичок в рубине, поэтому я понятия не имею, что искать или как найти здесь ошибку. Любая помощь будет очень признательна.

Спасибо,

Джо


person Joe    schedule 15.01.2014    source источник
comment
Можете ли вы попробовать новый тестовый сайт сайта (без тире)?   -  person svoop    schedule 15.01.2014
comment
Спасибо за предложение @svoop. Я попробовал, но не повезло, та же ошибка.   -  person Joe    schedule 15.01.2014
comment
Эта же проблема возникает и с «Jekyll build».   -  person Jesslyn    schedule 29.01.2014


Ответы (3)


Отвечая на свой вопрос, мне удалось найти решение.

Похоже, это проблема с Jekyll версии 1.4.3. Чтобы решить эту проблему, я удалил jekyll и установил версию 1.4.2.

gem uninstall jekyll

gem install jekyll --version "=1.4.2"

Делая это, и все должно работать нормально, если у вас такая же проблема, как у меня в Windows.

Я предполагаю, что это потому, что версия 1.4.3 новая (выпущена 13-го числа) и нестабильна в Windows.

person Joe    schedule 15.01.2014
comment
Спасибо, Джо. FWIW Я хотел использовать Jekyll для предварительного просмотра моих страниц github, прежде чем я их нажал. Это означало, что, следуя их инструкциям, мне нужно было изменить ссылку на Jekyll, найденную в сгенерированном файле с именем Gemfile.Lock. после того, как я это сделал, у меня начали работать локально. - person Rory Becker; 15.01.2014
comment
@RoryBecker Я могу build и serve, но serve --watch выдает ошибку. Это как-то связано с тем, что вы сказали? Потому что я не нашел ссылок на jekyll в файлах Gemfile.Lock. - person kleinfreund; 18.01.2014
comment
У меня была такая же проблема с jekyll serve --watch. Для этого вам нужно установить некоторые другие драгоценные камни. Я думаю, что драгоценный камень называется listener, но я не уверен в этом на 100%. - person Joe; 19.01.2014
comment
Кто-нибудь здесь поднимал связанный с этим вопрос о Джекилле? Это обходной путь, но, вероятно, требуется отчет об ошибке. - person Danny Staple; 07.02.2014
comment
Я полагаю, что это было поднято на Jekyll (см. Ссылку на github в моем основном вопросе). Кажется, они сказали, что исправят это для версии 2.0.0. - person Joe; 07.02.2014

Только что столкнулся с той же проблемой с плагином Jekyll «Генератор архива категорий» (https://github.com/shigeya/jekyll-category-archive-plugin)

Скорее всего, у вас есть плагин в папке _plugins, который использует метод File.join(). например File.join('/', dest, @dir, @category_dir_name, 'index.html')

Измените это, удалив первый элемент, оставив вам File.join(dest, @dir, @category_dir_name, 'index.html')

person serverdude    schedule 15.01.2014
comment
Спасибо за ответ, к сожалению, у меня вообще не установлены плагины. Папки _plugins там нет, а у меня новая установка. - person Joe; 15.01.2014
comment
С вашим предыдущим ответом и github.com/jekyll/jekyll/issues/1948 я вижу что виновником является 1.4.3 сама по себе. - person serverdude; 15.01.2014
comment
Я просмотрел исходный код из драгоценного камня, т.е. C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/ не похоже, чтобы методы destination в post.rb и page.rb соответствовали методам на GitHub github.com/jekyll/jekyll/blob/master/lib/jekyll/post.rb и github.com/jekyll/jekyll/blob/master/lib/jekyll/page.rb Если бы вы поменяли их местами внутри своих драгоценных камней, тогда 1.4.3 работает. Вы можете удалить метод в post.rb и page.rb, если добавите правильный метод в convertible.rb - person serverdude; 16.01.2014

У меня была такая же проблема на Ubuntu Precise 12.04. Проблема заключалась в том, что у меня был установлен ruby1.8. У меня также был установлен ruby1.9.1. Я удалил ruby1.8, а затем установил Jekyll.

person Berend de Boer    schedule 21.01.2014