2015-11-19 45 views
0

後我終於設法得到指南針我託管的網絡空間(無根訪問)運行,所以試圖安裝時,新的問題引導,青菜:指南針,引導,青菜和Ruby 1.8.7

$ 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?

+0

'1.8.7'發佈於2008年,直到2012年得到了支持,並自2013年起有[沒有安全更新再](https://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/)。順便說一句,甚至支持'1.9.3' [已在幾個月前結束](https://www.ruby-lang.org/zh/news/2015/02/23/support-for-ruby-1-9-3-結束了/)。如果您的主機不支持較新版本的Ruby,那麼您應該運行並找到另一個主機... – spickermann

+0

這是絕對正確的。但是,我知道我需要一個可以在這些特定環境下工作的解決方案。 –

回答

0

我完全同意,仍然使用Ruby 1.8.7不是一個好主意。我不知道爲什麼我的主機仍然使用這個舊的版本,但這只是一個我無法改變的事實。當然,我可以搬到另一個託管商,但現在我能夠找到一個可行的解決方案。也許別人有同樣的問題。所以這工作對我來說:

gem install bootstrap-sass沒有工作,因爲它需要execjs和最新版本需要Ruby> 1.9.3。 很高興bootstrap-sass不需要最新版本的execjs。因此,解決辦法很簡單:安裝的execjs以前的版本,這是幸福的紅寶石1.8.7:

gem install execjs -v 2.5.0 
gem install bootstrap-sass 
1

當一個gem依賴於一個特定的(或更新的)Ruby版本時,那麼原因通常是該gem依賴或使用舊版本中不存在的功能。

有很多differences between Ruby 1.8.7 and 1.9.3:新的哈希語法,更好的UTF8支持和行爲改變的新方法或方法 - 僅舉幾例。

當一個創建的寶石1.9.3,你想使用與舊版本的時間寶石,恕我直言只在選項:叉寶石,審查源代碼,並重寫與1.8.7不兼容的一切。

您很可能會知道這些寶石依賴於也取決於更新版本的Ruby的其他寶石。做同樣的寶石...