RVM Sass Compass与localhost站点的问题

时间:2014-02-18 22:00:07

标签: sass rvm compass-sass

我已经花了5个多小时试图解决这个问题,觉得因为我之前没有这样做,所以我现在应该求助...

我有一个我与Sass / Compass一起继承的网站。我把它设置在我的localhost上,它适用于该网站。

我有一个我想要使用它的第二个localhost站点。所以我去了终端的主题文件夹 - (/ 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。这是我的宝石列表。

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时,我得到了相同的结果。

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

5 个答案:

答案 0 :(得分:36)

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

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

答案 1 :(得分:1)

长话短说。问题解决了。

由于我必须快速地并且在逆向工程方向上解决这个问题,以及帮助基础知识和堆栈溢出帮助解决一些细节的网站,希望这有助于一些非开发人员。

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

其次,Sass和Compass的版本需要协同工作并且存在一些冲突。这并不是网站销售使用和设置的简单方法。

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

经过长短之后,这里有一些网站帮助我采取了措施:

RVM - http://rvm.io/
体面的啧啧 - 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.

这些将帮助您解决终端问题并找出您所拥有的内容并将其丢失。

我收到的错误很好但不适合菜鸟!所以,试着让第一线更严肃。什么东西都缺少了,至少是上面的东西。

希望能帮助像我这样的人完成它。

答案 2 :(得分:1)

这有点与@ user24793对自己的回答有关,但我刚刚发生这个完全相同的问题是出于几天前工作正常的本地开发环境的绝对没有问题,除了我的问题是用sass而不是指南针。我也在使用RVM,这里的其他答案也没有帮助我。

在我的情况下发生的事情是,当我的主要版本的ruby是2.1.5并且我的宝石路径位于~/.rvm/gems/ruby-2.1.5时,在我的主ruby的子目录中安装了一个二级版本的ruby在~/.rvm/rubies/ruby-2.1.5/lib/ruby/gems/2.1.0中,可以预见的是没有sass。我不确定这是什么时候发生的,因为它上周工作正常,而且似乎只影响了这个项目。

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

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

由于我已经因为这个问题而暂停了这个项目,所以我没有一个gemrc文件,我找不到任何实际工作的东西,而且它似乎就是这样。最终只是这个项目添加的错误安装的ruby版本,我不得不采取严厉的措施,将次要红宝石的宝石路径强制到正确的宝石路径。

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

无论如何,我确定还有另一种方法,你可以进入替代红宝石的cli并改变宝石路径,但我无法找到一个和我需要这个固定的尽快。如果有人能告诉我这是怎么可能的话,我会非常高兴,但除此之外你必须找到你在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 :(得分:0)

我刚刚将ruby从2.1.5降级到2.0.0,这解决了我的问题。我必须保留较旧的sass和指南针版本,因为我的项目使用它们,因此升级对我来说不是解决方案。

答案 4 :(得分:-1)

指南针页面应该有用 http://compass-style.org/install/

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

$ compass create <myproject>

您将获得一个简单的文件夹结构和一个config.rb文件