指南针,bootstrap-sass 和 ruby 1.8.7

Compass, bootstrap-sass and ruby 1.8.7

在我最终设法在我的托管网站 space 上获得 Compass 运行(没有 root 访问权限)之后,尝试安装 bootstrap-[=25 时出现了一个新问题=]:

$ compass watch
LoadError on line 31 of /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb: no such file to load -- bootstrap-sass

gem install bootstrap-sass
ERROR:  Error installing bootstrap-sass:
        execjs requires Ruby version >= 1.9.3.

嗯,很明显发生了什么:我需要 Ruby >= 1.9.3,而服务器只提供 1.8.7。我已经检查过:无法在此服务器上使用另一个 ruby 版本。

有没有way/hack/solution可以用bootstrap-sass?

当 gem 依赖于 Ruby 的特定(或更新)版本时,原因通常是 gem 依赖或使用了不存在的功能旧版本。

有很多 differences between Ruby 1.8.7 and 1.9.3:新的散列语法、更好的 UTF8 支持和新方法或改变行为的方法 - 仅举几例。

当为 1.9.3 构建 gem 并且您想将 tat gem 与旧版本一起使用时,只有恕我直言的选项:Fork that gem , 查看源代码并重写与 1.8.7.

不兼容的所有内容

您很可能会了解到,此类 gem 依赖于其他 gem,而这些 gem 也依赖于 Ruby 的更新版本。对 gems...

做同样的事情

我完全同意仍然使用 Ruby 1.8.7 不是一个好主意。我不确定为什么我的托管商仍然使用这么旧的版本,但这只是我无法改变的事实。当然,我可以转移到另一个托管商,但现在我能够找到一个可行的解决方案。也许其他人也有同样的问题。所以这对我有用:

gem install bootstrap-sass 不起作用,因为它需要 execjs 并且最新版本需要 Ruby > 1.9.3。 很高兴 bootstrap-sass 不需要最新版本的 execjs。所以解决方案很简单:安装一个对 ruby 1.8.7:

满意的 execjs 的早期版本
gem install execjs -v 2.5.0
gem install bootstrap-sass