Lokalne repozytorium gemów
Posted by admin | Filed under Uncategorized
Cel: chcemy mieć swoje repozytorium gemów,
nie zależne od systemowego. Sprobojemy zainstalować gema “term-ansicolor”:http://raa.ruby-lang.org/project/ansicolor/ w naszym nowym, magicznym repozytorium.
$ gem install term-ansicolor -i ~/tmp/gems Successfully installed term-ansicolor-1.0.3 1 gem installed Installing ri documentation for term-ansicolor-1.0.3... Installing RDoc documentation for term-ansicolor-1.0.3...
W systemowym repo nie ma śladu po nowym gemie.
$ gem list term-ansicolor
Mała modyfikacja plików konfiguracyjnych:
$ cat ~/.gemrc gemdir: /Users/michalkurek/tmp/gems gemhome: /Users/michalkurek/tmp/gems
Co mu ty mamy:
oki@nil:~$gem list *** LOCAL GEMS *** term-ansicolor (1.0.3)
Test w irbie:
$irb>> require 'term/ansicolor' LoadError: no such file to load -- term/ansicolor from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' from (irb):1 >>
Aby uzywać gemów z naszego wystrzałowego repozytorium w *irbie* musimy ustawić dwie zmienne środowiskowe.
$ export GEM_PATH=/Users/oki/tmp/gems $ export GEM_HOME=/Users/oki/tmp/gems $irb irb(main):001:0> require 'term/ansicolor' => true irb(main):002:0>
A co z railsami?
Dziala, ale bez deklaracji zmiennych środowiskowych się nie obejdzie.
Jeżeli tworzymy nasze repozytorium od zera, warto pamietać o zainstalowaniu railsów
,
w przciwnym wypadku dostaniemy błąd podobnny do:
/usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:379:in `report_activate_error': Could not find RubyGem rails
Dla wygody można dopisać do swojego ~/.bashrc linijki:
export GEM_HOME=/Users/michalkurek/tmp/gems export GEM_PATH=/Users/michalkurek/tmp/gems
*Może ktoś zna sposób, aby to zrobić łatwiej? Bez deklarowania zmiennych środowiskowych?*
Przydatne linki:
* “rubyforge”:http://rubyforge.org/ [en]
* http://rubyforge.org/softwaremap/trove_list.php [en]
* http://www.ruby-lang.org/pl/libraries/ [en]
* “10 essential ruby gems”:http://insider.helicoid.net/articles/show/2/10_essential_ruby_gems [en]