Probelmy z instalacją gemów na windows XP

Witam!

Mam problem z zainstalowaniem niektórych gemów na komputerze domowym z windowsem XP.

Chodzi np o passenger

Po próbie zainstalowania pojawia sie komunikat że nazwa nmake jest nierozpoznawalna.

Czy ktos miał taki problem ?

Albo wie o co chodzi i jak to rozwiązać?

Jest to problem podobny do tego na ponizszym wątku:

ale próba zainstalowania starszej wersji gema tez nie zadziałała

Zainstalowałem Nmake ze strony Microsoftu ale problem nie znikał tylko zmienił się komunikat błędu

teraz pisze "Nazwa cl nie jest rozpoznawalna jako polecenie wewnętrzne…

Czy ktoś miał podobne probelmy przy instalacji gemów na windowsie?

Jak to obejsć?

Z góry dzięki za pomoc

Maszyna wirtualna z jakimś linuxem. Serio.

Tak jak tjeden napisał.

Mam w na swoich slajdach wprowadzających do Rubiego stwierdzenie “wieloplatwormowy”, ale mówię studentom, że to nieprawda, przynajmniej przy typowej interpretacji (należy zauważyć, że wieloplatformowość może również znaczyć wiele implementacji dla różnych środowisk, ale zazwyczaj znaczy jedną wspólną implementację, działającą na wielu platformach).

Ruby (a raczej jego wzorcowa implementacja) jest wieloplatformowy. Problem tu przytoczony jest wynikiem tego, że autorzy rozszerzeń pisanych w C albo nie dbają w ogóle o możliwość kompilacji pod windowsem albo nie dostarczają wersji gema skompilowanej pod tę platformę (nic dziwnego bo mało osób wie jak to robić). A ponieważ większość programistów Rubiego pracuje pod uniksopodobnym systemem to mało kto o to dba (ale dla przykładu podajmy mongrel, który działa pod windowsem).

witam

tjeden dzięki za pomysł - właśnie idę w tym kierunku -

  • czę się virtualboxa z zainstalowanym ubuntu

Okazało się że nawet na oficjalnej stronie passengera jest napisane że nie ma wersji pod windows :confused:
(ale wcześniej tego nie doczytałem)

Jasne, wiadomo, że mogę odpalić prosty program bez zależności również na Windows. Ale przecież nie o to chodzi. Gdyby nie stanowiło to problemu, to przecież nie pisalibyśmy wszystkim, że mają się przesiąść na unikospodobny system. Więc w praktyce Ruby (w przeciwieństwie do np. Javy) nie jest wieloplatformowy.

Może zamiast polecać wszystkim przerzucenie się na linuxa zaczniemy polecać jruby jako alternatywę? Ewentualnie ironruby, ale to może być gorszy pomysł, bo o ile użytkowników jrubiego można spotkać na tym forum, to z ironruby nie jest to takie pewne :wink:

Po przesiadce na linuxa większość osób i tak pewnie wyjdzie na plus, ale wiele osób może to odstraszać.

Jruby ma podobne problemy jesli chodI o biblioteki jak MRI na windows…

ja dzięki RoR przesiadłem sie na Ubuntu, nie bolało, nie narzekam :slight_smile: Windows służy teraz głównie jako podkładka pod Photoshopa

