问题描述
根据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