Witam ostatnio jestem na etapie poznawania linuxa i programów które w “teorii” mają ułatwić mi pracę w tym język. Jednym z tych programów jest Rubygams. W czym rzecz…
Na Ubuntu (który odpalam przez Virtual Machine z Win7) zainstalowałem RVM i przez niego Ruby 2.1.1
Potem zrobiłem"gem update" żeby zaktualizować wersję do najnowszej.
Następnie idąc krok po kroku tutorialem ( http://guides.rubygems.org/rubygems-basics/ ) doszedłem do momentu kiedy w irb wyszukuje się ścieżki do przykładowego gema i tu zaczęły się schody…
Na polecenie "require ‘ap’ " otrzymałem taki zwrot:
LoadError: cannot load such file -- ap
from /home/kask/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/kask/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):3
from /home/kask/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'
Na moje laickie oko wygląda to tak jakby Ruby nie szukał w katalogu “games” do którego rubygames zapisuje pobrane gemy.
Jestem zielony z linuxa i nie bardzo wiem jak to ugryźć
@Mikeroz - wpiałem tylko "require ‘ap’ " wg. tutka powinno zadziałać, nie podawałem żadnej ścieżki.
@wafcio - nie instalowałem ap, liczyłem że jest “w pakiecie” ale zainstalowałem “rubywarrior” i gdy wpisałem " require ‘rubywarrior’ " efekt był ten sam.
PS. co to gemeset (zbiór gemów przypisany do obecnej wersji ruby ? )
Wybacz, pomyliło mi się i myślałem że dałeś link do RVM - mój błąd. Moja propozycja w tym momencie jest taka: poczytaj trochę o narzędziaj do zarządzania wersjami Rubiego np. RVM (https://rvm.io) lub rbenv (https://github.com/sstephenson/rbenv). Instalowanie gemów w systemowym rubym sprowadzi później więcej problemów niż to widać na samym początku.
Jak chcesz sprawdzić jakie masz gemy to wpisz gem list i zobaczysz czy masz ap zainstalowane.
PS. Ten tutorial jest do niczego, nie ma opisu krok po kroku. Zastanawiam się czy takie coś w ogóle istenieje dla początkujących.
Ok ap nie jest zainstalowane ale jak pisałem rubywarrior już tak i jest wykazany na liście (po wpisaniu gem list), a po wpisaniu " require ‘rubywarrior’ " wynik jest taki sam.
Ok poszukam na necie i zapytam n Stack Overflow, jak uda mi się to jakoś rozwiązać, podam rozwiązanie tutaj. Może się komuś też przyda
LoadError: cannot load such file -- rubywarrior
from /home/kask/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/kask/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):1
from /home/kask/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'
Czyli to samo wychodzi na to że ruby nie sprawdza w ścieżce rubygeme
RVMem się generalnei na razie nie przejmuj, szczególnie jak pracujesz na wirtualce.
Moje podejrzenie to to że gemy się poprawnie nie zainstalowały. Spróbuj zainstalowac gem jeszcze raz przez gem install x po czy zweryfikuj instalację przez gem list jeżeli gem się tam pojawia to kolejna rzeczą którą możliwe że musisz zrobić to wydać polecenie gem "ruby-warrior" przed require "ruby-warrior" żeby dodać gema do ścierzki wyszukiwania.
teraz jak jestes w konkretnym gemsecie to dajesz gem list i widzisz zainstalowane gemy w ty gemsecie i require juz powinien dzialać, jeśli znowu wywali tobie błąd to przeklej go tutaj, bo zapewne będą inne ścieżki
Jak to odpalic ?? jak wpisalem w irb runner.run to dostalem
2.1.1 :004 > runner.run
NameError: undefined local variable or method `runner' for main:Object
from (irb):4
from /home/kask/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'
Dobra czas na konstruktywne podsumowanie (może komuś się przyda, mnie na pewno )
Problem RubyGems not loaded:
LoadError: cannot load such file -- ap
from /home/kask/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/kask/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):3
from /home/kask/.rvm/rubies/ruby-2.1.1/bin/irb:11:in `<main>'
Jak zwykle w moim przypadku problem zrodził się z połączenia mojego braku wiedzy i przypadku. Idąc za faktycznie kiepskim tutorialem: http://guides.rubygems.org/rubygems-basics/, wyskoczył mi błąd że gem ‘ap’ nie może zostać znaleziony. Co było spowodowane tym że go tam faktycznie nie było, program więc zwracał właściwy błą. Problem ROZWIĄZANY
Następnie kwestia przypadku…
Idąc za ciosem zainstalowałem gem ‘rubywarrior’: poprzez gem install rubywarrior i znow pojawił się problem bo program zwracał ze nie może go zlokalizować… problem ROZWIĄZANY przez @marr require ‘ruby_warrior’ faktycznie zadziałało. Okazało się że gemset nie był potrzeby bo rvm znalazł w 'rubywarrior; w bazowym secie ruby.
;
Ale dzięki waszej pomocy i radom (przede wszystkim @wafcio) dowiedziałem się:
podstaw tworzenia i zarządzania gemsetmi w RVM
podstawowych funkcji RVM (dodanie wersji ruby, zmiana wersji ruby)
jak dodatkowo poradzić sobie z takim problemem coby nie zaśmiecać forum w przyszłości, czyli niezgodność nazwy gema i biblioteki.
Dowiedziałem się że nazwa biblioteki powinna zgadzać się z nazwą gema.
Dzięki za pomoc, bez Was pewnie bym z tym jeszcze tydzień siedział. Jak znów na czymś stanę pewnie się odezwę.
Zacząłem od Learn Ruby the Hard Way i w ćw 46 trzeba zapoznać się samemu z RVM RubyGems Rake Bounder i Git. I tak zacząłem przygodę z tymi programami i natrafiłem na problem, a że z linuxem jestem od tygodnia zrodziło to dodatkową konsternacje