【问题标题】:Installing gems tries to load the gems in my custom rake tasks before installing it安装 gems 尝试在安装之前将 gems 加载到我的自定义 rake 任务中
【发布时间】:2010-06-22 03:58:52
【问题描述】:

我正在使用 rails 2.3.5 开发一个应用程序,gitorious 并使用 vlad 部署,操作系统是 Linux Mint 9 Isadora。
vlad:setup 和 vlad:update 没问题。 但是当我vlad:migrate 并遇到与我在服务器上 ssh 并尝试 rake gems:install 时相同的错误时:安装

耙子中止!
没有要加载的文件 -- ya2yaml
/var/www/path/to/releases/20100622030150/Rakefile:10 (通过使用 --trace 运行任务查看完整跟踪)

我的config/environment.rb很好:

RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION  
# Bootstrap the Rails environment, frameworks, and default configuration  
require File.join(File.dirname(__FILE__), 'boot')  
Rails::Initializer.run do |config|  
  config.gem "haml"

我在lib/tasks/db_fixtures.rake 中有一个需要ya2yaml 的自定义任务:

namespace :export do
desc 'Create YAML test fixtures from data in an existing database.
Defaults to development database.  Set RAILS_ENV to override.'
require 'rubygems'
require 'ya2yaml'
task :fixtures => [:environment] do

当我重命名这个文件时,它没有被 rake 加载,当我 rake gems:install 时我不再有错误

所以我的猜测是,它看起来像 rake gems:install 在安装 gems 之前尝试在我的自定义任务中加载库 出于某种原因并给我一个错误。

什么是解决方案?
谢谢,

【问题讨论】:

    标签: ruby-on-rails ruby rubygems rake


    【解决方案1】:

    这可能有用吗?通过将它们移动到任务本身来延迟对您的 rake 任务的要求

    task :fixtures => [:environment] do
        require 'rubygems'
        require 'ya2yaml'
        # ...
    

    默认运行 rake 任务会“加载”所有 rake 文件

    【讨论】:

    • 对不起,我的回答迟了。延迟需求解决了问题。谢谢。
    猜你喜欢
    • 2011-08-13
    • 2020-04-30
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多