RoR na windows

Witam,

Zabieram się właśnie za naukę RoR i chciałem sobie przygotować środowisko ale od początku widzę, że cokolwiek chce zrobić to na windowsie są schody albo w ogóle nie da się czegoś uruchomić. Choćby instalacja Phusion Passenger z Nginx pod windowsem po prostu nie działa. Chciałem więc zainstalować Thin ale instalacja wywala błędy… Jeśli wszystko ma tak wyglądać pod windowsem to szkoda zachodu.

Tak więc moje pytanie:
Jak korzystacie z RoR pod windowsem? Nie korzystacie? Używacie wirtualnego linuksa? Używacie tylko windowsa bo wcale nie ma dużo problemów z tym?

Generalnie mówi się, że jeśli już chcesz windowsa, to na wirtualce z linuksem.

Aby zacząć nie potrzebujesz ani passengera, ani nginx, tylko ruby i railsy. Railsy mają w sobie wbudowany prosty serwer www, jest jak najbardziej wystarczający : ) Zacznij od tutoriali z guides.rubyonrails.org, jest tam jak zacząć z tworzeniem aplikacji w railsach. W skrócie, tworzysz nowy projekt przez “rails new nazwa_projektu”, potem do niego wchodzisz, a polecenie uruchomienia serwera to “rails s” (albo “rails server”). Wszystko jest w tutorialu, do którego linka dałem wyżej : )

Tego nie wiedziałem. Jeśli jest tam coś w rodzaju .htaccess to faktycznie da radę.

Dzięki za info i linka!

Podstawowe pytanie jest takie: po co się uczysz railsów?

Miałem ostatnio okazję stawiać na windowsie appkę railsów - robiłem aplikację na windows phone i potrzebowałem API. Miałem do wyboru hostowanie tego na serwie i zabawa w ssh lub postawienie na windowsie (vbox odpada bo nie lubi się zbytnio z emulatorem WM). Wybrałem tę drugą opcję i było ok. Miałem parę problemów, musiałem zrobić patcha do jednego z gemów, ale koniec końców ani przesadnie dużo bólu tam nie było, ani problemów, których nie dałoby się rozwiązać.

Dlatego jeśli chcesz coś dla siebie napisać, to od biedy starczy, najwyżej będziesz wybierał te technologie, które na windowsie były testowane.

Jeśli jednak myślisz o pracy w RoR lub programowaniem czegoś dużego / złożonego, to zapomniałbym o windowsie, szkoda zachodu. Na początek możesz zobaczyć na przykład vagranta: http://vagrantup.com/ Da Ci to możliwość stawiania appki na linuxie, będziesz miał fajną linię poleceń (ta w windowsie, czy nawet nieoficjalne, chwalone przez użytkowników windowsa, są tragiczne…), a nie będziesz musiał od razu zmieniać całego systemu.

Jeśli zostaniesz przy windowsie, to koniecznie zainstaluj mysysgit, dostaniesz gratisowo do gita ztweakowaną linię poleceń: http://code.google.com/p/msysgit/

@OwiecPL najlepiej zainstaluj sobie linuxa jako drugi(pierwszy!) system :wink: Jeżeli się wkręcisz w Railsy to prędzej czy później i tak to zrobisz :wink: a lepiej to zrobić prędzej :wink:

@Ofca

Miałem gentoo (jako pierwszy system) i windowsa przez jakieś pewnie 7 lat i to nie ma większego sensu :slight_smile: W końcu zrezygnowałem z linuksa bo wiecznie były problemy ze sterownikami do sprzętu (szczególnie nowego) itd. System ma służyć w końcu do pracy, a nie do tego aby tracić czas na zajmowanie się nim. Ewentualnie mógłbym sobie postawić serwerek tylko z konsolą ale robienie tego specjalnie dla RoR w tym momencie jeszcze średnio mi się uśmiecha.

@sarniak

