【问题标题】:Why is my jekyll command not working anymore?为什么我的 jekyll 命令不再起作用?
【发布时间】:2018-11-12 21:31:42
【问题描述】:

我最近发现jekyll 命令在我的电脑上不再工作了,在完美使用了几个月之后。

每当我尝试运行 jekyll 命令时,它都会显示:

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs':
    Could not find 'jekyll' (>= 0) among 34 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/Mael/.gem/ruby/2.3.0:/Library/Ruby/Gems/2.3.0:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0',
    execute `gem env` for more information
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/dependency.rb:328:in `to_spec'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
    from /usr/local/bin/jekyll:22:in `<main>'

我使用的是 macOS Sierra (10.12.6)。

Xcode 已安装

我的电脑上安装了 Xcode:

$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

重新安装 Jekyll

检查 ruby​​ 版本并(重新)安装捆绑程序

所以我尝试像第一次一样重新安装 Jekyll:

$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin16]

$ sudo gem install bundler
Successfully installed bundler-1.17.1
Parsing documentation for bundler-1.17.1
Done installing documentation for bundler after 4 seconds
1 gem installed

创建一个 Gemfile

我创建了一个 Gemfile,其中包含:

gem 'github-pages'
source 'https://rubygems.org'

捆绑安装(问题来了)

然后在包含 Gemfile 的目录中运行:

$ bundle install

这里,安装不起作用,它说:

An error occurred while installing commonmarker (0.17.13), and Bundler cannot continue.
Make sure that `gem install commonmarker -v '0.17.13' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  github-pages was resolved to 192, which depends on
    jekyll-commonmark-ghpages was resolved to 0.1.5, which depends on
      jekyll-commonmark was resolved to 1.2.0, which depends on
        commonmarker

所以我尝试了gem install commonmarker -v '0.17.13' --source 'https://rubygems.org/' 命令,它说:

Building native extensions.  This could take a while...
ERROR:  Error installing commonmarker:
        ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13/ext/commonmarker
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20181112-6105-u9aca2.rb extconf.rb
creating Makefile

current directory: /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13/ext/commonmarker
make "DESTDIR=" clean

current directory: /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13/ext/commonmarker
make "DESTDIR="
make: *** No rule to make target `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/universal-darwin16/ruby/config.h', needed by `arena.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-16/2.3.0/commonmarker-0.17.13/gem_make.out

我注意到我的/Library/Ruby/Gems/2.0.0/gems (2.0.0) 目录中有几个jekyllgithub-pages gems

github-pages-146
github-pages-health-check-1.3.5
...
jekyll-3.4.5
jekyll-avatar-0.4.2
jekyll-coffeescript-1.0.1
[and several other jekyll directories]
...

但不在我的/Library/Ruby/Gems/2.3.0/gems (2.3.0) 目录中! (运行jekyll 命令时似乎被GEM_PATH 锁定的那个)

所以,也许我做了一些改变版本的事情。 (我最近安装了osxfusesshfs(通过brew),不知道是不是和这个问题有关?)

我对 Ruby、Gems 系统等一无所知。也许解决方案很明显,但我尝试了几件事都没有成功。

(对不起,有点长,但我想尽可能清楚!)

【问题讨论】:

    标签: ruby rubygems jekyll github-pages


    【解决方案1】:

    我也不使用 Ruby,但我在 Mac OS 10.12.6 上遇到了类似的问题,我是这样解决的。

    这可能是由于系统 Ruby 环境和 Jekyll 之间存在一些分歧,最简单的解决方法是完全创建一个新环境。

    首先您应该使用rvm 来管理您的Ruby 版本,以避免删除系统Ruby 并破坏您的操作系统。设置 rvm 后,运行

    rvm install 2.3.3
    

    安装 Ruby 2.3.3(这是我使用的)。完成后,将其设为系统中的默认 Ruby 版本:

    rvm --default use 2.3.3
    

    然后我做了以下事情:

    gem install bundler
    gem install jekyll
    bundle install
    

    Jekyll 又为我工作了。

    希望对您有所帮助。

    【讨论】:

    • 我遇到了同样的问题,并在 Ruby 2.4.0 中使用了这个答案并且运行良好。谢谢!
    • 是的,我在 OSX Catalina 上,无法安装 2.3.3,但 2.4.0 可以工作
    【解决方案2】:

    我不是 mac 用户,对 ruby​​ 不是很熟悉,但是当我看到 ERROR: Failed to build gem native extension 时,通常与没有包含 devkit 的 ruby​​ 版本有关。

    据我了解,您可以使用 devkit 获得 ruby​​,也可以不使用 devkit 获得 ruby​​,如果没有 devkit,则无法构建所需的某些 gem。在 PC 上需要 devkit 才能安装所有 jekyll 依赖项。

    【讨论】:

    • 感谢您的回答!但据我了解,Ruby Devkit 仅适用于 Windows 系统
    【解决方案3】:

    我在使用 jeklly 捆绑新网站时遇到了同样的问题。

    试试这个:

    xcode-select --install
    gem install bundler jekyll
    

    这就是我不需要 sudo 来安装 bundler jekyll 的方式。

    Install the Command Line Tools:
      xcode-select --install
    
    abcLabdeMacBook-Air:zeppelin-master abclab$ xcode-select --install
    xcode-select: note: install requested for command line developer tools
    abcLabdeMacBook-Air:zeppelin-master abclab$ gem install bundler jekyll
    ERROR:  While executing gem ... (Gem::FilePermissionError)
        You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
    abcLabdeMacBook-Air:zeppelin-master abclab$ bundle install
    Ignoring eventmachine-1.2.7 because its extensions are not built.  Try: gem pristine eventmachine --version 1.2.7
    Ignoring ffi-1.9.25 because its extensions are not built.  Try: gem pristine ffi --version 1.9.25
    Ignoring http_parser.rb-0.6.0 because its extensions are not built.  Try: gem pristine http_parser.rb --version 0.6.0
    Fetching gem metadata from http://rubygems.org/.................
    Fetching gem metadata from http://rubygems.org/..
    Resolving dependencies.....
    Using concurrent-ruby 1.1.4
    Following files may not be writable, so sudo is needed:
      /Library/Ruby/Gems/2.3.0
      /Library/Ruby/Gems/2.3.0/build_info
      /Library/Ruby/Gems/2.3.0/cache
      /Library/Ruby/Gems/2.3.0/doc
      /Library/Ruby/Gems/2.3.0/extensions
      /Library/Ruby/Gems/2.3.0/gems
      /Library/Ruby/Gems/2.3.0/specifications
    Using i18n 0.9.5
    Using minitest 5.11.3
    Using thread_safe 0.3.6
    Using tzinfo 1.2.5
    Using activesupport 4.2.10
    Using public_suffix 2.0.5
    Using addressable 2.5.2
    Using execjs 2.7.0
    Using autoprefixer-rails 9.4.7
    Using bundler 2.0.1
    Using chunky_png 1.3.11
    Using coffee-script-source 1.11.1
    Using coffee-script 2.4.1
    Using colorator 1.1.0
    Using ruby-enum 0.7.2
    Fetching commonmarker 0.17.13
    
    
    Your user account isn't allowed to install to the system RubyGems.
      You can cancel this installation and run:
    
          bundle install --path vendor/bundle
    
      to install the gems into ./vendor/bundle/, or you can enter your password
      and install the bundled gems to RubyGems using sudo.
    
      Password: 
    
    
    Your user account isn't allowed to install to the system RubyGems.
      You can cancel this installation and run:
    
          bundle install --path vendor/bundle
    
      to install the gems into ./vendor/bundle/, or you can enter your password
      and install the bundled gems to RubyGems using sudo.
    
      Password: 
    Installing commonmarker 0.17.13 with native extensions
    Fetching multi_json 1.13.1
    Installing multi_json 1.13.1
    Fetching sass 3.4.25
    Installing sass 3.4.25
    Fetching compass-core 1.0.3
    Installing compass-core 1.0.3
    Fetching compass-import-once 1.0.5
    Installing compass-import-once 1.0.5
    Using rb-fsevent 0.10.3
    Fetching ffi 1.10.0
    Installing ffi 1.10.0 with native extensions
    Fetching rb-inotify 0.10.0
    Installing rb-inotify 0.10.0
    Fetching compass 1.0.3
    Installing compass 1.0.3
    Fetching dnsruby 1.61.2
    Installing dnsruby 1.61.2
    Fetching eventmachine 1.2.7
    Installing eventmachine 1.2.7 with native extensions
    Fetching http_parser.rb 0.6.0
    Installing http_parser.rb 0.6.0 with native extensions
    Using em-websocket 0.5.1
    Fetching ethon 0.12.0
    Installing ethon 0.12.0
    Fetching multipart-post 2.0.0
    Installing multipart-post 2.0.0
    Fetching faraday 0.15.4
    Installing faraday 0.15.4
    Using forwardable-extended 2.6.0
    Fetching gemoji 3.0.0
    Installing gemoji 3.0.0
    Fetching sawyer 0.8.1
    Installing sawyer 0.8.1
    Fetching octokit 4.13.0
    Installing octokit 4.13.0
    Fetching typhoeus 1.3.1
    Installing typhoeus 1.3.1
    Fetching github-pages-health-check 1.8.1
    Installing github-pages-health-check 1.8.1
    Using jekyll-sass-converter 1.5.2
    Using ruby_dep 1.5.0
    Using listen 3.1.5
    Fetching jekyll-watch 2.1.2
    Installing jekyll-watch 2.1.2
    Using kramdown 1.17.0
    Using liquid 4.0.0
    Using mercenary 0.3.6
    Fetching pathutil 0.16.2
    Installing pathutil 0.16.2
    Fetching rouge 2.2.1
    Installing rouge 2.2.1
    Using safe_yaml 1.0.4
    Fetching jekyll 3.7.4
    Installing jekyll 3.7.4
    Fetching jekyll-avatar 0.6.0
    Installing jekyll-avatar 0.6.0
    Fetching jekyll-coffeescript 1.1.1
    Installing jekyll-coffeescript 1.1.1
    Fetching jekyll-commonmark 1.2.0
    Installing jekyll-commonmark 1.2.0
    Fetching jekyll-commonmark-ghpages 0.1.5
    Installing jekyll-commonmark-ghpages 0.1.5
    Fetching jekyll-default-layout 0.1.4
    Installing jekyll-default-layout 0.1.4
    Fetching jekyll-feed 0.11.0
    Installing jekyll-feed 0.11.0
    Fetching jekyll-gist 1.5.0
    Installing jekyll-gist 1.5.0
    Fetching jekyll-github-metadata 2.9.4
    Installing jekyll-github-metadata 2.9.4
    Fetching mini_portile2 2.4.0
    Installing mini_portile2 2.4.0
    Fetching nokogiri 1.10.1
    Installing nokogiri 1.10.1 with native extensions
    Fetching html-pipeline 2.10.0
    Installing html-pipeline 2.10.0
    Fetching jekyll-mentions 1.4.1
    Installing jekyll-mentions 1.4.1
    Fetching jekyll-optional-front-matter 0.3.0
    Installing jekyll-optional-front-matter 0.3.0
    Fetching jekyll-paginate 1.1.0
    Installing jekyll-paginate 1.1.0
    Fetching jekyll-readme-index 0.2.0
    Installing jekyll-readme-index 0.2.0
    Fetching jekyll-redirect-from 0.14.0
    Installing jekyll-redirect-from 0.14.0
    Fetching jekyll-relative-links 0.5.3
    Installing jekyll-relative-links 0.5.3
    Fetching rubyzip 1.2.2
    Installing rubyzip 1.2.2
    Fetching jekyll-remote-theme 0.3.1
    Installing jekyll-remote-theme 0.3.1
    Using jekyll-seo-tag 2.5.0
    Fetching jekyll-sitemap 1.2.0
    Installing jekyll-sitemap 1.2.0
    Fetching jekyll-swiss 0.4.0
    Installing jekyll-swiss 0.4.0
    Fetching jekyll-theme-architect 0.1.1
    Installing jekyll-theme-architect 0.1.1
    Fetching jekyll-theme-cayman 0.1.1
    Installing jekyll-theme-cayman 0.1.1
    Fetching jekyll-theme-dinky 0.1.1
    Installing jekyll-theme-dinky 0.1.1
    Fetching jekyll-theme-hacker 0.1.1
    Installing jekyll-theme-hacker 0.1.1
    Fetching jekyll-theme-leap-day 0.1.1
    Installing jekyll-theme-leap-day 0.1.1
    Fetching jekyll-theme-merlot 0.1.1
    Installing jekyll-theme-merlot 0.1.1
    Fetching jekyll-theme-midnight 0.1.1
    Installing jekyll-theme-midnight 0.1.1
    Fetching jekyll-theme-minimal 0.1.1
    Installing jekyll-theme-minimal 0.1.1
    Fetching jekyll-theme-modernist 0.1.1
    Installing jekyll-theme-modernist 0.1.1
    Fetching jekyll-theme-primer 0.5.3
    Installing jekyll-theme-primer 0.5.3
    Fetching jekyll-theme-slate 0.1.1
    Installing jekyll-theme-slate 0.1.1
    Fetching jekyll-theme-tactile 0.1.1
    Installing jekyll-theme-tactile 0.1.1
    Fetching jekyll-theme-time-machine 0.1.1
    Installing jekyll-theme-time-machine 0.1.1
    Fetching jekyll-titles-from-headings 0.5.1
    Installing jekyll-titles-from-headings 0.5.1
    Fetching jemoji 0.10.1
    Installing jemoji 0.10.1
    Using minima 2.5.0
    Fetching unicode-display_width 1.4.1
    Installing unicode-display_width 1.4.1
    Fetching terminal-table 1.8.0
    Installing terminal-table 1.8.0
    Fetching github-pages 193
    Installing github-pages 193
    Fetching sass-media_query_combiner 0.0.7
    Installing sass-media_query_combiner 0.0.7
    Bundle complete! 4 Gemfile dependencies, 91 gems now installed.
    Use `bundle info [gemname]` to see where a bundled gem is installed.
    Post-install message from compass:
        Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
    Post-install message from dnsruby:
    Installing dnsruby...
      For issues and source code: https://github.com/alexdalitz/dnsruby
      For general discussion (please tell us how you use dnsruby): https://groups.google.com/forum/#!forum/dnsruby
    Post-install message from html-pipeline:
    -------------------------------------------------
    Thank you for installing html-pipeline!
    You must bundle Filter gem dependencies.
    See html-pipeline README.md for more details.
    https://github.com/jch/html-pipeline#dependencies
    -------------------------------------------------
    

    【讨论】:

    • 我遇到的问题似乎与 Ruby 使用的版本或我的 jekyll 命令有关,正如我在 accepted answer 中所说的那样。你是说你可以用gem install bundler jekyll解决你的问题吗?
    【解决方案4】:

    也可能是你错误地安装了 Jekyll 的多个依赖项。那样的话

    $ /usr/bin/jekyll serve
    

    可能会起作用,或者删除一个或多个 Jekyll 安装。

    查找

    $ whereis jekyll

    然后保留上面的一个并删除其余的安装。

    【讨论】:

      【解决方案5】:

      我找到了一个解决方案,我认为它非常不干净,但现在可以使用。

      我在/Library/Ruby/Gems/ 中有两个目录:

      • 2.0.0/
        • gems/
        • specifications/
        • ...
      • 2.3.0/
        • gems/
        • specifications/
        • ...

      当我尝试运行 jekyll 时,错误输出表明它检查(以及其他)/Library/Ruby/Gems/2.3.0,但正如我在问题中所说,那里没有任何与 jekyll 相关的文件。

      所以,我手动复制了 /Library/Ruby/Gems/2.0.0/gems/Library/Ruby/Gems/2.0.0/specifications 中的所有文件,并将它们分别粘贴到 /Library/Ruby/Gems/2.3.0/gems/Library/Ruby/Gems/2.3.0/specifications 中。

      我猜我复制的文件对于我拥有的 Ruby 版本可能已经过时(?),但它工作得很好。

      也许有更传统的方法可以让它发挥作用?

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-23
        相关资源
        最近更新 更多