簡體   English   中英

首次安裝滑軌,幫助獲得寶石/耙子

[英]First time rails install, help with gems/rake

我剛做過紅寶石企業版,安裝了一些寶石,現在我正在嘗試做一個
'sudo ./rake gems:install'並得到:

耙子流產了!
找不到Rakefile

錯誤。 首先,我應該從哪個目錄執行此操作?

這是我遵循的步驟:
從下載紅寶石企業http://www.rubyenterpriseedition.com/download.html wget的http://rubyforge.org/frs/download.php/68719/ruby-enterprise-1.8.7-2010.01.tar.gz

./ruby-enterprise-XXX/installer

/opt/ruby-enterprise-1.8.7-2010.01/bin/gem安裝mysql

ln -s /opt/ruby-enterprise-1.8.7-2010.01/bin/gem / usr / bin / gem
ln -s /opt/ruby-enterprise-1.8.7-2010.01/bin/rake / usr / bin / rake

我已經安裝了幾顆寶石

我已經找到了適當的目錄(我認為),並且仍然出現錯誤。 這是帶有--trace的rake的副本:

dan@dev:~/myApp.com-ror$ rake --trace gems:install
(in /home/dan/myApp.com-ror)                      
** Invoke gems:install (first_time)                  
** Invoke gems:base (first_time)                     
** Execute gems:base                                 
** Invoke environment (first_time)                   
** Execute environment                               
rake aborted!                                        
No such file or directory - /home/dan/myApp.com-ror/config/database.yml                                                    
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:902:in     `read'                                  
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:902:in  `database_configuration'                
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:437:in `initialize_database'                   
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:141:in `process'                               
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `send'                                  
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:113:in `run'                                   
/home/dan/songness.com-ror/config/environment.rb:14            
/home/dan/Languages/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in  `gem_original_require'                       
/home/dan/Languages/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'                                    
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'       
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in'                                                             
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'       
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/tasks/misc.rake:4                                             
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'                                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'                                       
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'                                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'                                       
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'                        
/home/dan/Languages/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'                                                         
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'                        
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'                                        
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/tasks/gems.rake:17                                            
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'                                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'                                       
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'                                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'                                       
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'                        
/home/dan/Languages/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'                                                         
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'                        
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites'                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each'                                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites'                          
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain'                         
/home/dan/Languages/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'                                                         
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'                        
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'                                        
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'                                  
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'                                    
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/dan/Languages/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

而database.yml應該是什么樣?

rake gems:install是為您的應用安裝gems。 您必須在應用程序的根目錄中運行它。 要在機器上安裝gem,請使用gem install

如果您沒有正確設置路徑,則需要從rails目錄運行它。

好吧,我看過文檔

$ / opt / ruby​​-enterprise-XXX / bin / gem安裝導軌

在您的情況下意味着:

gem install rails

當您提到“ sudo ./rake gems:install”時,您想達到什么目的?

安裝滑軌后,請執行以下操作:

rails myproject

然后你去。

假設您沒有使用捆綁器或不能使用捆綁器(由於您的ruby / rails版本)...


在下面,我避免使用sudo前綴,因為RoR不再是Linux用戶的唯一境界。 使用gitbash作為我們在本地開發環境中管理Rails應用程序的低級控制台的Windows用戶將不需要sudo ,也不需要在我們的開發環境中工作。 FTR,如果您不知道sudo是什么,它表示“超級用戶”,它是unix的剩余物,因此是Linux本地語言的固有部分。 如果您需要在linux中執行需要特權的操作,則可能需要使用sudo來獲得這些權利(或者您需要為自己的特定操作分配直接的超級用戶狀態。...有時sudo是不夠的! )。 如果您需要Windows特權,則您可能已經以管理權限登錄了Windows。無論如何,如果您是Ruby on Rails的新手,並且對該術語感到困惑,請暫時忽略它。 您不需要它,盡管當您開始與通常在Linux框架中運行的托管服務進行交互時,您可能會在某個時候使用它。


無論如何,回到手頭的問題上...

gem install(某些gem名稱) (例如:gem install tinyMCE)將副本安裝到本地Ruby開發環境中。 也就是說,可以將其視為安裝庫組件,以便稍后調用。 通常,它本身不會對我們的應用程序執行任何操作。

但是,如果您想使用gem(第二個來源增強包,例如:tinyMCE,流行的富文本編輯器增強),則需要將gem直接安裝到您的應用程序中,或者換句話說,您需要綁定將可移植副本安裝到應用程序后,將其安裝到Rails開發環境中,無論是修改現有應用程序還是創建新應用程序。

如果您仍然感到困惑,請假設我這樣說

您創建一個類似“ My_special_blog”的應用程序。 Rails My_special_blog動作創建了基本的管道,但是它不會編寫內容,也不會自動安裝tinyMCE,因此即使您可能已經將其安裝到開發系統(使用gem install tinyMCE )也可以使用它,即,您的RUBY安裝。 寶石是添加功能的簡便方法,例如上述的富文本編輯器

這正是rake:gems安裝的作用。 它使用應用程序的environment.rb文件(位於My_special_blog / config子目錄 btw中)來確定應用程序需要使用哪些gem,然后將它們安裝到應用程序中(從字面上看,位於本地My_special_blog / vendors目錄的子目錄中)。開發環境。

重要的是,當您運行rake:gems install時,需要從應用程序的“根目錄”(即My_special_blog目錄)中執行此操作。 不是ruby目錄,不是My_special_blog / config,只有My_special_blog(作為示例應用程序名稱)

作為領導者,您需要執行一些谷歌搜索工作……可以在environment.rb的config.gem語句中指定版本和源位置,該語句定義您將要使用的gem。

希望這能幫助像我這樣的人經常被簡潔的答案所困擾,這些簡短的答案假定一個人已經足夠熟練,以至於不會首先提出這個問題...


如果您查看environment.rb,它應該有一個這樣的條目

Rails :: Initializer.run做| config |

結束

在您放置gem config語句的初始化程序內部。 例如,假設您要添加凈空寶石,並且需要v0.5.3,並且該寶石位於gems.github.com上,並且還希望mislav-paginate,語法可能看起來像這樣:

Rails::Initializer.run do |config|

    config.gem "thoughtbot-clearance",
        :lib => 'clearance',
        :source => 'http://gems.github.com',
        :version => '0.5.3'

    config 'mislav-will_paginate',
        :version => '~> 2.3.8',
        :lib => 'will_paginate',
        :source => 'http://gems.github.com'

end

如果沒有這些聲明,rake:gems install不會將這些gems的本地副本加載到應用程序的vendor / gems文件夾中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM