rake gems:install requires the gems it tries to install

Hi,

I'm having a problem with rake gems:install on ubuntu hardy with
rubygems 1.2 installed from source.

I have the following gem requirements in my environment.rb:

  # Required GEMs
  config.gem 'crypt', :version => '1.1.4', :lib => 'crypt/blowfish'
  config.gem 'hpricot', :version => '0.6.161'
  config.gem 'json', :version => '1.1.3'
  config.gem 'rexml-expansion-fix'

I I try to run rake gems:install, I get exceptions that those gems could
not be required. Which is of course true because they are not yet
installed, but that's what rake gems:install is for, right?

Any Idea?

root@octopotapitest:/var/www/octopot/releases/20080825165500# rake
gems:install
(in /var/www/octopot/releases/20080825165500)
no such file to load -- crypt/blowfish
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in
`new_constants_in'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:57:in
`load'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb:11:in
`__send__'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb:11:in
`to_proc'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:246:in
`each'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:246:in
`load_gems'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:137:in
`process'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:93:in
`send'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:93:in
`run'
/var/www/octopot/releases/20080825165500/config/environment.rb:13
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in
`new_constants_in'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/vendor/rails/railties/lib/tasks/misc.rake:3
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in `invoke'
/var/www/octopot/releases/20080825165500/vendor/rails/railties/lib/tasks/gems.rake:15
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:518:in
`invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in `send'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:515:in
`invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:507:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1931:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
no such file to load -- crypt/blowfish
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in
`new_constants_in'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:57:in
`load'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb:11:in
`__send__'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb:11:in
`to_proc'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:246:in
`each'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:246:in
`load_gems'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:142:in
`process'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:93:in
`send'
/var/www/octopot/releases/20080825165500/config/../vendor/rails/railties/lib/initializer.rb:93:in
`run'
/var/www/octopot/releases/20080825165500/config/environment.rb:13
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:354:in
`new_constants_in'
/var/www/octopot/releases/20080825165500/vendor/rails/activesupport/lib/active_support/dependencies.rb:509:in
`require'
/var/www/octopot/releases/20080825165500/vendor/rails/railties/lib/tasks/misc.rake:3
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in `invoke'
/var/www/octopot/releases/20080825165500/vendor/rails/railties/lib/tasks/gems.rake:15
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:546:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:541:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:508:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:518:in
`invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in `send'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1183:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:515:in
`invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:507:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:501:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:494:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1931:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1909:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1903:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1881:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.1/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
rake aborted!
no such file to load -- json/pure

(See full trace by running task with --trace)

Best regards, Philipp Schmid

I'm having the same problem. Here is the list of my gems:
  config.gem "faker", :version => '0.2.0'
  config.gem "ar-extensions", :version => '0.8.0'
  config.gem "hobofields", :version => '0.7.5'
  config.gem "hobosupport", :version => '0.7.5'
  config.gem "capistrano", :version => '2.4.3'
  config.gem "capistrano-ext", :version => '1.2.1'

All of them are installed, but I get a no such file to load on the
capistrano-ext. If I remove that one the rest work fine.

When I do rake gems, after the no such file to load and the stack dump
(twice) it then shows this:
[I] faker = 0.2.0
[I] ar-extensions = 0.8.0
[I] hobofields = 0.7.5
[I] hobosupport = 0.7.5
[I] capistrano = 2.4.3
[ ] capistrano-ext = 1.2.1

Brian

I'm having exactly the same problem. My list of gems is even smaller:

config.gem 'twitter4r'

When I run "rake gems" I get the stack dump. I'm getting this in a
bare-bones project I created to verify that I could recreate the
problem. Thinking it might be a versioning issue with gems or rails, I
removed Rails, Rubygems, Ruby, and anything else that looked related
and did a complete reinstall. I'm on Ubuntu.

If I run "rails -v" it says "Rails 2.1.0". If I run "gem env", I get
the following:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.2.0
  - RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/

To my eyes, these both look good.

Any ideas anyone?

Regards-
Eric

Maybe victory!! (I don't want to anger the development gods with
premature rejoicing)

If I change the line:

config.gem 'twitter4r'

to

config.gem 'twitter4r', :lib => "twitter"

then it works.

-EricM

bburidg-

Give this a try:

config.gem "capistrano-ext", :version => '1.2.1', :lib => 'capistrano'

-Eric

I am having the same issues on Ubuntu 8.0.4. Using rails 2.1.1 and gems
1.2.0.
When I run sudo rake gems:install I get the no such file to load.

I noticed when I tried to just use the capistrano line above. I
received an error about packet. Which is not installed on my server and
is also required by the application.

Eric Marthinsen wrote:

Yep that worked. Thanks Eric!

Brian