在Linux(Fedora 20)上安装Jekyll

3

大家好,我使用命令sudo gem install jekyll在我的Fedora 20系统上安装jekyll,但出现了以下错误。我已经成功安装了ruby和rubygems,并且似乎已经安装了jekyll。但是当我输入命令jekyll serve时,页面没有被创建并收到了类似的错误信息。我对Fedora和ruby都比较陌生,请大家帮忙解决问题,谢谢。

Successfully installed jekyll-2.1.0
/usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- json/pure (LoadError)
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/gems/gems/json-1.7.7/lib/json.rb:60:in `rescue in <module:JSON>'
    from /usr/share/gems/gems/json-1.7.7/lib/json.rb:57:in `<module:JSON>'
    from /usr/share/gems/gems/json-1.7.7/lib/json.rb:54:in `<top (required)>'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/text.rb:16:in `<top (required)>'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/code_object.rb:28:in `<class:CodeObject>'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/code_object.rb:26:in `<top (required)>'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/generator/markup.rb:59:in `<top (required)>'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/generator/darkfish.rb:6:in `<top (required)>'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rdoc.rb:565:in `<top (required)>'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rubygems_hook.rb:73:in `load_rdoc'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rubygems_hook.rb:238:in `setup'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rubygems_hook.rb:151:in `generate'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rubygems_hook.rb:56:in `block in generation_hook'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rubygems_hook.rb:55:in `each'
    from /usr/share/gems/gems/rdoc-4.0.1/lib/rdoc/rubygems_hook.rb:55:in `generation_hook'
    from /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:178:in `call'
    from /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:178:in `block in install'
    from /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:177:in `each'
    from /usr/local/share/ruby/site_ruby/rubygems/request_set.rb:177:in `install'
    from /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:249:in `install_gem'
    from /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:291:in `block in install_gems'
    from /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:287:in `each'
    from /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:287:in `install_gems'
    from /usr/local/share/ruby/site_ruby/rubygems/commands/install_command.rb:202:in `execute'
    from /usr/local/share/ruby/site_ruby/rubygems/command.rb:307:in `invoke_with_build_args'
    from /usr/local/share/ruby/site_ruby/rubygems/command_manager.rb:167:in `process_args'
    from /usr/local/share/ruby/site_ruby/rubygems/command_manager.rb:137:in `run'
    from /usr/local/share/ruby/site_ruby/rubygems/gem_runner.rb:54:in `run'
    from /bin/gem:21:in `<main>'
2个回答

4

请尝试通过以下方式安装ruby-devel -

sudo yum install ruby-devel

尝试重新安装 jekyll
sudo gem install jekyll

同时请确保您已经安装了nodejs

sudo yum install nodejs

3

你的JSON解析器出现了问题。在你的堆栈跟踪中看到了cannot load such file -- json/pure吗?在运行Jekyll之前,你需要能够成功运行gem install jsongem install json_pure


谢谢,我尝试了你的解决方案并安装了一些必要的软件,它起作用了。我还有一个问题要问,在这个帖子中,人们说sudo gem install jekyllgem install jekyll有不同的效果,并且输入gem list --all是否使用sudo,我得到了完全不同的gem列表。为什么会这样? - user3805728
sudo前缀用于gem命令,可以让你全局查看rubygems的安装情况。因此,如果你只运行gem install(不带sudo或root权限),那么你将在当前用户目录下本地安装一个特定的gem。 - sentenza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接