Odpowiadając na Twoje pytanie: wybrałem RoR jako język, na który się przerzucam do pisania aplikacji webowych. Myślałem jeszcze o playframework ale składnia ruby o wiele bardziej mi się podoba. Będę na tym pisał aplikacje, z których mam nadzieje będą korzystać przynajmniej setki użytkowników. Przynajmniej takie są założenia projektowe.

Mam jeszcze takie pytanko, może nie najwyższych lotów ale nigdy nie stawiałem wirtualek na windowsie. Czy vagrant jest tym samym co vmware? Dlaczego vagrant, a nie wmware czy VirtualBox? Znam te nazwy tylko ze słyszenia, nie używałem jeszcze ani jednego.

Vagrant jest to oskryptowany VirtualBox. Dzięki niemu, kilkoma poleceniami stworzysz i skonfigurujesz sobie nową instancję maszyny wirtualnej z wcześniej przygotowanego przez kogoś obrazu. Możesz również wspomagać się puppet-em lub chef-em. Do kompletu możesz spojrzeć sobie na projekt veewee.

Vmware (na Windowsy to chyba tylko VMware Server), VirtualBox lub VirtualPC też da radę, tylko będziesz musiał ręcznie wszystko konfigurować za pierwszym razem (chyba, że będziesz mieć gotowe obrazy). Osobiście polecam suchego vmware/virtualbox/virtualpc.

Jeśli nie lubisz linuksa na desktopie (ja też nie lubię), a zamierzasz na dłużej zaprzyjaźnić się z rubym/ror i nie chcesz bawić się w virtualki to rozejrzyj się za makiem.

[quote=OwiecPL]@Ofca

Miałem gentoo (jako pierwszy system) i windowsa przez jakieś pewnie 7 lat i to nie ma większego sensu :slight_smile: W końcu zrezygnowałem z linuksa bo wiecznie były problemy ze sterownikami do sprzętu (szczególnie nowego) itd. System ma służyć w końcu do pracy, a nie do tego aby tracić czas na zajmowanie się nim. Ewentualnie mógłbym sobie postawić serwerek tylko z konsolą ale robienie tego specjalnie dla RoR w tym momencie jeszcze średnio mi się uśmiecha.[/quote]
A tam, gentoo. Chcesz poprogramować, szkoda czasu na konfigurację, lepiej ściągnąć ubuntu, zainstalować w chwilę i po problemie : )

@swistak35 Zgadzam się, czysto produkcyjnie do wytwarzania oprogramowania są lepsze dystrybucje niż gentoo.

@y3ti

Zarzuciłeś tyloma nazwami i konfiguracjami, że już nic nie wiem :slight_smile: Ale najważniejsze, że zrozumiałem czym jest Vagrant. Raczej wolę wariant, w którym nie muszę się tym zajmować bo chce to tylko dla RoR bez żadnych udziwnień.
No mac dobra sprawa ale nie mogę przeboleć zawyżonej ceny dla europy. Na ten moment trochę szkoda mi kasy specjalnie dla RoR ale może za jakiś czas.

@OwiecPL: vagrant do prawidłowego działania potrzebuje rubego, rubygems itp. Do tego nie masz domyślnie komendy ssh w windowsie. Osobiście nigdy nie odpalałem vagranta na windowsach, ale podejrzewam, że jest trochę zabawy - choć mam nadzieję, że się mylę :wink:

Moim zdaniem na początek najprościej będzie ściągnąć sobie VirtualBox, zainstalować, stworzyć nową maszynę wirtualną i zainstalować oraz skonfigurować ubuntu (ponieważ ubunciaki mają chyba najlepsze wsparcie, jeśli chodzi o ruby, rails oraz resztę gemów). Jeśli będziesz mieć jakieś pytania lub problemy to pytaj śmiało.

@OwiecPL: no miałem na myśli bardziej user-friendly dystrybucje - chociażby Ubuntu wspomniane przez Świstaka czy inny Mint :wink:

