Ograniczenia w uruchamianiu Ruby / Rails w systemie Windows

81

W dokumentacji instalacyjnej dla RoR wspomina się, że istnieje wiele ograniczeń w uruchamianiu Ruby on Rails w systemie Windows, aw niektórych przypadkach całe biblioteki nie działają.

Jak złe są te ograniczenia, czy powinienem zawsze domyślnie kodować / uruchamiać RoR w systemie Linux i czy oczekuje się, że Iron Ruby naprawi te ograniczenia, czy też są one rdzeniem samego systemu operacyjnego?

EDYTUJ Dziękuję za odpowiedź dotyczącą instalacji i uruchamiania na Linuksie, ale naprawdę próbuję zrozumieć ograniczenia funkcjonalności, o których mowa w dokumentacji instalacji, i niedziałających bibliotekach - próbuję znaleźć link do komentarza, ale tak było przywoływane w instalacji, przeczytaj mnie, kiedy zainstalowałem pakiet msi

EDYCJA Dziękuję za ostatnie odniesienia do IronRuby, z pewnością jest to projekt do obejrzenia, a ponieważ jest to oczywiście język .NET, będzie bezcenny, jeśli spełni obietnice. Ostatecznie jednak w moim przypadku po prostu ugryzłem kulę i zainstalowałem serwer Ubuntu.

<bias> Powinienem był to zrobić lata temu </bias>

johnc
źródło
Nie ma żadnych ograniczeń. Dla każdego problemu istnieją obejścia lub alternatywy.
Chloe,

Odpowiedzi:

101

Oto przegląd aktualnych problemów z Railsami w systemie Windows:

  • Ruby i Railsy działają wolniej w systemie Windows niż w systemach uniksopodobnych.
  • Kilka klejnotów i bibliotek nie działa w systemie Windows.
  • Niektóre systemy Unix nie są dostępne w systemie Windows ( przykłady ).
  • Społeczność działa głównie na Macu lub Linuksie ( jest to szczególnie trudne do zniesienia; nikt nie chce być sam na jednej wyspie, gdy reszta plemienia imprezuje, dobrze się bawi i świetnie dogaduje na drugiej wyspie. Społeczność). jest ważne. Wygląda na to, że większość programistów Windows, którzy zaczynają od Railsów, szybko przechodzi na Maca lub Linuksa. Jednak mała społeczność użytkowników Windows Ruby, którzy trwają, jest niezwykle przyjazna, oddana i kompetentna - przywitaj się . )

Zwróć uwagę, że wiele z poniższych rad jest już nieaktualnych z powodu wspaniałych wysiłków zespołu RubyInstaller w zakresie zapewnienia stabilności, zgodności i wydajności Ruby w systemie Windows. Nie muszę już używać VirtualBox, co wiele mówi o tym, jak daleko zaszedł Ruby w systemie Windows.

Jeśli chcesz uzyskać więcej szczegółów technicznych, przeczytaj poniżej. :

Cytat z tego ostatniego to:

AkitaOnRails: Najbardziej oczywistą rzeczą jest to, że jakikolwiek klejnot z rozszerzeniami C bez odpowiednich plików binarnych dla systemu Windows zawiedzie. Próba wykonania poleceń powłoki zakończy się niepowodzeniem, podobnie jak RubyInline. Co jeszcze?

Luis Lavena: Hehe, to tylko wierzchołek góry lodowej

Powiedziawszy to wszystko, nie uważam, aby programowanie z Railsami w systemie Windows było zbyt bolesne. Korzystanie z Rubiego to w większości przyjemność. Unikałbym InstantRails, ponieważ szczerze mówiąc, równie łatwo jest poprawnie zainstalować Rubiego za pomocą instalatora jednym kliknięciem, a następnie wykonać plik gem install rails. Jeśli potrzebujesz Apache i MySQL, WAMP to dobry wybór, chociaż nawet one nie są wymagane, jeśli po prostu trzymasz się Mongrel i SQLite.