Jasne, wiadomo, że mogę odpalić prosty program bez zależności również na Windows. Ale przecież nie o to chodzi. Gdyby nie stanowiło to problemu, to przecież nie pisalibyśmy wszystkim, że mają się przesiąść na unikospodobny system. Więc w praktyce Ruby (w przeciwieństwie do np. Javy) nie jest wieloplatformowy.[/quote]
Dlaczego uważasz, że java jest bardziej wieloplatformowa niż ruby? Program napisane w czystym rubym są prawie tak samo przenośne jak programy napisane w czystej javie. Twój przykład tyczy się rozszerzeń w C, a to trochę inna bajka. Java też przecież umożliwia pisania rozszerzeń w C (JNI, http://en.wikipedia.org/wiki/Java_Native_Interface) i użycie tego mechanizmu oznacza to samo co w przypadku Rubiego - brak przenośności (za wiki “# an application that relies on JNI loses the platform portability Java offers (a workaround is to write a separate implementation of JNI code for each platform and have Java detect the operating system and load the correct one at runtime);”). Nie porównujmy jabłek z gruszkami.

Heh, u mnie dokładnie to samo.

Często piszecie, że programiści PHP powinni tak długo pisać w PHP, aż im się to obrzydzi. Tak samo jest z programowaniem w Ruby pod Windowsem.

Ej Radarek, no nie przesadzaj. Naprawdę nie widzisz gdzie tutaj idzie linia argumentu? Weź pierwszą idiotyczną aplikację webową, typu CMS z obrazkami. Prosty feature - miniaturki obrazków. Czy widziałeś to zaimplementowane w czystym Rubim? Ja nie widziałem, wszędzie korzysta się z RMagicka, ImageScience lub MiniMagicka. Oczywiście wszystkie z nich wymagają biblioteki napisanej w C.
Ten sam feature w Javie - choć nigdy tego nie robiłem, to daję głowę, że jest kilka faktycznie wykorzystywanych implementacji, napisanych w czystej Javie, chociażby coś ze Swinga.
Zatem dla takiego prostego featura - w Rubim korzystamy (nie musimy, ale w praktyce to robimy) z nie-tak-bardzo-przenośnej biblioteki napisanej w C, natomiast w Javie nie musimy (albo inaczej - w praktyce tego nie robimy) odwoływać się do JNI.
Podsumowując - w realnych zastosowaniach w Rubim będziemy korzystać z bibliotek napisanych w C, natomiast w drugim przypadku zazwyczaj jest już biblioteka (najczęściej darmowa) napisana w czystej Javie, która faktycznie możemy wykorzystać.

Zgadzam się z Drogusem, że JRuby to najlepsza wieloplatformowa alternatywa dla MRI. Sam bym z niej na co-dzień korzystał, gdyby nie fakt, że mam sporo kodu napisanego w C, którego nie chcę (po prostu nie mam czasu) portować do Javy (w szczególności narzędzia z zakresu NLP).

Radarek, potrafisz podrzucić przykład biblioteki javowej korzystającej z JNI? Bo jak babcię kocham jeszcze na taką nie trafiłem, a kilka jarów już w swojej kilkuletniej przygodzie (taaa…) przeczołgałem.

Ej Radarek, no nie przesadzaj. Naprawdę nie widzisz gdzie tutaj idzie linia argumentu? Weź pierwszą idiotyczną aplikację webową, typu CMS z obrazkami. Prosty feature - miniaturki obrazków. Czy widziałeś to zaimplementowane w czystym Rubim? Ja nie widziałem, wszędzie korzysta się z RMagicka, ImageScience lub MiniMagicka.[/quote]
Nie jestem w stanie pojąć jednego. Jak osoby techniczne, które powinny się cechować niesamowitą dokładnością, mieszają tak pojęcia. To napisz, że biblioteki pisane z użyciem C w Rubym są często nieprzenośne (z przytoczonych przez Ciebie bibliotek RMagick jak najbardziej działa pod windowsem), ale nie pisz, że Ruby nie jest wieloplatformowy. Bo to jednak różnica. Sam zaczynałem z rubym pod windowsem i chociaż wiem, że jest czasem ciężko to jednak rzadko kiedy wynikało to z niedostępności jakiegoś gema. Jeszcze rok temu, poniekąd zmuszony sytuacją, zaczynałem pracę w adtaily i przez 2-3 miesiące pracowałem pod windowsem. Żadnym problemów z gemami nie napotkałem, a aplikacja już wtedy mała nie była (masa gemów i pluginów). Oczywiście nikomu nie życzę pracy z rubym pod tym systemem, ale jeśli ktoś musi (bo przyzwyczajenie, bo nie ma czasu uczyć się linuksa, bo coś innego) to nie widzę przeszkód by to robić.

Oczywiście. https://jogl.dev.java.net/ Dostarczone są binarki dla windowsa i linuksa więc działa pod tymi systemami. Tak samo jak powiedzmy taki mongrel, który dostarcza wersje zbudowane pod windowsa i do zbudowania pod linuksem. To, że coś jest napisane jako rozszerzenie w C nie oznacza, że nie może działać tu i tu.

Oj kaman, co za akademicka dyskusja. Język bez bibliotek to zabawka, a nie język. Ja też zaczynałem z Ruby pod Windows, ale nie jest wspieranych tyle gemów, których w końcu trzeba zacząć używać (Capistrano), że to wuj w tomacie a nie wieloplatformowość jest.

Co mi się bardzo podoba, bo zasadniczo aplikację do pewnego poziomu można na Windows zrobić, w stopniu pozwalającym bardziej niż zakochać się w technologii, a potem nie ma zmiłuj – trzeba zmigrować na sensowny system :smiley:

:slight_smile: No to żeś mi pojechał. Gdybym pisał artykuł do IEEE Transactions to bym się trzy razy zastanowił co to znaczy “wieloplatformowość”. Ale dyskutujemy na forum. Twoje rozważania są czysto teoretyczne - jasne w Rubim teoretycznie można pisać na wiele platform. I jeśli mamy się trzymać tego co teoretycznie znaczy wieloplatformowość, to jasne - masz rację, Rubi jest wieloplatformowy.

Ale w praktyce nie jest, bo jak pokazuje ten i chyba z tuzin innych wątków na tym forum - jeśli chcesz pisać w Rubim, robić prawdziwy development, to musisz albo przesiąść się na uniksowy system, albo skorzystać z JRubiego, ewentulanie MacRubiego lub IronRubiego (no chyba, że tak nie uważasz, ale wtedy nie ma o czym gadać, proponuję zatem, żeby wszystkie osoby, które mają problemy pod Windą zgłaszać do Ciebie ;]).

Gdyby było inaczej - tak jak piszesz, że RMagick jest też dla Windows, bo to przecież zwykła bibliotek w C itd, itp. to chyba musieliśmy wszyscy coś przeoczyć. (Wiem, że jest, bo go nawet instalowałem i mi zadziałał, ale gdybym pisał to w Javie, to w 99/100 przypadków nie musiałbym niczego doinstalowywać - zapakowałbym w jary i po sprawie).

Tak jak to pięknie ktoś ujął w słowa - różnica między teorią, a praktyką jest większa w praktyce niż w teorii. I w myśl tej zasady uważam, że w praktyce Rubi nie jest wieloplatformowy.

EDIT
Żeby Ci trochę oddać sprawę, to przypomnę, że np. Eclipse ma natywne rozszerzenia i dlatego nie ma jednej wersji dla Windows-a, Linuksa i innych. Ale już NetBeans jest w wersji “Os Independent ZIP” :slight_smile: Co nie zmienia faktu, że Eclipse jest jednym z lepszych, wieloplatformowych środowisk developerskich.

EDIT
Ostatnio moi studenci próbowali sportować jedną moją bibliotekę pod Windę. I pierwsze co musieli poprawić to Rakefile-a". Oczywiście, chodziło o komendy typu “sudo” itp… ale gdyby to był Ant, to nie musieliby robić czegoś takiego. Co oczywiście nie jest dla mnie wielkim argumentem na rzecz Anta :slight_smile: