JRuby i Rails 3 oraz GlassFish, i jeszcze RVM

Mam częściowo skończoną aplikacje w Rails’ach 2(konkretnie 2.3.8), chciałbym się jednak przesiąść na trójkę, bo po popisaniu w niej trochę, spodobała mi się znacznie bardziej.

Używam:

  • Ubuntu 10.04
  • PostgreSQL 8.4
  • NetBeans 6.9.1(zawiera Jruby 1.5.1 oraz GlassFish v3)
  • JDK6u17

Uruchamiam to wszystko narazie poprzez GlassFish Gem i bangla. Tylko właśnie jest jedno ale. Jruby musi być odpalany na jdk6 niższym niż u18, bo wywala błąd(tutaj źródło: http://jira.codehaus.org/browse/JRUBY-4785 ). Dlatego właśnie JDK6u17 a nie aktualna wersja. Tą wersję wybrałem podczas instalowania Netbeans’a i wskazałem lokalizacje(jest w /opt).

Jruby jest zainstalowany w NetBeansie. Ścieżka:

$HOME/netbeans-6.9.1/ruby/jruby-1.5.1/bin

Zainstalowałęm poprzez odwołanie się do binarki rails’y 3.0.3.

Tworzę sobie testowy projekt na Railsach 3. Jakiś prosty scaffold. Działa. Teraz tylko db:migrate. Jakiś error, pokazuje że nie ma “rake tasks”.
No to przypałowo zrobiłem drugi projekt na RoR2, identyczny scaffold i migrate. Wykonało się. Z powrotem powrót do RoR3. Działa. Jakiś dodatkowych gemów nie testowałem(np devise) bo wywaliło np przy wywołaniu rails generate devise_install:

Program rails nie jest obecnie zainstalowany. Można go zainstalować wpisując: sudo apt-get install rails
Próbowałem coś zdziałać z RVM korzystając z tych slajdów -> http://www.slideshare.net/filiptepper/ruby-version-manager-at-wrug
Ale chyba coś popsułem bo nie działa:

No command 'rvm' found, but there are 18 similar ones rvm: command not found
Moje pytania:

  1. Jak się robi alias na “jruby” by można go było wywoływać bezpośrednio z shell’a bez przechodzenia do katalogu?
  2. Dlaczego rake nie działa na RoR3, a na RoR2 działa?
  3. Istnieje jakiś dobry tutorial do RVM po polsku?
  4. Czy da się ustawić by JRuby poprzez RVM korzystał z JDK6u17?

To tyle. Z góry dziękuje za odpowiedź.

No mogę powiedzieć że znalazłem rozwiązanie dla pytania nr 1.

Po prostu należy zrobić link symboliczny w katalogu /bin
Np

root@ubuntu:/bin/# ln -s /home/ubuntu/netbeans-6.9.1/ruby/jruby-1.5.1/bin/jruby jruby

[quote=Matthias]Próbowałem coś zdziałać z RVM korzystając z tych slajdów -> http://www.slideshare.net/filiptepper/ruby-version-manager-at-wrug
Ale chyba coś popsułem bo nie działa:

No command 'rvm' found, but there are 18 similar ones rvm: command not found
[/quote]
Instrukcja na stronie RVM jest doprawdy kilkulinijkowa.
Instalowałem go kilkukrotnie na różnych maszynach i nigdy w zasadzie nie miałem problemów.

[quote=Matthias]Moje pytania:

  1. Jak się robi alias na “jruby” by można go było wywoływać bezpośrednio z shell’a bez przechodzenia do katalogu?
  2. Dlaczego rake nie działa na RoR3, a na RoR2 działa?
  3. Istnieje jakiś dobry tutorial do RVM po polsku?
  4. Czy da się ustawić by JRuby poprzez RVM korzystał z JDK6u17?[/quote]
    Ad.1 Jak RVM będzie działać poprawnie, to nie będziesz musiał robić żadnych sztuczek.
rvm --default use jruby

I wtedy zwykłe odwołanie do ruby wywoła Jrubiego.

Ad. 2 - co dokładnie masz na myśli. Rake w RoR 3 działa dokładnie tak samo. Podejrzewam tutaj raczej problemy z konfiguracją.

Ad. 3 - nie ma. Ale te kilka instrukcji “kopiuj-wklej” po angielsku chyba nie jest aż takich trudnych do zrozumienia. Od biedy Google Translate daje radę.

Ad. 4 - JRuby domyślnie będzie korzystał z systemowej Javy, tzn. tej która zgłasza się dla “java”. Jeśli sprawisz, że ta Java będzie systemową (ustawiając odpowiedni JAVA_HOME oraz linki do plików wykonywalnych, to nie powinno być problemów…

@apohllo
Dzięki za odpowiedź. Na tym slajdzie poprzednim była jedynie mowa o gem install rvm, ale jak pokazałeś to za mało.

Co do pytania nr 2 to znalazłem odpowiedź.
Po prostu klikam na menu kontekstowe w NetBeansie, Run/Debug rake tasks -> Refresh Tasks.
I bangla.

Chodzi o katalog /bin Javowy, tak? np java, javac, jar itd. Do tych plików mam zrobić linki, tak?

Chodzi o katalog /bin Javowy, tak? np java, javac, jar itd. Do tych plików mam zrobić linki, tak?[/quote]
Zasadniczo jak instalujesz to normalnie, to odpowiednie linki są już ustawione. Tylko pytanie na co wskazują - o ile w Twoim systemie jest więcej niż 1 JVM.

Sensowny tutorial jak ustawić JAVA_HOME
http://vietpad.sourceforge.net/javaonlinux.html