2012-04-11 62 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

相關問題