【问题标题】:RVM Sass Compass issue with localhost sites本地主机站点的 RVM Sass Compass 问题
【发布时间】:2014-03-18 22:49:06
【问题描述】:

我已经花了 5 个多小时试图解决这个问题,并且觉得既然我还没有这样做,我现在应该寻求帮助......

我有一个使用 Sass/Compass 继承的网站。我在我的本地主机上设置了它,它适用于该站点。

我有第二个本地主机站点,我想在上面使用它。所以我去了终端中的主题文件夹 - (/sites/all/theme/newtheme/) 我试图开始用指南针观看一个 sass 文件夹并不断收到这些错误......

/Library/Ruby/Site/1.8/rubygems/dependency.rb:298:in `to_specs': Could not find 'compass'     
(>= 0) among 12 total gem(s) (Gem::LoadError)
from /Library/Ruby/Site/1.8/rubygems/dependency.rb:309:in `to_spec'
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_gem.rb:53:in `gem'
from /usr/bin/compass:18

我正在使用 rvm rubies 1.9.3 并且已安装 sass/compass。 我已经搜索并测试了许多想法,但我不知道该怎么做。我真的很想进入 sass,但我失去了进入它的时机,需要解决这个问题。我希望您能提供任何帮助,并且会研究和测试任何东西。

更新: 我正在使用 rvm,我正在使用 ruby​​-1.9.3-p484。这是我的 gem 列表。

LOCAL GEMS 
bigdecimal (1.1.0)
bundler (1.5.3)
bundler-unload (1.0.2)
celluloid (0.15.2)
chunky_png (1.3.0)
ompass (0.12.2)
executable-hooks (1.3.1)
ffi (1.9.3)
fssm (0.2.10)
gem-wrappers (1.2.4)
io-console (0.3)
json (1.5.5)
listen (2.4.1)
minitest (2.5.1)
rake (0.9.2.2)
rb-fsevent (0.9.4)
rb-inotify (0.9.3)
rdoc (3.9.5)
rubygems-bundler (1.4.2)
rvm (1.11.3.9)
sass (3.3.0.rc.4, 3.2.14, 3.2.13)
timers (1.1.0)

当我运行 $compass -v 或 $compass watch 时出现此错误。

ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:135:in `require': cannot load such file -- sass/script/node (LoadError)
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:144:in `require'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches/browser_support.rb:1:in `<top (required)>'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:2:in `block in <top (required)>'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `each'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass/sass_extensions/monkey_patches.rb:1:in `<top (required)>'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass/sass_extensions.rb:9:in `<top (required)>'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass.rb:5:in `block in <top (required)>'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass.rb:4:in `each'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/lib/compass.rb:4:in `<top (required)>'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
rubies/ruby-1.9.3-p484/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/bin/compass:20:in `block in <top (required)>'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/bin/compass:8:in `fallback_load_path'
gems/ruby-1.9.3-p484@global/gems/compass-0.12.2/bin/compass:19:in `<top (required)>'
rubies/ruby-1.9.3-p484/bin/compass:23:in `load'
rubies/ruby-1.9.3-p484/bin/compass:23:in `<main>'
gems/ruby-1.9.3-p484@global/bin/ruby_executable_hooks:15:in `eval'
gems/ruby-1.9.3-p484@global/bin/ruby_executable_hooks:15:in `<main>'

我认为一件事是指南针的路径。但是,当我尝试使用 ruby​​-1.9.3-p484@global 时,我得到了相同的结果。

我一直在搜索、测试、安装和卸载,试图找出我缺少的一步。请分享任何想法。谢谢

【问题讨论】:

  • 不确定 Sass 和/或 Compass 是否可以在 Ruby 1.8 上运行。事实上,即将推出的 Compass 版本至少需要 1.9.3。
  • @cimmanon 我通过并尝试更新所有内容并再次测试。

标签: sass rvm compass-sass


【解决方案1】:

您需要卸载 sass 并使用以下命令重新安装:

gem uninstall sass
gem install sass --no-ri --no-rdoc
gem install compass --no-ri --no-rdoc 

【讨论】:

  • 我认为这是最简单的方法。
【解决方案2】:

这有点符合@user24793 对自己的回答,但是对于几天前运行良好的本地开发环境来说,我只是在绝对没有地方发生了同样的问题,除了我的问题是 sass 而不是罗盘。我也在使用 RVM,这里的其他答案也没有帮助我。

在我的情况下发生的情况是,当我的 ruby​​ 主版本是 2.1.5 并且我的 gem 路径位于 ~/.rvm/gems/ruby-2.1.5 时,在我的主 ruby​​ 的子目录中安装了一个辅助版本的 ruby​​,它正在查看 @ 987654323@ 可以预见的是其中没有 sass。我不确定这是什么时候发生的,因为它上周运行良好,而且似乎只影响了这个项目。

我不是 Ruby 专家,所以经过大量搜索后,我能够找到其他类似但有其他答案的线程,其中一个线程是 Rails: Could not find railties。巧合地对我不起作用但似乎很有希望的那个亮点是:

  • 如果您之前使用 sudo 安装,请尝试不使用 sudo 进行安装
  • rvm reinstall X.X.X X 是您使用的任何版本,然后是 gem install {gem}。目前我有很多项目,所以我无法亲自尝试这个,但在我完成我的活跃项目后,我可能会试一试。
  • rvm implode 但是这将迫使您完全重新安装 rvm。同样,目前要尝试的项目太多。

由于我在过去 3 天里已经停止了这个项目,因此我没有 gemrc 文件,我找不到任何实际工作的文件,而且看起来它最终只是一个错误安装的版本由于这个项目添加了 ruby​​,我不得不采取严厉措施,将辅助 ruby​​ 的 gem 路径强制到正确的 gem 路径。

我不建议将其作为解决问题的可靠方法,但如果您因此在项目中被阻止,请不要使用 gemrc 文件或任何更改 ruby​​ 版本路径的方法安装在 ruby​​ 版本中,这有点像 hack,但我强烈建议您在完成项目后尝试重新安装 rvm/ruby 并进行更多研究。

无论如何,我相信还有另一种方法可以解决这个问题,您可以进入替代 ruby​​ 的 cli 并更改 gem 路径,但我找不到,我需要尽快修复。如果有人能让我知道这是怎么可能的,我会非常高兴,但否则你必须找到你的 defaults.rb 文件,我在以下位置找到该文件:

~/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/defaults.rb

第 75 行定义了用户主目录 gem 路径,第 93 行定义了默认 gem 路径。用户主目录 gem 路径甚至不是现有文件夹,因此我将其从以下位置交换:

def self.user_dir
  parts = [Gem.user_home, '.gem', ruby_engine]
  parts << RbConfig::CONFIG['ruby_version'] unless RbConfig::CONFIG['ruby_version'].empty?
  File.join parts
end

收件人:

def self.user_dir
  parts = [Gem.user_home, '.rvm/gems/ruby-2.1.5']
  File.join parts
end

这立即解决了我的问题;但同样,我的情况非常罕见,我只建议您在别无选择并且正在处理没有可供您使用的 gemrc 文件或命令行的 ruby​​ 二级版本时这样做。

【讨论】:

    【解决方案3】:

    长话短说。问题解决了。

    由于我必须以逆向工程的方向快速解决这一切,以及帮助提供基础知识的网站和帮助提供一些细节的 stackoverflow,希望这对一些非开发人员有所帮助。

    首先,确保您了解 RVM 允许使用多个版本的 Ruby,即使 Ruby 1.8 可能已经在您的计算机上,它也很旧,您应该下载更新的版本。

    其次,有一些版本的 Sass 和 Compass 需要协同工作并且有些冲突。这与宣传它的易用性和设置的网站无关。

    最后,在为本地主机上的多个站点设置它时。每个站点都略有不同。特别是如果您使用 Drupal 和不同的主题,而不是硬编码的东西。

    经过长篇大论,以下是一些提供帮助的网站和我采取的步骤:

    RVM - http://rvm.io/
    体面的 Tut - http://www.rosehosting.com/blog/install-ruby-sass-and-compass/

    先学习一些命令:

    ruby -v
    rvm list
    rvm gemdir
    gem list
    rvm all do gem list # (this is - I think - getting into gem sets. Something I need to read up on.)
    gem install gem-name -v version #
    sass -v
    compass -v
    compass watch # after everything is set up
    bundle exec compass watch # to initial the watch of that folder.
    bundle check
    bundle install # installs everything you need. I ran into a problem with the http_parser and had to install singularly but then ran the bundle install and the rest went fine.
    

    这些将帮助您使用终端并弄清楚您拥有什么以及缺少什么。

    我收到的错误是好的,但不是一个菜鸟!所以,试着更认真地对待第一行。里面的东西都缺少了,至少是上面的。

    希望能帮助像我这样的人度过难关。

    【讨论】:

      【解决方案4】:

      我刚刚将 ruby​​ 从 2.1.5 降级到 2.0.0,这解决了我的问题。我必须继续使用旧的 sass 和 compass 版本,因为我的项目使用它们,所以升级对我来说不是解决方案。

      【讨论】:

        【解决方案5】:

        指南针页面实际上应该有所帮助 http://compass-style.org/install/

        安装罗盘是不够的,如果你开始一个新项目,你必须通过运行以下命令来启动一个罗盘项目

        $ compass create &lt;myproject&gt;

        你会得到一个简单的文件夹结构和一个 config.rb 文件

        【讨论】:

        • 问题作者无权访问$ compass &lt;cmd&gt;
        猜你喜欢
        • 1970-01-01
        • 2012-06-29
        • 1970-01-01
        • 2012-07-07
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        相关资源
        最近更新 更多