如何安装 jekyll?

如何安装 jekyll?

根据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>'

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

答案1

在我的 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 的情况下安装 gems以获取更多信息以及有关将权限设置为用户而不是 root 的帮助。

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

答案2

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

答案3

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

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 安装的其他问题,请关注

从此之后,它对我起了作用。

相关内容