昨天玩octopress时出了问题,没有动任何东西的情况下,系统默认的ruby版本变成了1.8,导致本地的octopress既不能提交也不能本地预览。后来分别卸载了ruby1.8和ruby1.9,启用了新的PPA之后,重新安装ruby的两个版本,并通过update-alternatives把ruby版本默认设置成1.9。
可惜octopress还是无法启动,出现了http://stackoverflow.com/questions/13778858/octopress-errors-rake-preview-watch-or-generate和http://stackoverflow.com/questions/16517144/why-the-pygments-code-rb-plugin-is-breaking中提到的问题。百思不得其解啊,为什么ruby版本明明是1.9,调用的gem库却是1.8下的呢?
后来想到脚本文件在开头都会有#!/usr/bin/env ruby
之类的注释,用来标注脚本文件的解释器,那么这个问题的原因是不是就是因为某些应该使用ruby1.9进行解释的文件被写死成ruby1.8解释了呢?那么应该如何找到这些文件呢?
可以用find来查找,下面是适合的shell命令:
1
|
|
上面这条命令的含义:
1 2 3 4 5 6 7 |
|
如此一来就能找到所有还默认以ruby1.8解释的文件了,然后修改一下就行。现在我的octopress又活过来了。
Have a nice day!