之间的主要区别是:
rake gems:install
rake gems:unpack
我有一个问题,它告诉我,我错过了这些宝石。我做了rake宝石:安装。然后我以为我安装了宝石。但它再次说,我错过了宝石。在我做了rake gems之后:解压缩。它解决了这个问题。这是为什么?
####com@#.com [~/rails_apps/employee_tracker]# rake db:migrate
(在/ home2 /#com / rails_apps / employee_tracker中)
缺少这些必需的宝石:
authlogic
acl9
你正在运行: ruby 1.8.7.174 at / usr / bin / ruby rubygems 1.3.7 at /home2/#com/.gem/ruby/1.8,/usr/lib64/ruby/gems/1.8
运行rake gems:install
以安装缺少的宝石。
(在/ home2 /#com / rails_apps / employee_tracker中) gem install authlogic 已成功安装authlogic-2.1.6 安装1个宝石 为authlogic-2.1.6安装ri文档... 为authlogic-2.1.6安装RDoc文档... gem install acl9 --source http://gemcutter.org 已成功安装acl9-0.12.0 安装1个宝石 安装acl9-0.12.0的ri文档... 安装acl9-0.12.0的RDoc文档...
(在/ home2 /#com / rails_apps / employee_tracker中)
缺少这些必需的宝石:
authlogic
acl9
你正在运行: ruby 1.8.7.174 at / usr / bin / ruby rubygems 1.3.7 at /home2/#com/.gem/ruby/1.8,/usr/lib64/ruby/gems/1.8
运行rake gems:install
以安装缺少的宝石。
(在/ home2 /#com / rails_apps / employee_tracker中) gem install authlogic 已成功安装authlogic-2.1.6 安装1个宝石 为authlogic-2.1.6安装ri文档... 为authlogic-2.1.6安装RDoc文档... gem install acl9 --source http://gemcutter.org 已成功安装acl9-0.12.0 安装1个宝石 安装acl9-0.12.0的ri文档... 安装acl9-0.12.0的RDoc文档... 解压宝石:'/ home2 /#com/rails_apps/employee_tracker/vendor/gems/authlogic-2.1.6' 解包的宝石:'/ home2 /#com/rails_apps/employee_tracker/vendor/gems/acl9-0.12.0'
答案 0 :(得分:2)
rake gems:安装会做你期望的。它调用rubygems.org并下载Gemfile / environment.rb中指定的gem。
rake gems:unpack将Gemfile / environment.rb中指定的gem的内容解压缩到vendor / gems文件夹中。
我相信你只是没有指定你的宝石,只是尝试使用它们而不通过Gemfile(Rails 3)/environment.rb(Rails 2.X)将它们添加到项目中。供应商/宝石中的任何东西都会自动加载,我认为这可以解释你所看到的内容。
你应该放
config.gem 'name_of_gem'
在您的environment.rb文件中,用于添加的gem。 Rails3有一个名为Gemfile的文件,你可以这样做:
gem 'name_of_gem'
我希望有所帮助。