Maë*_*aël 5 ruby rubygems jekyll github-pages
我最近发现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>'
Run Code Online (Sandbox Code Playgroud)
我使用的是macOS Sierra(10.12.6)。
我的计算机上安装了Xcode:
$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
Run Code Online (Sandbox Code Playgroud)
因此,我尝试像第一次那样重新安装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
Run Code Online (Sandbox Code Playgroud)
我创建了一个包含以下内容的Gemfile:
gem 'github-pages'
source 'https://rubygems.org'
Run Code Online (Sandbox Code Playgroud)
并在包含Gemfile的目录中运行:
$ bundle install
Run Code Online (Sandbox Code Playgroud)
在这里,安装不起作用,它说:
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
Run Code Online (Sandbox Code Playgroud)
所以我尝试了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
Run Code Online (Sandbox Code Playgroud)
我注意到我的(2.0.0)目录中有几个jekyll
和github-pages
gems:/Library/Ruby/Gems/2.0.0/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]
...
Run Code Online (Sandbox Code Playgroud)
但是不在我的/Library/Ruby/Gems/2.3.0/gems
(2.3.0)目录中!(似乎是GEM_PATH
运行jekyll
命令时针对的对象)
所以,也许我做了一些改变版本的事情。(我最近安装了(osxfuse
并且sshfs
通过brew),我不知道是否与该问题有关?)
我对Ruby,Gems系统等一无所知。也许解决方案很明显,但是我尝试了几项都没有成功。
(抱歉,它有点长,但是我想尽可能清楚一些!)
小智 5
我也不使用 Ruby,但我在 Mac OS 10.12.6 上遇到了类似的问题,这是我解决的方法。
这很可能是系统 Ruby 环境和 Jekyll 之间存在一些分歧造成的,最简单的修复方法是完全创建一个新环境。
首先,您应该使用rvm来管理您的 ruby 版本,以避免删除系统 Ruby 并破坏您的操作系统。设置 rvm 后,运行
rvm install 2.3.3
Run Code Online (Sandbox Code Playgroud)
安装 Ruby 2.3.3(这是我使用的)。完成后,将其设为系统中的默认 Ruby 版本:
rvm --default use 2.3.3
Run Code Online (Sandbox Code Playgroud)
然后我做了以下事情:
gem install bundler
gem install jekyll
bundle install
Run Code Online (Sandbox Code Playgroud)
Jekyll 又为我工作了。
希望有帮助。
Maë*_*aël -1
我找到了一个解决方案,我认为它非常不干净,但目前有效。
我有两个目录/Library/Ruby/Gems/
:
2.0.0/
gems/
specifications/
...
2.3.0/
gems/
specifications/
...
当我尝试运行 jekyll 时,错误输出表明它检查(以及其他) in /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 版本来说可能已经过时了(?),但它工作得很好。
也许有一种更传统的方法可以让它发挥作用?
归档时间: |
|
查看次数: |
1873 次 |
最近记录: |