2012-04-11 61 views
4

当我调用任何Capifony数据库功能,cap database:move:to_remote例如,我得到以下红宝石错误:Capifony数据库功能会失败,`要求:不能加载这样的文件 - 文件实用程序(LoadError)

[email protected]:~/dev/sites/app$ cap develop database:move:to_remote 
    triggering load callbacks 
* executing `develop' 
    triggering start callbacks for `database:move:to_remote' 
* executing `multistage:ensure' 
* executing `database:move:to_remote' 
* executing `database:dump:local' 
/home/jeremykendall/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- FileUtils (LoadError) 
     from /home/jeremykendall/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capifony-2.1.5/lib/symfony2.rb:101:in `block (3 levels) in load' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `instance_eval' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `invoke_task_directly' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:89:in `execute_task' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capifony-2.1.5/lib/symfony2.rb:159:in `block (3 levels) in load' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `instance_eval' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:139:in `invoke_task_directly' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:89:in `execute_task' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:46:in `block in execute_requested_actions' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:45:in `each' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:45:in `execute_requested_actions' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/cli/help.rb:19:in `execute_requested_actions_with_help' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:34:in `execute!' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/lib/capistrano/cli/execute.rb:14:in `execute' 
     from /home/jeremykendall/.rvm/gems/[email protected]/gems/capistrano-2.11.2/bin/cap:4:in `<top (required)>' 
     from /home/jeremykendall/.rvm/gems/[email protected]/bin/cap:19:in `load' 
     from /home/jeremykendall/.rvm/gems/[email protected]/bin/cap:19:in `<main>' 

我deploy.rb:

set :stage_dir,  'app/config/deploy' 
require 'capistrano/ext/multistage' 
set :stages,   %w{production testing develop} 

default_run_options[:pty] = true 

set :application,  "appname" 
set :deploy_to,  "/home/isr/sites/app" 
set :deploy_via,  :remote_cache 

set :scm,    :git 
set :repository,  "[email protected]:jeremykendall/redacted.git" 
set :user,   "isr" 
set :use_sudo,  false 

ssh_options[:forward_agent] = true 

set :model_manager, "doctrine" 
set :keep_releases, 3 
set :update_vendors, true 
set :shared_files, ["app/config/parameters.yml", "app/config/parameters.ini"] 
set :shared_children, [app_path + "/logs", app_path + "/cache", web_path + "/uploads", "vendor"] 

我的应用程序/配置/部署/ develop.rb

# Deploys to local vagrant box 

set :domain,   "192.168.33.10" 
set :symfony_env_prod, "dev" 
set :deploy_to,  "/home/vagrant/sites/app" 
set :branch,   "develop" 
set :user,    "vagrant" 

role :web,    domain     # Your HTTP server, Apache/etc 
role :app,    domain     # This may be the same as your `Web` server 
role :db,    domain, :primary => true # This is where Rails migrations will run 

我已经试过

  • gem install fileutils
  • sudo aptitude install libfileutils-ocaml-dev(在抓救命稻草文件实用程序)
  • gem update --system
  • gem update

回答

9

看起来像它a bug in capifony 2.1.5,尝试grepping为require "FileUtils"require "fileutils"更换。这也许等待补丁?

0

我尝试创业板安装导轨时有几分相似的错误那天晚上,事实证明我错误地信任apt-get来获得我需要的一切。

我敢打赌,在安装软件包并确保它们实际上是你想要的时候,你比我更小心一点,但这里是我安装(大致)修复它的东西。

sudo apt-get install ruby-full build-essential

sudo aptitude install ruby build-essential libopenssl-ruby ruby1.8-dev

+1

感谢提示,男人,但没有骰子。我已经安装了大部分,并安装其他ruby库没有帮助。 (我不确定他们会因为我正在使用rvm) – 2012-04-11 15:19:08

0

你有交响乐部署的宝石,它会自动添加到您的部署:

gem uninstall capifony 

使用gemsetsbundler exec capistrano ...来解决这个

+0

我在第一个地方使用了名为gemset的rvm(AFAIK)。遵循vongrippen的建议后,我创建了一个新的命名gemset并再次尝试。同样确切的问题。 – 2012-04-12 00:59:15

+0

,但你卸载capifony?错误信息必须改变,如果没有capifony,你能粘贴新的错误? – mpapis 2012-04-12 03:16:34

+0

这是非常相同的错误。原来这是Capifony的一个bug。有两个与此相关的pull请求。 – 2012-04-12 03:25:14

2

由于文件实用程序是Corelib的一部分,那么它应该在任何红宝石中如果你使用RVM安装ruby,它可以编译它。我自己也遇到了类似的问题,其中一些corelib没有在那里,结果发现当我用RVM编译ruby时,我没有安装一些依赖项。

这些是所有ruby corelib特性以及RVM所需要的一些特性的全部要求。使用rvm requirements

apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion 

现在,完全删除红宝石和来源然后重新安装(找到。(否则它可能是以前的配置选项可能无法得到取消设置,让你在同一个地方)

rvm reinstall 1.9.3-p125 
+1

没有骰子。我卸载了所有可以在我的机器上找到的红宝石(通过'dpkg -l | grep ruby​​'),用rvm implode卸载rvm,清理所有相关的rvm内容,然后重新安装rvm。我检查了需求,安装了它们,运行了'rvm install 1.9.3',为capifony创建了一个命名的gemset,运行'gem install capifony',试图调用其中一个cap数据库函数,并且得到**完全相同错误**。哎呀。 – 2012-04-12 00:55:39

+1

如果你启动irb并键入'require'fileutils'',会发生什么?这可能是它编译正确,但您的Capifony环境由于某种原因无法看到它。我会确保你可以成功地'需要'fileutils''之前打扰capifony。 – 2012-04-12 01:54:33

+1

'require'fileutils'' returns'=> true'。 – 2012-04-12 02:01:51

4

你会发现,require 'FileUtils'一般会在Mac OS X上工作,但它应该是小写的fileutils。问题在于,大多数情况下,Mac OS X使用的是不区分大小写的文件系统,因此,当您部署或转移到Linux或其他文件系统(如ZFS)并打开区分大小写时,它将失败。

+0

这是我在Ubuntu和os x上面临的问题。但是,解决方案是什么? – 2016-08-07 19:52:35

+1

嘿谢谢!我在构建服务器上遇到了同样的问题。用'require'fileutils''替换'需要'FileUtils''解决了这个问题。 – andrew 2017-05-05 17:48:06

相关问题