Jeśli już koniecznie musisz, to zaopatrz się w http://railsinstaller.com/ - wszystko jest zautomatyzowane. Ale generalnie odradzam pracę w środowisku rails na windowsie.

Ogólnie Railsy (może ogólnie całe Ruby) strasznie wolno wykonują operacje na Windowsie :confused: odpalenie “rails s” powoduje o wiele dłuższe czekanie niż na tej samej maszynie na Linuxie.

Wybaczcie, że dopiero teraz kontynuuję temat ale musiałem przez ostatni czas zająć się czymś innym i dopiero powracam do zadania.

Podstawowa rzecz jakiej potrzebuje na ten moment to możliwość edycji za pomocą oprogramowania pod windowsem plików, które byłyby na symulatorze linuksa tak abym za każdym razem nie musiał się bawić w synchronizację plików. Czy któraś z podanych propozycji mi to umożliwia?

Jak Wy na co dzień pracujecie z RoR? Własny oddzielny serwer? Serwer udostępniany przez hosting, np. coś jak heroku? MAC? Linux? Pytam, ponieważ nie chcę odkrywać koła na nowo.

Właściwie wszyscy programiści RoR jakich znam pracują na linuxie lub mac osx.

A pracuje ktoś w takiej konfiguracji jak poniżej?
Serwer z linuksem i RoR.
Do pisania kodu windows na oddzielnym komputerze. Edycja plików programem typu RubyMine w taki sposób, że edytuje się pliki pośrednio na serwerze poprzez jakiś katalog sieciowy czy coś. Chciałbym tak pracować w sieci lokalnej oraz przez VPN kiedy będę w innym biurze. Sprawdza się komuś taka konfiguracja? Bo tak na pierwszy rzut oka wszystko powinno być ok.

[quote=OwiecPL]A pracuje ktoś w takiej konfiguracji jak poniżej?
Serwer z linuksem i RoR.
Do pisania kodu windows na oddzielnym komputerze. Edycja plików programem typu RubyMine w taki sposób, że edytuje się pliki pośrednio na serwerze poprzez jakiś katalog sieciowy czy coś. Chciałbym tak pracować w sieci lokalnej oraz przez VPN kiedy będę w innym biurze. Sprawdza się komuś taka konfiguracja? Bo tak na pierwszy rzut oka wszystko powinno być ok.[/quote]
Nie sądzę, żeby ktoś Ci odpisał coś sensownego. Jeśli rzeczywiście nie chcesz wymyślać koła od nowa, to zainstaluj ubuntu, bo inaczej będziesz skazany na takie dziwne konfiguracje, które zawsze będą pokutowały tym, że nie osiągniesz takiej szybkości developmentu jak na osx / linux.

To co opisujesz powinno zadziałać, ale odpalanie developmentu na innym kompie bardzo Cię spowolni. Możesz napisać co konkretnie powstrzymuje Cię przed najprostszym rozwiązaniem t.j. instalacja ubuntu, która w porywach powinna zająć pół godziny?

[quote=OwiecPL]A pracuje ktoś w takiej konfiguracji jak poniżej?
Serwer z linuksem i RoR.
Do pisania kodu windows na oddzielnym komputerze. Edycja plików programem typu RubyMine w taki sposób, że edytuje się pliki pośrednio na serwerze poprzez jakiś katalog sieciowy czy coś. Chciałbym tak pracować w sieci lokalnej oraz przez VPN kiedy będę w innym biurze. Sprawdza się komuś taka konfiguracja? Bo tak na pierwszy rzut oka wszystko powinno być ok.[/quote]
W teorii będzie działać, w praktyce będzie to pewnie uciążliwe :slight_smile:

Wojtek Zieliński kiedyś duzo pisał o tym jak używa windowsa z racji tego, że jest też grafikiem: http://rubyonrails.pl/forum/p11985-2009-08-14-21%3A38%3A32#p11985

