惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
The Cloudflare Blog
V
Visual Studio Blog
罗磊的独立博客
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
D
Docker
Last Week in AI
Last Week in AI
B
Blog RSS Feed
C
Check Point Blog
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
博客园 - 聂微东
MongoDB | Blog
MongoDB | Blog
雷峰网
雷峰网

Fooleap's Blog

渴望理想 | Fooleap's Blog 19 年底一些事 | Fooleap's Blog 藉秋风,跑起来 | Fooleap's Blog 一个人去跑步 | Fooleap's Blog 8 月的跑量仿佛是那暑假的作业 | Fooleap's Blog 三伏天跑步那么难受,为何还要跑? | Fooleap's Blog 解决小程序开发“当前系统代理不是安全代理” | Fooleap's Blog 忘却配速的夏日跑步 | Fooleap's Blog 六月天时“带水”跑步更爽 | Fooleap's Blog 出来混迟早要还的 | Fooleap's Blog 跑步不能当饭吃 | Fooleap's Blog 将京东移动端详情页链接转为 PC 端 | Fooleap's Blog 不是热就是雨 | Fooleap's Blog 这半月,我跑了 11 个 520 | Fooleap's Blog 跑完流汗一时爽,一直流汗一直爽 | Fooleap's Blog 初夏夜跑 | Fooleap's Blog Electron 中打开 QQ 临时会话 | Fooleap's Blog 春节期间的培隆角 | Fooleap's Blog 从春天跑到夏天 | Fooleap's Blog 晨雾中奔跑 | Fooleap's Blog 漫步春雨中 | Fooleap's Blog 跑在木棉花下 | Fooleap's Blog 我在春节依然坚持跑步 | Fooleap's Blog 伴随着日出跑步 | Fooleap's Blog 没有最好,只有更好 | Fooleap's Blog 电子气温计 | Fooleap's Blog 渡亭小学的金凤花 | Fooleap's Blog 随心而跑 | Fooleap's Blog 2018 跑步小结 | Fooleap's Blog 在 gVim 中使用“非等宽字体” | Fooleap's Blog
解决 Jemoji 的出错 | Fooleap's Blog
fooleap · 2017-05-09 · via Fooleap's Blog

最近在 macOS 上安装 Jekyll 后,运行总是提示 Jemoji 出错,折腾到今晚才算解决这个小问题,解决方法其实很简单,原因就是 Ruby 的版本问题。

出现问题

前几天入了一台 MBP,虽然是 15 年低配的,性能一般,但对我来说已经够用。

为了本地环境跟 GitHub Pages 一样,本地 Jekyll 我都是直接装上 github-pages 这个 Gem。在 macOS 上也不例外,可是装上运行即出错。我忘记了是什么出错信息,感觉理应是 Ruby 版本的问题,系统预装的 Ruby 版本比较低。

于是,我使用 rvm 安装 Ruby 的最新版本 2.4.0,并设置为默认版本。再次运行 Jekyll,抛出错误如下:

$ jekyll s
Configuration file: /Users/chenxilong/blog/_config.yml
Configuration file: /Users/chenxilong/blog/_config.yml
Dependency Error: Yikes! It looks like you don't have jemoji or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'Unable to activate activesupport-4.2.7, because json-2.0.2 conflicts with json (>= 1.7.7, ~> 1.7)' If you run into trouble, you can find helpful resources at https://jekyllrb.com/help/!
jekyll 3.4.3 | Error:  jemoji

Jemoji 出错,起初就想 Jemoji 也不常用,不用就行。

尝试过程

后来我还是不死心,就尝试解决这个问题。从上面的出错信息可看出与 json 版本有关,看看目前 json 是什么版本,查看 Gem 列表

$ gem list
...
json (default: 2.0.2, 1.8.6)
...

发现 json 这个 Gem 默认使用的是 2.0.2 这个版本,出错信息里面提及的应该是不能用这个版本,我尝试卸载:

$ gem uninstall json -v 2.0.2
ERROR:  While executing gem ... (Gem::InstallError)
    gem "json" cannot be uninstalled because it is a default gem

2.0.2 版本无法卸载,1.8.6 版本卸载却很轻松。

网上搜索,发现同病相怜之人不少,尤其是 Jemoji 项目里面的 Issus[1],居然 Open 状态的前两条就是这个问题,可是我还是没找到解决方法。

我将目光转向 Jekyll 文档,发现眼熟的 json 出现在官方指示创建的 Gemfile 文件中[2],根据提示配置好并安装,再运行。

出错如下:

$ jekyll s
/Users/chenxilong/.rvm/gems/ruby-2.4.0/gems/bundler-1.14.6/lib/bundler/runtime.rb:40:in `block in setup': You have already activated json 2.0.2, but your Gemfile requires json 1.8.6. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
	...

更加确信是 json 的版本问题,我尝试强制卸载掉 2.0.2 版本,失败告终。

解决问题

就在这山穷水尽之时,我突然灵机一动,想明白了,会不会是 Ruby 的版本太新了?以前也有遇到过因 Ruby 版本太新导致运行 Jekyll 出错的问题。

果不其然,使用 rvm 安装上 2.3.1 版本后,切换至默认,再次运行 Jekyll 就没有出错了:joy::joy::joy:

此时,json 的默认版本是 1.8.3

对了,Jemoji 是什么玩意?请查看——Jekyll 的 Emoji 插件

参考资料

本文历史

  • 2017 年 05 月 09 日 完成初稿

最近更新

猜你喜欢