Zeyomir's Blog Bo piękniej jest wiedzieć coś o wszystkim…

26Sie/10Off
» «

RoR – przygotowania

Czas zacząć zabawę z RoRem na poważnie. Krok pierwszy to oczywiście przygotowanie sobie 'wypasionego' środowiska do pracy- tak żeby w trakcie nauki niczego nam nagle nie zabrakło.

Potrzebne nam będzie kilka podstawowych rzeczy:

  • Ruby
  • Railsy
  • Bazy danych + konektory (mysql i sqlite)
  • Edytor/ IDE

Potrzebny nam również system na którym to wszystko zainstalujemy ;).  U mnie jest to oczywiście wirtualny ArchLinux i takie też rozwiązanie (niekoniecznie z Archem :)) polecam. No dobra, skoro system już stoi i czeka, to lecimy dalej.

Ruby

Wchodzimy na ruby-lang.org i ściągamy sobie rubyego. Niby nic trudnego 😉 a jednak trzeba się zastanowić nad wersją. Kiedy piszę tego posta, najnowszą 'dopiero-co-wydaną' wersją jest 1.9.2. Pojawił się już nawet instalator dla Windowsów, ale niestety użytkownicy Linuksa zmuszeni są do instalacji ze źródeł jeżeli chcą skorzystać z najnowszego wydania- nie ma jeszcze gotowych paczek. Instalujemy więc najnowszą dostępną dla naszego systemu wersję- dla Windowsa ściągamy 1.9.2, a dla Archa wywołujemy sudo pacman -S ruby co na dzień dzisiejszy zainstaluje nam ruby w wersji 1.9.1p429. Zasadniczo po instalacji powinno już wszystko działać, sprawdzamy to wywołując w konsoli/wierszu poleceń ruby -v. Jeżeli nie zadziałało, to upewnij się, że podczas instalacji (na Windowsie) zaznaczyłeś opcję 'dodaj ruby do zmiennej środowiskowej PATH'. By uprzyjemnić zabawę, ściągamy z rubyist.net skrypt eval.rb który uprzyjemnia pracę z interpreterem rubyego (pamiętajmy o zmianie rozszerzenia na .rb). Uruchamiamy go poleceniem ruby eval.rb i już możemy poznawać język pisząc proste krótkie skrypty, które wykonywane są 'na żywo'.

Railsy

Instalacja railsów jest dość prosta- wystarczy wydać polecenie sudo gem install rails (na Windowsie wystarczy pominąć 'sudo'). I znowu- niby nic nadzwyczajnego, ale... railsy w wersji 3 są w stadium rc. Poza tym nie współpracują z rubym starszym niż 1.9.2. Dlatego też jeżeli nie mamy najnowszego rubyego albo chcemy mieć stabilną wersję railsów- wpisujemy sudo gem install -v=2.3.8 rails. By sprawdzić czy wszystko dobrze poszło wywołujemy rails -v. Razem z railsami dostajemy prosty serwer www WEBrick, dzięki któremu możemy spokojnie testować nasze aplikacje.

Bazy danych

Instalacja SQLite3 jest wręcz banalna- pod Windowsem ściągamy spakowaną najnowszą wersję sqlite3 oraz spakowaną dllkę. Wypakowujemy i wrzucamy wszystko (będą to w sumie 3 pliki) do podkatalogu bin w folderze naszej instalacji rubyego. Pod Linuksem po prostu instalujemy paczkę z sqlite3. Sprawdzamy czy wszystko jest ok- wywołujemy w konsoli sqlite3- powinien uruchomić się interpreter SQLa, by wyjść wpisujemy .exit. Skoro wszystko działa to instalujemy jeszcze odpowiedni konektor sudo gem install sqlite3-ruby i już możemy korzystać z sqlite3 w naszych railsowych projektach.

Sprawa z MySQLem wygląda podobnie- pod Windowsem ściągamy ostatnie wydanie, a pod Linuksem instalujemy odpowiednią paczkę. Po zainstalowaniu trzeba go jeszcze uruchomić- pod Linuksem wykonujemy sudo /etc/rc.d/mysqld start lub dodajemy wpis w /etc/rc.conf w sekcji daemons, a w Windowsie musimy sobie to wyklikać :). Jeżeli serwer się uruchomił to sprawdzamy jeszcze dla pewności czy na pewno wszystko działa- wklepujemy w konsoli mysql. By wyjść z insterpretera sql wpisujemy quit. Jeśli wszystko gra i buczy to instalujemy konektor sudo gem install mysql i przechodzimy do wyboru edytora...

Edytor/IDE