Tylko, że później napisał też: http://rubyonrails.pl/forum/p24998-2011-02-24-10%3A50%3A31#p24998 :wink:

Nie chcę tutaj rozpętać kolejnego flamewara, ale prawda jest taka, że jeżeli chcesz się zająć programowaniem w railsach na poważnie, to prędzej czy później i tak podejmiesz pewnie decyzję przerzucenia się całkowicie na linuxa lub mac osxa. Pisałeś, że miałeś gentoo, więc podstawy już masz. Zgadzam się z tym, że czasami linuxy potrafią być frustrujące jak coś padnie i trzeba się tym zająć, ale jeżeli będziesz używać ubuntu, to nie powinieneś mieć zbyt dużo problemów.

Mnie to trochę boli, że windows jest tak słabo obsługiwany, bo to robi rubiemu kiepski PR wśród początkujących. Jeżeli człowiek jako pierwszą rzecz słyszy: “musisz zmienić system”, to nie zdziwiłbym się gdyby taka osoba stwierdziła, że nie chce się pakować w technologię, która tylko udaje przenośność - udaje, bo jak się czyta o zaletach rubiego, to można łatwo znaleźć informację o tym, że działa nie tylko na linuxie, co niby jest prawdą, ale w praktyce windows nie jest obywatelem pierwszej kategorii.

Z drugiej strony ciężko winić o to programistów, którzy rozwijają rubiego, railsy i najpopularniejsze gemy - z reguły robi się to w czasie wolnym, a najszybciej rozwiązuje się problemy, które nam przeszkadzają. I tutaj koło się zamyka, bo bezpośrednio nie przeszkadzają nam problemy z windowsem. Duże znaczenie ma też pewnie fakt, że w USA, gdzie oprócz japonii ruby zaczął stawać się popularny w pierwszej kolejności, jeżeli ktoś nie lubi windowsa, to po prostu kupuje maca. Tam też jest to droższa impreza niż PC, ale ceny elektroniki są dużo niższe jeżeli porównamy je do średnich pensji.

Problem mógłby prawdopodobnie zostać rozwiązany, gdyby jakaś firma (I’m looking at you MS :wink: ), sponsorowała rozwój rubiego pod windowsem, ale jest mało firm, które mają w tym bezpośredni interes, a żeby coś się ruszyło potrzeba pewnie ze 2 czy 3 osoby.

Jednym słowem możesz próbować działać na maszynie wirtualnej, możesz próbować podpinać się do serwera i wreszcie mógłbyś próbować programować na windowsie, ale i tak na 99% przesiądziesz się w pewnym momencie.

I jeszcze kilka słów w odniesieniu do pierwszego posta - jeżeli dopiero się uczysz, to możesz również spróbować powrócić jeszcze do windowsa. Możesz oczywiście natrafić na problemy, ale z tego co napisałeś wynika, że trochę za ambitnie do sprawy podszedłeś (np. ten nginx). Ja bym spróbował zacząć od http://railsinstaller.org/ i wtedy większe problemy będziesz miał głównie z gemami, które niezbyt dobrze radzą sobie z windowsem (głównie chodzi o takie, które korzystają z natywnego kodu lub natywnych bibliotek, np. rmagick)

Nie słuchaj Sarniaka. Spokojnie możesz tak robić, znam sporo osób, które pracowały bez problemów w ten sposób: wszystko pod Windowsem, a tylko serwer na linuksie (wirtualnym lub zdalnym).

I zostały już na takiej konfiguracji? Ja np. nie twierdzę, że się nie da, ale nie znam nikogo, kto by nie przerzucił się później, a jeżeli tak to wygląda, to może lepiej zaoszczędzić czas i zrobić to od razu. Chyba, że te osoby rzeczywiście tak programują nawet po dłuższym czasie :slight_smile: