如何安装je​​kyll?


30

根据jekyll网站,这是您使用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

我也尝试按照这里的答案进行操作,但这无济于事。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>'

有人知道是什么原因造成的吗?


Ubuntu 13.04。我以通常的方式安装了ruby :sudo apt-get install ruby
乔纳森(Jonathan)2013年

对于Ubuntu的LTS 12.04看到这个
NickKolok '16

Answers:


46

在我的13.04和14.04系统上,安装ruby-dev软件包,然后运行gem install,对我来说一切正常。

  • 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命令或根级配置设置的,则可能需要使用。

请参阅此stackoverflow问题-如何在不使用sudo情况下安装gem,以获取更多信息并获得将权限设置为用户而不是root的帮助。

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


1
那行得通。但是,为了能够从命令行运行jekyll,我还必须将gem目录添加到PATH中。我还必须卸载没有new子命令的ubuntu软件包版本。
乔纳森(Jonathan)

这对我有用。另外,我首先尝试安装和使用ruby2.0-dev,但是没有运气。
emchristiansen 2014年

确认将在ubuntu 14.04
Meta

您不应该将sudo与gem install一起使用,因为它们只是可重用的库
igaurav 2014年

@belacqua最佳实践建议使用RVMrvm.io。如果过度使用sudo,很快就会遇到依赖问题。
igaurav 2014年

3

不带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

1

另外,您也不想依赖于sudo执行gems,因此我建议将您的用户添加到根目录的组中,并:

sudo chmod -R 770 /var/lib/gems
sudo chmod -R 770 /usr/local/bin

只需对此线程进行一些更新。根据jekyll的安装文档,所需的版本为版本2。解决权限问题后,我遇到了预期的错误:

ERROR:  Error installing jekyll:
jekyll requires Ruby version >= 2.0.0.

使用RVM安装:

gpg --keyserver hkp://keys.gnupg.net --recv-keys \  409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby             
/bin/bash --login
rvm install 2.3.0
rvm use 2.3.0
rvm rubygems latest
ruby --version
rvm install ruby-dev

有关Ruby安装的其他问题,请遵循

之后,它对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.