Lokalne repozytorium gemów

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]

Tags: ,

Comments are closed.