Şu an çalıştığım bir projede rails kullanıyorum. Resim işleme için *nix'lerde ImageMagick programını kullanan bir kütüphaneyi kurmam gerekti. Gem yöneticisini kullanarak kütüphaneyi kurdum:

$ sudo gem install mini_magick
Successfully installed mini_magick-1.2.3
Installing ri documentation for mini_magick-1.2.3...
Installing RDoc documentation for mini_magick-1.2.3...


Bundan sonra kütüphanenin doğru kurulu olup olmadığını denemek için ruby kabuğunu çalıştırdım ve kütüphaneyi eklemeye çalıştım:

$ irb
irb(main):001:0> require "mini_magick"
LoadError: no such file to load -- mini_magick
from (irb):1:in `require'
from (irb):1


Anladığımız kadarıyla ruby kütüphaneleri bulamıyor. Hımm, nerede acaba bu kütüphane dosyaları?

$ sudo gem contents mini_magick
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/MIT-LICENSE
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/History.txt
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/Manifest.txt
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/README.txt
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/Rakefile
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/init.rb
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/lib/image_temp_file.rb
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/lib/mini_magick.rb
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/test/actually_a_gif.jpg
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/test/not_an_image.php
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/test/simple.gif
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/test/test_image_temp_file.rb
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/test/test_mini_magick_test.rb
/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/test/trogdor.jpg


Tamam, yerini artık biliyoruz. Şimdi tekrar deneyelim:

irb(main):005:0> require '/usr/lib/ruby/gems/1.8/gems/mini_magick-1.2.3/lib/mini_magick.rb'
=> true


Sorunun path'lerle ilgili olduğundan artık eminiz. Biraz araştırma yapıp RubyGems dökümantasyonunu buluyoruz. Yazılanlar kısaca şöyle: RubyGems, sürüm sisteminden dolayı kurulan kütüphaneleri direk kütüphanelerin bulunduğu dizine değil de sürümüne göre ayrı dizinlere koyuyor. Bu yüzden ruby'ye özellikle nerede bulunduklarını söylemek gerekiyor. Bunu otomatik olarak rubygems kütüphanesi yapıyor, doğru sürümdeki kütüphaneleri ruby'ye anlatıyor. Bunu sağlamak için birkaç yol var, mesela bir tanesi rubygems kütüphanesini eklemek, bir ikincisi ve kolay olanı ise RUBYOPT çevre değişkenini tanımlamak:

$ export RUBYOPT=rubygems
$ irb
irb(main):001:0> require 'mini_magick'
=> true


Artık kütüphaneyi kullanabiliriz.