繁体   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