To, do czego ostatnio podjąłem się, to uruchomienie VirtualBox z wystąpieniem Ubuntu Server, który ściśle odzwierciedla serwer wdrażania. Mapuję dysk sieciowy na serwer Ubuntu, a następnie edytuję i uruchamiam kod bezpośrednio na maszynie wirtualnej. Nie zużywa prawie żadnej pamięci (obecnie używa ~ 43 MB; w przeciwieństwie do Firefoksa, który używa ~ 230 MB), a Railsy faktycznie działają lepiej niż uruchamianie go natywnie w systemie Windows. Dodatkowo możesz eksperymentować ze swoim wirtualnym serwerem we względnym bezpieczeństwie. To naprawdę fajna konfiguracja, bardzo ją polecam.

Na koniec kilka blogów Ruby / Rails skierowanych do użytkowników Windows:

Charles Roper
źródło
2
Cóż za świetna, kompletna odpowiedź i co za przygnębiająca rzeczywistość ... ale myślę, że dlatego spędziłem wiele godzin na uruchamianiu mojego VirtualBox w systemie Windows compileyouidontevenknowyou.blogspot.com/2008/12/… . Dziękuję za odpowiedź: użyję mojego VirtualBox.
Dan Rosenstark
4
To nie jest tak przygnębiające, jak się wydaje; z pewnością nie tak przygnębiające jak konieczność korzystania z języka Java lub .NET. Żartuję, tylko żartuję. ;)
Charles Roper
1
Fajnie, Charles, nadal jestem zaskoczony, jak zależne od platformy jesteśmy jeszcze ... Kolejny 50 lat, ja figura ...
Dan Rosenstark
1
Musiałem ponownie zainstalować system Windows i nie chciałem ponownie uruchomić Railsów na moim komputerze z systemem Windows. Tak zainstalowany VirtualBox, stworzył virt Ubuntu Server konfiguracja udostępnione foldery tak jak mogę uzyskać dostępu do kodu Rails zainstalowany Ruby i Rails, przekazywanie ustawienia portu w VirtualBox, dzięki czemu można uzyskać dostęp do aplikacji Rails z systemu Windows
Guy C
1
Programuję z Windowsa, podczas gdy railsy działają na maszynie wirtualnej Ubunutu. W rzeczywistości nie „używam” maszyny wirtualnej, ponieważ używam SSH i folderów współdzielonych do kontrolowania wszystkiego z systemu Windows. Oto moja dobrze udokumentowana konfiguracja: chetane.com/2012/09/11/...
Chetane
6

Zauważyłem, że stworzenie i uruchomienie środowiska programistycznego z Instant Rails w systemie Windows jest naprawdę proste. Zwłaszcza gdy używasz Netbeans lub Radrails jako IDE.

Mniej niż 10 minut pracy.

Co było problemem dla tych, którzy walczyli?

RichH
źródło
5

Od kilku lat rozwijam Rails na komputerze z systemem Windows i nie miałem żadnych problemów z instalacją, kiedy zaczynałem. Jednak ostatnio przebudowałem moją maszynę i zmagałem się z działającym instalatorem One-Click Ruby i najnowszą wersją Gems. Więc tego próbowałem.

Opcja 1: Uruchom maszynę wirtualną z systemem Linux

Byłem naprawdę pod wrażeniem pomysłu Charlesa Ropera, aby uruchomić Railsy na maszynie wirtualnej z Linuksem i jest to droga, którą początkowo wybrałem. Wszystko poszło całkiem gładko i dokumentowałem to na budanters.blogspot.com . Jednak miałem problemy z dostępem do serwera MySQL (w Linux Virtual Machine) z hosta Windows.

Opcja 2: użyj jRuby

Niedawno zainstalowałem pakiet NetBeans 6.5 Ruby dla systemu Windows i nie zdając sobie z tego sprawy, instaluje to JRuby i klejnoty Rails. IDE ma interfejs użytkownika do instalacji Gems, a teraz mam kopię zapasową i uruchomioną moją starą aplikację w moim środowisku programistycznym.

Aktualizacja listopad 2009

Teraz używam Netbeans 6.7 na Windowsie i w sumie jestem z niego bardzo zadowolony. Jedynymi wadami jest to, że instaluje JRuby 1.2 i musiałem ręcznie zainstalować JRuby 1.3, aby coś działało (nie pamiętam co) i nie byłem w stanie uruchomić wdrożenia działającego z Capistrano lub Vlad the Deployer. Vlad używa Open4, który nie działa z JRuby.

Aktualizacja maj 2010

Netbeans 6.8 jest dostarczany z JRuby 1.4, więc nie musisz już majstrować przy ręcznej instalacji JRuby 1.3. Wygląda również na to, że w JRuby 1.5 Open4 będzie teraz działać, co oznacza, że ​​Vlad może zacząć działać.

Guy C.
źródło
1
Chciałem tylko dodać, że dobrą opcją do uruchomienia maszyny wirtualnej Ubuntu jest użycie Vagrant. Tworzysz w systemie Windows, a Twoje pliki są współdzielone z maszyną wirtualną Ubuntu, możesz następnie „vagrant ssh” na swojej maszynie wirtualnej i uruchamiać tam polecenia, takie jak „serwer
railsowy
5

Nikt jeszcze nie wspomniał o Bitnami RubyStack ? Używam go od lat razem z RadRails. Obejmuje Apache, MySQL / Postgre, phpmyadmin, git itp. Opcjonalnie Ruby 1.9.2 / Rails 3.0b. Możesz także uruchomić wersję RubyStack dla Ubuntu na maszynie wirtualnej, ale jeszcze tego nie próbowałem.

chi
źródło
3

Osobiście uważam, że uruchomienie Ruby + Rails w systemie Windows to bułka z masłem. Od pobrania do przeglądania mojej pierwszej aplikacji „HelloWorld” zajęło mi całe 15 minut. Nawet nie zawracałem sobie głowy żadną z rzeczy InstantRails.

Następnie nie mogę powiedzieć, że napotkałem jakiekolwiek zgłoszone problemy z szybkością lub problemy z klejnotami w systemie Windows.

Ci faceci również robią fajny dodatek dla deweloperów Rubiego dla Visual Studio:

http://www.sapphiresteel.com/

Kev
źródło
Jeśli nigdy nie korzystałeś z Railsów na OS X lub pod * nix, prawdopodobnie nie zauważysz różnicy prędkości. Różnica staje się widoczna, gdy zestawisz te dwa elementy.
Charles Roper
Być może, ale chodzi mi o to, że nie było nic szczególnie powolnego, co sprawiło, że pomyślałem „do diabła, to biegnie jak pies”.
Kev,
Jak zainstalowałeś Ruby + Ruby on Rails w systemie Windows?
2

Kiedy ostatnio majstrowałem przy Railsach w systemie Windows, użyłem Instant Rails i stwierdziłem, że jest to dość bolesny proces, z wyjątkiem braku aktualizacji Instant Rails (co, patrząc z wyglądu strony internetowej, wciąż stanowi mały problem , ponieważ natychmiastowe Railsy 2.0 używają ROR 2.0, podczas gdy najnowsza wersja to 2.1). Możesz również spojrzeć na odpowiedzi na to pytanie, ponieważ wspomina o wielu innych sposobach łatwego uruchomienia RoR w systemie Windows.

Paul Wicks
źródło
Nie jest trudno zainstalować "gem update rails" Rails 2.1
RichH
@Paul Wicks Czy naprawdę masz na myśli bolesne? @RichH Wydaje mi się, że potrzebowałem także "systemu aktualizacji klejnotów" (zrobiłem wszystko, co powiedzieli pragmatyczni programiści w książce Ruby on Rails w wersji beta), ale zgadzam się, że aktualizacja nie jest trudna
Steve Bosman
1

Masz opcje systemu Windows umożliwiające skonfigurowanie i zainstalowanie wszystkiego, takie jak Instantrails :

Jednak moje osobiste doświadczenie z próbami uruchomienia współpracowników w systemie Windows jest takie, że jest to dość bolesne doświadczenie. Powinieneś być w stanie większość (jeśli nie wszystko) biegać, ale bądź przygotowany na spędzenie trochę czasu na grzebaniu (i frustracji).

