[英]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.