Ruby Jekyll-运行时出错';杰基尔服务';

Ruby Jekyll-运行时出错';杰基尔服务';,ruby,gem,jekyll,Ruby,Gem,Jekyll,编辑:找到答案(请参见下面的我的答案!)。它涉及到使用1.4.2版而不是1.4.3版,因此,如果有人对1.4.3版的工作有任何想法,这也会很有帮助。谢谢 编辑2:由于下面的评论,1.4.3在windows上运行时似乎确实存在问题 我刚刚在我的Windows7电脑上安装了jekyll。我已经在开发包中安装了ruby 我已经运行了gem install-jekyll,并成功完成。我已经根据jekyll文档创建了一个新站点 我遇到的问题发生在我尝试运行jekyllserve时。请在下面找到错误输出 P

编辑:找到答案(请参见下面的我的答案!)。它涉及到使用1.4.2版而不是1.4.3版,因此,如果有人对1.4.3版的工作有任何想法,这也会很有帮助。谢谢

编辑2:由于下面的评论,1.4.3在windows上运行时似乎确实存在问题

我刚刚在我的Windows7电脑上安装了jekyll。我已经在开发包中安装了ruby

我已经运行了
gem install-jekyll
,并成功完成。我已经根据jekyll文档创建了一个新站点

我遇到的问题发生在我尝试运行
jekyllserve
时。请在下面找到错误输出

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)>
PS C:\jekyll\test site>jekyll-service--trace
配置文件:C:/jekyll/test site/_config.yml
来源:C:/jekyll/试验场地
目的地:C:/jekyll/试验场地/\u场地
生成。。。C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:247:in`mkdir':无效参数-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层)in mkdir\u 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\u 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\u p'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/converable.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 `每个站点文件中的块(2个级别)'
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'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:395:“每个站点”文件中
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:259:in'write'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:41:in'process'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/command.rb:18:in'process\u site'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/commands/build.rb:23:in'build'
来自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层)in'
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'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/runner.rb:402:in'run\u active\u command'
来自C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/runner.rb:78:in'run!'
来自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`
我环顾四周,但我是ruby的新手,所以我不知道在这里寻找什么或如何找到错误。任何帮助都是非常感激的

谢谢


Joe在Jekyll的插件“Category Archive Generator”()中遇到了同样的问题

很可能您有一个插件-在_plugins文件夹中-正在使用File.join()方法。e、 g.
File.join('/',dest,@dir,@category\u dir\u name,'index.html')


通过删除第一个元素,将其留给您
File.join(dest,@dir,@category\u dir\u name,'index.html')

回答我自己的问题,我设法找到了一个解决方案

这似乎是Jekyll版本1.4.3的问题。为了解决这个问题,我卸载了jekyll并安装了1.4.2版

gem卸载jekyll

gem-install-jekyll--version“=1.4.2”

如果您在windows上遇到与我相同的问题,那么执行此操作和所有操作都会正常工作


我想这是因为1.4.3版是新版本(13日发布),在windows上不稳定。

我在Ubuntu Precise 12.04上也遇到了同样的问题。问题是我安装了ruby1.8。我还安装了ruby1.9.1。我删除了ruby1.8,然后Jekyll安装得很好。

你能尝试一个新站点“testsite”(无破折号)吗?谢谢@svoop的建议,我尝试了一下,但没有运气,同样的错误。同样的问题也发生在“Jekyll build”上。谢谢你的回答,不幸的是我根本没有安装插件。_plugins文件夹不在那里,我正在重新安装。根据您之前的回答,我发现罪魁祸首是1.4.3本身。我查看了gem的源代码,也就是说,
C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/
看起来不像
post.rb
page.rb
中的
destination
方法与GitHub中的方法相匹配,如果您要在gems内部替换它们,那么1.4.3就可以工作了。如果将正确的方法添加到
convertible.rb
中,则可以删除
post.rb
page.rb
中的方法。FWIW我希望在推送我的github页面之前使用Jekyll预览它们。这意味着,按照他们的指示,我需要修改在生成的名为Gemfile.Lock的文件中找到的对Jekyll的引用。在我这样做之后,事情开始在本地为我工作。@RoryBecker我可以
构建
服务
,但是
服务--watch
会给我一个错误。是