YMMV

Prawdopodobnie poleciłbym Linuksa lub Maca do tworzenia szyn (ale jestem nieco stronniczy w stosunku do Windows, więc być może będziesz musiał wziąć to z przymrużeniem oka).

Dave Smylie
źródło
1

Opcją, jeśli utkniesz w systemie Windows, jest posiadanie serwerów wirtualnych z systemem Linux / BSD / what-have-you.

Rozwiązuje również wiele innych problemów (umożliwiając łatwe wypróbowanie wielu konfiguracji serwera itp.).

Neall
źródło
1

Jeśli nie możesz uciec od systemu Windows, użyj VMware i uruchom jakąś formę Linuksa (popularne jest ubuntu). Twoim ograniczeniem nr 1 będą skompilowane klejnoty, które nie grają dobrze w systemie Windows.

Większość samouczków zakłada, że ​​jesteś na jakiejś formie * nix, gdy zaczniesz się łamać poza podstawowym rusztowaniem, poczujesz ból. Manipulowanie obrazami, wyszukiwanie pełnotekstowe, a nawet niektóre adaptery db będą działać tylko na * nix lub będą trudne do skonfigurowania.

Większość hostów internetowych również działa pod Linuksem, dobrze jest programować na tej samej platformie, co Twój host, aby uniknąć problemów z wdrażaniem.

MatthewFord
źródło
1

Ogólnie rzecz biorąc, wydajność Railsów jest problemem w systemie Windows.

Jeśli chodzi o konfigurację wdrożenia, możesz uruchomić Rails w FCGI lub użyć połączenia mongrel (i skonfigurować Apache lub IIS jako proxy). mod_rails ( http://www.modrails.com ) jest obecnie najlepszą opcją wdrażania dla Railsów, ale nie działa w systemie Windows.

Możesz znaleźć więcej szczęścia używając JRuby na Windows do uruchamiania Railsów w dowolnym środowisku JVM (tomcat, serwer J2EE, itp.).

IronRuby nie może jeszcze uruchamiać Railsów w środowisku produkcyjnym, ale ostatecznie będzie miało na celu uruchomienie Railsów w dowolnym środowisku ASP.NET (IIS).

Jimmy Schementi
źródło
1

Możesz po prostu użyć Cygwina i jego wersji Rubiego. To eliminuje argumenty o tym, że skompilowane klejnoty nie działają w systemie Windows - w ten sposób udało mi się skompilować wiele klejnotów.


źródło
1

Największym ograniczeniem działania w systemie Windows jest to, że wiele rzeczy działa bardzo wolno.

Zobacz ten wątek . Do dyskusji.

Proste czynności, takie jak „skrypt / konsola” i uruchamianie zadań rake, będą trwać 5 razy dłużej w systemie Windows niż w systemie Linux lub Mac.

Inne ograniczenia to:

  • Brak IE6 w systemie Vista.
  • BackgroundRB i wiele innych klejnotów opartych na c nie działa w systemie Windows.
  • Brak pasażera
Sam Saffron
źródło
1

Sam nie jestem programistą szyn, ale pomyślałem, że to może być interesujące. Microsoft wydał IronRuby 1.0, wersję Ruby działającą na platformie .NET, która najwyraźniej działa 4x szybciej niż oficjalna implementacja Railsów w systemie Windows.

http://www.drdobbs.com/open-source/224600662

Oficjalna strona http://ironruby.codeplex.com/

Doobi
źródło
1
Wygląda na to, że Ironruby śpi już od ponad roku.
powrót do
0

Aby przyspieszyć, możesz wypróbować moją cholewkę do ładowania speedera (pomaga szynom działać szybciej w drzemce): https://github.com/rdp/faster_require Również do kasy spork, który działa w drzemce

rogerdpack
źródło
0

Alternatywą dla RailsIntaller jest RailsFTW . Ruby & Rails są bardziej zaktualizowane.

zero
źródło