【问题标题】:Compass, bootstrap-sass and ruby 1.8.7指南针、bootstrap-sass 和 ruby​​ 1.8.7
【发布时间】:2015-11-19 10:28:38
【问题描述】:

在我终于设法让 Compass 在我的托管网络空间上运行(无 root 访问权限)后,尝试安装 bootstrap-sass 时出现了一个新问题:

$ 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​​ 版本。

有没有使用 bootstrap-sass 的方法/hack/解决方案?

【问题讨论】:

  • 1.8.7 于 2008 年发布,支持到 2012 年,自 2013 年以来有 no security updates anymore。顺便说一句,甚至支持1.9.3 has ended months ago。如果您的主机不支持较新版本的 Ruby,那么您应该运行并找到另一个主机...
  • 这完全正确。但是我知道我需要一个可以在这些特定情况下工作的解决方案。

标签: ruby twitter-bootstrap-3 sass compass-sass


【解决方案1】:

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

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

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

您很可能会了解到此类 gem 依赖于其他 gem,而这些 gem 也依赖于 Ruby 的最新版本。对那些宝石做同样的事情......

【讨论】:

    【解决方案2】:

    我完全同意仍然使用 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
    

    【讨论】:

      猜你喜欢
      • 2012-10-18
      • 1970-01-01
      • 2011-05-05
      • 2013-04-12
      • 2015-11-19
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 2013-03-17
      相关资源
      最近更新 更多