Installing RubyNetCDF
I follow the RubyNetCDF installation instructions provided by the program creators. I am using Linux Ubuntu 10.04 (Lucid) with Ruby 1.8.7 on a Dell Latitude E6400. This probably won't work on Windows, except perhaps through Cyg-Win.Install dependencies
The first steps are to install NArray and to install NetCDF.- Install NArray
% sudo gem install narray
- Now check to make sure it actually is working by jumping into an interactive Ruby session and creating an NArray object:
$ irb -rubygems >> require 'narray' => true >> a = NArray[2,3,4] => NArray.int(3): [ 2, 3, 4 ] >> exit
- Install NetCDF version 3:
$ sudo apt-get install netcdf-bin libnetcdf-dev
- Check that the installation was successful:
$ ncdump
Install ruby-netcdf as a gem
RubyNetCDF exists as a gem.sudo gem install ruby-netcdf
but this will fail as follows:
Building native extensions. This could take a while... ERROR: Error installing ruby-netcdf: ERROR: Failed to build gem native extension. /usr/bin/ruby1.8 extconf.rb extconf.rb:3: uninitialized constant Gem (NameError) Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/ruby-netcdf-0.6.5 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/ruby-netcdf-0.6.5/gem_make.out
This failed because the file extconf.rb doesn't have the necessary rubygems call (require 'rubgems'). It might work if you're using Ruby 1.9. Note that it left the files in the directory where gems would go, so we can navigate to that directory and install it manually.
$ cd /usr/lib/ruby/gems/1.8/gems/ruby-netcdf-0.6.5
$ ruby -rubygems extconf.rb --with-narray-include=/usr/lib/ruby/gems/1.8/gems/narray-0.5.9.9
If you get the error
extconf.rb:3: uninitialized constant Gem (NameError)
, then make sure you're including the argument -rubygems
above. That's the equivalent of inserting at the top of the file the linerequire 'rubygems'
The next step is to run the
make
commands:$ sudo make
$ sudo make install
The final step is run a test to see if the installation of ruby-netcdf was successful, but mine got an error:
$ sudo make test test.rb:3:in `require': no such file to load -- narray (LoadError) from test.rb:3 make: *** [test] Error 1
For this line to work with Ruby 1.8.7, it needs to have RubyGems initialized. Open the
test.rb
file, and add the line manually to the top. This is what the first few lines of my file look like after I insert the new line 3:##require 'numru/netcdf' ## // to test before make install --> require 'rubygems' require 'narray' require '../netcdfraw' require '../lib/netcdf'
Now try running the test again:
$ sudo make test .
.
.
test did not fail :-p (please ignore the warnings)The message at the end, along with the friendly emoticon, tell us that the test succeeded. We have completed the installation of RubyNetCDF.
Confirm installation succeeded
We can confirm that everything is working by opening a Ruby session (but not in the protected gem directory)...$ cd ~ $ irb...and interacting with NetCDF.
irb(main):001:0> require 'numru/netcdf' => true irb(main):002:0> file = NumRu::NetCDF.create("test.nc") => NetCDF:test.nc irb(main):003:0> file.close => nil irb(main):004:0> exitThat confirms that everything is working.
~Fin~
No comments:
Post a Comment