Date: Thu, 28 Jan 2010 12:33:34 -0700 From: Aaron Gifford <astounding@gmail.com> To: freebsd-ruby@freebsd.org Subject: Ruby Gem Require LoadError (8-STABLE, Ruby 1.9.1) Message-ID: <e58000751001281133v42a6613dm61a0c2c7922df93d@mail.gmail.com>
index | next in thread | raw e-mail
Hi, I'm running a fresh install of FreeBSD 8-STABLE (installed then updated to STABLE as of 27 Jan. 2010). All ports are freshly built and installed. THE PROBLEM: After installing Ruby 1.9.1 and several gems via the Ports collection, ruby scripts that use the gems fail to load: ------ #!/usr/local/bin/ruby19 require 'rubygems' require 'net/ssh' ... ------ The script fails with: ------ user@host:/home/user% ./script.rb ./script.rb:4:in `require': no such file to load -- net/ssh (LoadError) from ./script.rb:4:in `<main>' ------ So of course I check my gems install: ------ user@host:/home/user% gem list --local *** LOCAL GEMS *** activerecord (2.3.4) activesupport (2.3.4) net-ssh (2.0.15) pg (0.8.0) sqlite3-ruby (1.2.5) user@host:/home/user# gem19 environment RubyGems Environment: - RUBYGEMS VERSION: 1.3.1 - RUBY VERSION: 1.9.1 (2009-12-07 patchlevel 376) [amd64-freebsd8] - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9 - RUBY EXECUTABLE: /usr/local/bin/ruby19 - EXECUTABLE DIRECTORY: /usr/local/bin - RUBYGEMS PLATFORMS: - ruby - amd64-freebsd-8 - GEM PATHS: - /usr/local/lib/ruby/gems/1.9 - /home/user/.gem/ruby/1.9 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://gems.rubyforge.org/ user@host:/home/user% pkg_info | grep ruby ruby-1.9.1,1 An object-oriented interpreted scripting language ruby19-iconv-1.9.1,1 An iconv wrapper class for Ruby ruby19-mysql-2.8.1 Ruby module for accessing MySQL databases with a C API like rubygem-activerecord-2.3.4_1 Object-relational mapping layer for Rails MVC Framework rubygem-activesupport-2.3.4_1 Utility classes and extension that are required by Rails MV rubygem-net-ssh-2.0.15 Non-interactive SSH processing rubygem-pg-0.8.0 Ruby interface to PostgreSQL library rubygem-sqlite3-1.2.5 Ruby interface to the SQLite DB engine version 3 user@host:/home/user% uname -av FreeBSD host.example.org 8.0-STABLE FreeBSD 8.0-STABLE #0: Wed Jan 27 19:46:39 MST 2010 root@host.example.com:/usr/obj/usr/src/sys/GENERIC amd64 user@host:/home/user% ------ ALL installed gems fail to load with the exact same error. So I think, perhaps it's the FreeBSD port system gems that are bad. I download a new gem and install it with the gem command (bypassing ports). But when I try to require it, it fails with the exact same error. All of the installed gems (whether by ports or by direct gem install) are in the correct install location (/usr/local/lib/ruby/gems/1.9/) and are present. Then I learn this: ------ user@host:/home/user% irb19 irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'net/ssh' LoadError: no such file to load -- net/ssh from (irb):2:in `require' from (irb):2 from /usr/local/bin/irb:12:in `<main>' irb(main):003:0> require 'active_record' LoadError: no such file to load -- active_record from (irb):3:in `require' from (irb):3 from /usr/local/bin/irb:12:in `<main>' irb(main):004:0> gem 'net-ssh' => true irb(main):005:0> require 'net/ssh' => true irb(main):006:0> require 'active_record' LoadError: no such file to load -- active_record from (irb):6:in `require' from (irb):6 from /usr/local/bin/irb:12:in `<main>' irb(main):007:0> gem 'activerecord' => true irb(main):008:0> require 'active_record' => true irb(main):009:0> ------ Now THAT's interesting. If I use the gem method before the require, the gem is found. But ONLY after. Anyone have any ideas? Puzzled, Aaron out.help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e58000751001281133v42a6613dm61a0c2c7922df93d>