Dyskusji na temat tego, który edytor/IDE jest najlepszy do pracy z RoRem było już wiele. Ograniczę się więc do podania kilku przykładów:

  • vim + rails.vim + jakieś inne pluginy
  • Aptana / RadRails- bazuje na Eclipse
  • RubyMine- niestety darmowe tylko dla projektów OpenSource
  • Komodo IDE / Komodo Edit- niestety wersja Edit (darmowa) jest dość ograniczona
  • NetBeans- darmowe IDE od Sun/Oracle, oryginalnie dla Javy ale oferuje wsparcie dla innych języków- w tym Ruby

U mnie wybór był prosty, gdyż z NetBeansów korzystam przy pracy z Javą. Wystarczy ściągnąć wersję 'Ruby' albo 'All'. Jeżeli już posiadamy NetBeansa to można doinstalować odpowiedni plugin w Narzędzia -> Wtyczki. Polecam również plugin 'Extra color themes' który dodaje ładne schematy kolorowania składni. Żeby jednak korzystać z naszej instalacji Rubyego, a nie z JRuby którego dostajemy razem z NetBeansami- musimy dodać ścieżkę do interpretera (katalog instalacji rubyego/bin/ruby) w Narzędzia -> Ruby Platforms (opcja 'autodetect platforms' również powinna zadziałać). Co do integracji z bazami danych... cóż- nadal z tym walczę ;).

Więcej

Co jeżeli chcemy korzystać z kilku książek/kursów naraz, a każdy z nich dotyczy innej wersji rubyego albo railsów? Albo piszemy kilka projektów i każdy z nich wymaga wykorzystania gemów które są ze sobą niekompatybilne? Można tworzyć dla każdego projektu osobną maszynę wirtualną i dedykowany system. Można też reinstalować wszystko za każdym razem gdy zaczynamy pracę nad innym projektem (powodzenia...). Można też skorzystać z RVM . RVM pozwala dowolnie żonglować wersjami rubyego jak i zestawów gemów. Ja jeszcze nie miałem potrzeby z niego korzystać ale myślę, że w niedalekiej przyszłości przyjrzę mu się bliżej i spłodzę na ten temat jakiś wpis ;).

Jeżeli coś co tu opisałem jest niepotrzebne lub da się to zrobić lepiej/szybciej/wygodniej etc, lub jeżeli wiesz jak skonfigurować NetBeansy by działało wyklikane spod nich rake db:migrate to oczywiście proszę o komentarz ;).

Update: Jak przypomina psihae w komentarzach- można znacząco przyspieszyć instalację gemów dodając do polecenia flagi '--no-ri' oraz '--no-rdoc' dzięki czemu nie instalujemy stron pomocy. Przyspieszona instalacja np railsów wyglądałaby więc tak sudo gem install rails --no-ri --no-rdoc.

» «
Komentarze (4) Trackbacks (1)
  1. 1) dlaczego ‚niestety’ zmuszeni są do instalacji ze źródeł? zresztą to kilka milionów razy lepsze rozwiązanie od jakiegoś windowsowego instalatora 😛 a jak napisałeś, jest RVM.
    2) nie kumam, poco ten skrypt? przecież masz irb + gemy do niego jak np. wirble
    nie mam czego się więcej czepiać 😀
    jak instalujesz gemy, możesz dodać flagi –no-ri i –no-rdoc, wtedy nie są instalowane strony pomocy co przyspiesza sam proces.
    co do edytorów, jest jeszcze RedCar. co prawda wczesne stadium i do pracy na co dzień się nie nadaje, ale warto śledzić jego rozwój. sam też netbeansa używam.
    życzę powodzenia! (: i pochwal się jak coś już naskrobiesz.

    • zepsułeś mi głowę z tym RedCarem, faktycznie na razie jest lekko ‚buggy’ ale projekt b. ciekawy :)
      o -no-ri i -no-rdoc zapomniałem, zaraz dopiszę 😛
      a skrypcik jest fajny 😛 kolorowanie + wcięcia, no i chodzi z marszu :) ale wirble też ciekawa sprawa z tym tab-completion

  2. Jak idzie zabawa z Ruby? Jestem ciekaw jakie są Twoje wrażenia po dwóch latach zabawy. (Rozumiem, że na co dzień pracujesz Javie + objective-c dla iOS?)

    • Na co dzień pracuję w webowej Javie, for fun Java + AndroidSDK, objectiveC nigdy nie próbowałem, dla iOSa natywnego nic nie pisałem (bo parę apek webowych ‚stylizowanych’ na iOS się trafiło).

      Wracając do Rubiego i RoRa- szczerze mówiąc dawno nie miałem okazji się tym pobawić, uznałem, że RoR jest narazie zbyt zmienny z wersji na wersje, żeby myśleć o nim poważnie, a Ruby jest wciąż dość zasobożerny… dlatego odpuściłem sobie tę technologię do czasu aż stanie się trochę bardziej używalna 😉