当前位置: 首页>>技术问答>>正文


如何安装je​​kyll?

, , ,

问题描述

根据jekyll site,这是你如何使用jekyll创建一个新网站:

~ $ gem install jekyll
~ $ jekyll new myblog
~ $ cd myblog
~/myblog $ jekyll serve

gem install jekyll不起作用,sudo gem install jekyll也不起作用:

└─>gem install jekyll
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied - /var/lib/gems/1.9.1/gems/fast-stemmer-1.0.2/LICENSE
┌─[Sat Jun 08][jon@jon-MacMini:~/Web]
└─>sudo !!
sudo gem install jekyll
Building native extensions.  This could take a while...
ERROR:  Error installing jekyll:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/fast-stemmer-1.0.2 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/fast-stemmer-1.0.2/ext/gem_make.out

我也试过跟随the answer here,但这没有帮助。 sudo apt-get install jekyll有效。尽管如此,运行jekyll new myblog仍会返回此错误:

└─>jekyll new myblog
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
WARNING: Could not read configuration. Using defaults (and options).
    No such file or directory - new/_config.yml
Building site: new -> myblog
/usr/lib/ruby/vendor_ruby/jekyll/site.rb:126:in `chdir': No such file or directory - /home/jon/Web/new/ (Errno::ENOENT)
    from /usr/lib/ruby/vendor_ruby/jekyll/site.rb:126:in `read_directories'
    from /usr/lib/ruby/vendor_ruby/jekyll/site.rb:98:in `read'
    from /usr/lib/ruby/vendor_ruby/jekyll/site.rb:38:in `process'
    from /usr/bin/jekyll:250:in `<main>'

任何人都知道是什么导致了这个?

最佳解决办法

在我的13.04和14.04系统上,安装ruby-dev软件包然后运行gem安装后,事情对我有用:

  • sudo apt-get install ruby1.9.1-dev(或尝试:ruby-dev代替)

  • gem install jekyll#如果失败则sudo gem install jekyll

之后,jekyll安装正确。

请注意,对于gem install指令,最好不要使用sudo。*****

最好使用像RVM这样的东西,这样就不需要sudo了。在某些系统上,可能需要使用sudo,例如,如果先前的sudo命令或root-level配置设置了权限。

有关获取设置为用户而非root用户权限的更多信息和帮助,请参阅此stackoverflow question — how to install gems without sudo

*****感谢@iguarav提供此最佳实践建议以及rvm.io链接。

次佳解决办法

没有RVM的14.04 LTS指南

Jekyll 3需要ruby 2.0或更高版本,所以我们首先安装ruby 2.0,它的开发头和nodejs:

sudo apt-get install -y ruby2.0 ruby2.0-dev nodejs

然后我们将ruby包中包含的命令指向新版本。

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.0 10
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem2.0 10
sudo update-alternatives --install /usr/bin/irb irb /usr/bin/irb2.0 10
sudo update-alternatives --install /usr/bin/rdoc rdoc /usr/bin/rdoc2.0 10
sudo update-alternatives --install /usr/bin/testrb testrb /usr/bin/testrb2.0 10
sudo update-alternatives --install /usr/bin/rake rake /usr/bin/rake2.0 10
sudo update-alternatives --install /usr/bin/erb erb /usr/bin/erb2.0 10
sudo update-alternatives --install /usr/bin/ri ri /usr/bin/ri2.0 10

最后我们使用gem来安装jekyll gem。

sudo gem install jekyll

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2909.html,未经允许,请勿转载。