Hạn chế khi chạy Ruby / Rails trên windows


81

Trong tài liệu cài đặt RoR có đề cập rằng có nhiều hạn chế để chạy Ruby on Rails trên Windows và trong một số trường hợp, toàn bộ thư viện không hoạt động.

Những hạn chế này tệ đến mức nào, liệu tôi có nên mặc định luôn mặc định cho Linux viết mã / chạy RoR và Iron Ruby có mong muốn khắc phục những hạn chế này không hay chúng là cốt lõi của chính hệ điều hành?

CHỈNH SỬA Cảm ơn câu trả lời xung quanh việc cài đặt và chạy trên Linux, nhưng tôi thực sự đang cố gắng hiểu những hạn chế về chức năng như được tham chiếu trong tài liệu cài đặt và các thư viện không hoạt động - tôi đang cố gắng tìm một liên kết đến nhận xét, nhưng nó đã được tham chiếu trong một cài đặt, hãy đọc tôi khi tôi cài đặt gói msi, tôi nghĩ

CHỈNH SỬA Cảm ơn các tài liệu tham khảo về IronRuby gần đây, đây chắc chắn là một dự án đáng xem, và rõ ràng, nó là một ngôn ngữ .NET, nó sẽ là vô giá nếu nó thực hiện đúng với những lời hứa. Tuy nhiên, cuối cùng, trong trường hợp của tôi, tôi chỉ cần cắn viên đạn và cài đặt một máy chủ Ubuntu.

<bias> Lẽ ra tôi phải làm điều đó nhiều năm trước </bias>


Không có giới hạn. Có những giải pháp thay thế hoặc lựa chọn thay thế cho mỗi vấn đề.
Chloe

Câu trả lời:


101

Dưới đây là tổng quan về các sự cố hiện tại với Rails trên Windows:

  • Ruby và Rails chạy chậm hơn trên Windows so với hệ điều hành giống Unix.
  • Một số gem và thư viện không hoạt động trên Windows.
  • Một số Unix-isms không khả dụng trên Windows ( ví dụ ).
  • Cộng đồng này chủ yếu sử dụng Mac hoặc Linux ( Đây là một cộng đồng đặc biệt khó giải quyết; không ai muốn ở một mình trên một hòn đảo khi những người còn lại trong bộ lạc đang tiệc tùng, vui vẻ và hòa đồng với nhau trên hòn đảo khác. Cộng đồng rất quan trọng. Có vẻ như hầu hết các nhà phát triển Windows bắt đầu với Rails đều nhanh chóng chuyển sang Mac hoặc Linux. Tuy nhiên , cộng đồng nhỏ những người dùng Windows Ruby vẫn tồn tại cực kỳ thân thiện, tận tâm và hiểu biết - hãy nói xin chào . )

Lưu ý rằng nhiều lời khuyên sau đây hiện đã lỗi thời do những nỗ lực tuyệt vời của nhóm RubyInstaller trong việc mang lại sự ổn định, khả năng tương thích và hiệu suất cho Ruby trên Windows. Tôi không còn phải sử dụng VirtualBox, điều này nói lên rất nhiều về Ruby trên Windows đã tiến xa như thế nào.

Nếu bạn muốn biết thêm chi tiết kỹ thuật, bạn cần đọc phần sau. :

Trích dẫn lựa chọn từ câu cuối cùng đó là:

AkitaOnRails: Điều rõ ràng nhất là bất kỳ Gem có Phần mở rộng C mà không có mã nhị phân thích hợp cho Windows sẽ bị lỗi. Cố gắng thực hiện các lệnh shell sẽ không thành công và RubyInline cũng vậy. Còn gì nữa?

Luis Lavena: Hehe, đó chỉ là phần nổi của tảng băng trôi

Đã nói tất cả những điều đó, tôi không thấy phát triển với Rails trên Windows quá khó khăn . Sử dụng Ruby, đối với hầu hết các phần, là một niềm vui. Tôi muốn tránh InstantRails bởi vì, thành thật mà nói, việc cài đặt Ruby đúng cách dễ dàng bằng cách sử dụng trình cài đặt một cú nhấp chuột, sau đó thực hiện gem install rails. Nếu bạn cần Apache và MySQL, WAMP là một lựa chọn tốt, mặc dù ngay cả những thứ này cũng không bắt buộc nếu bạn chỉ gắn bó với Mongrel và SQLite.

Những gì tôi đã làm gần đây là chạy VirtualBox với một phiên bản của Ubuntu Server phản ánh chặt chẽ máy chủ triển khai. Tôi ánh xạ một ổ đĩa mạng tới Máy chủ Ubuntu, sau đó tôi chỉnh sửa và chạy mã của mình trực tiếp trên máy ảo. Nó hầu như không sử dụng bất kỳ bộ nhớ nào (nó hiện đang sử dụng ~ 43MB; ngược lại với Firefox, đang sử dụng ~ 230MB) và Rails thực sự hoạt động tốt hơn so với chạy nó nguyên bản trên Windows. Ngoài ra, bạn có thể thử nghiệm với máy chủ ảo của mình ở mức độ an toàn tương đối. Đó là một thiết lập thực sự tuyệt vời, tôi thực sự khuyên bạn nên sử dụng nó.

Cuối cùng, đây là một vài blog Ruby / Rails hướng đến người dùng Windows:


2
Thật là một câu trả lời tuyệt vời, đầy đủ và thật là một thực tế đáng buồn ... nhưng tôi đoán đó là lý do tại sao tôi đã dành hàng giờ đồng hồ để VirtualBox của mình chạy trên Windows compileyouidontevenknowyou.blogspot.com/2008/12/… . Cảm ơn câu trả lời của bạn: Tôi sẽ sử dụng VirtualBox của mình.
Dan Rosenstark

4
Nó không buồn như nó nghe; chắc chắn không đáng buồn như phải sử dụng Java hoặc .NET. Đùa thôi, đùa thôi. ;)
Charles Roper

1
Đó là mát mẻ, Charles, tôi vẫn ngạc nhiên trước cách nền tảng phụ thuộc vào chúng tôi vẫn là ... chỉ cần thêm 50 năm, tôi con số ...
Dan Rosenstark

1
Đã phải cài đặt lại Windows và không quan tâm đến việc Rails chạy lại trên hộp Windows của tôi. Vì vậy, đã cài đặt VirtualBox, tạo một Ubuntu Server ảo, thiết lập các thư mục chia sẻ để cả hai đều có thể truy cập mã Rails của tôi, cài đặt Ruby & Rails, thiết lập chuyển tiếp cổng trong VirtualBox để tôi có thể truy cập ứng dụng Rails từ Windows
Guy C

1
Tôi phát triển từ Windows, trong khi đường ray chạy trên máy ảo Ubunutu. Tôi không thực sự "sử dụng" VM, vì tôi đang SSH và sử dụng các thư mục chia sẻ để kiểm soát mọi thứ từ Windows. Đây là thiết lập được ghi chép đầy đủ của tôi: chetane.com/2012/09/11/…
Chetane 12/09/12

6

Tôi thấy việc thiết lập và chạy một môi trường phát triển với Instant Rails trên Windows thực sự đơn giản. Đặc biệt là khi sử dụng Netbeans hoặc Radrails làm IDE.

Một công việc chưa đầy 10 phút.

Những người đấu tranh tìm ra vấn đề là gì?


5

Tôi đã phát triển Rails trên PC Windows được vài năm và không gặp sự cố thực sự nào khi cài đặt lại khi tôi mới bắt đầu. Tuy nhiên, gần đây tôi đã xây dựng lại máy của mình và phải vật lộn để làm cho trình cài đặt One-Click Ruby hoạt động và phiên bản Gems mới nhất. Vì vậy, đây là những gì tôi đã thử.

Tùy chọn 1: Chạy Máy ảo Linux

Tôi thực sự ấn tượng với ý tưởng của Charles Roper về việc chạy Rails trong một máy ảo Linux, và đây là lộ trình mà tôi thực sự muốn. Mọi việc diễn ra khá suôn sẻ và tôi đã ghi lại nó tại budanters.blogspot.com . Tuy nhiên, tôi đã gặp khó khăn với việc truy cập máy chủ MySQL (trong Máy ảo Linux) từ máy chủ Windows.

Tùy chọn 2: Sử dụng jRuby

Gần đây tôi đã cài đặt phiên bản Windows của gói NetBeans 6.5 Ruby và không hề hay biết, điều này sẽ cài đặt JRuby và các viên ngọc Rails. IDE có giao diện người dùng để cài đặt Gems, và bây giờ tôi đã sao lưu và chạy ứng dụng cũ của mình trong môi trường phát triển của mình.

Cập nhật tháng 11 năm 2009

Bây giờ tôi sử dụng Netbeans 6.7 trên Windows và nói chung, tôi rất hài lòng với nó. Nhược điểm duy nhất là nó cài đặt JRuby 1.2 và tôi cần phải cài đặt JRuby 1.3 theo cách thủ công để có thứ gì đó hoạt động (tôi không nhớ là gì) và tôi đã hoàn toàn không thể triển khai hoạt động với Capistrano hoặc Vlad the Deployer hoạt động. Vlad sử dụng Open4 không hoạt động với JRuby.

Cập nhật tháng 5 năm 2010

Netbeans 6.8 đi kèm với JRuby 1.4 vì vậy không còn phải loay hoay cài đặt JRuby 1.3 theo cách thủ công. Ngoài ra, có vẻ như trong JRuby 1.5 Open4 bây giờ sẽ hoạt động, có nghĩa là Vlad có thể bắt đầu hoạt động.


1
Tôi chỉ muốn thêm rằng một tùy chọn tốt để chạy một máy ảo Ubuntu là sử dụng Vagrant. Bạn phát triển trong Windows, và các tập tin của bạn được chia sẻ với các máy ảo Ubuntu, bạn có thể sau đó "lang thang ssh" VM và chạy của bạn lệnh đó, như "đường ray máy chủ"
carlosvini

5

Chưa ai nhắc đến Bitnami RubyStack ? Tôi đã sử dụng nó trong nhiều năm, cùng với RadRails. Bao gồm Apache, MySQL / Postgre, phpmyadmin, git, v.v. Tùy chọn Ruby 1.9.2 / Rails 3.0b. Bạn cũng có thể chạy phiên bản Ubuntu của RubyStack trong một máy ảo nhưng tôi chưa thử.



3

Cá nhân tôi thấy việc cài đặt Ruby + Rails và chạy trên windows là một điều tuyệt vời. Từ tải xuống đến duyệt đến ứng dụng 'HelloWorld' đầu tiên của tôi, tôi mất tất cả 15 phút. Tôi thậm chí còn không bận tâm đến bất kỳ thứ gì trong InstantRails.

Sau đó, tôi không thể nói rằng tôi đã gặp phải bất kỳ sự cố hoặc sự cố tốc độ nào được báo cáo với Gems trong Windows.

Những người này cũng làm một nhà phát triển Ruby tuyệt vời thêm vào cho Visual Studio:

http://www.sapphiresteel.com/


Nếu bạn chưa bao giờ sử dụng Rails trên OS X hoặc dưới * nix, thì có thể bạn sẽ không nhận thấy sự khác biệt về tốc độ. Đó là khi bạn đối chiếu cả hai, sự khác biệt trở nên rõ ràng.
Charles Roper

Có lẽ, nhưng quan điểm tôi đang làm là không có gì đáng chú ý là chậm khiến tôi nghĩ 'quái này chạy như một con chó vậy'.
Kev

Bạn đã cài đặt ruby ​​+ ruby ​​trên ray trên windows như thế nào?

2

Khi lần cuối tôi tìm hiểu về Rails trên windows, tôi đã sử dụng Instant Rails và nhận thấy đây là một quá trình khá khó khăn, ngoại trừ việc thiếu các bản cập nhật cho Instant Rails (giao diện của trang web vẫn còn một chút vấn đề , vì Rails 2.0 tức thì sử dụng ROR 2.0, trong khi phiên bản mới nhất là 2.1). Bạn cũng có thể xem xét câu trả lời cho câu hỏi này vì nó đề cập đến một số cách khác để RoR chạy trên windows một cách dễ dàng.


Thật khó để cài đặt Rails 2.1 'gem update rails'
RichH

@Paul Wicks Bạn có thực sự muốn nói là đau đớn không? @RichH tôi dường như nhớ cần một "viên ngọc cập nhật -Hệ thống" cũng như (tôi đã làm bất cứ điều gì các phiên bản beta Ruby on Rails cuốn sách từ các lập trình viên thực dụng nói), nhưng tôi đồng ý nó không phải là khó khăn để nâng cấp
Steve Bosman

1

Bạn có các tùy chọn cửa sổ để thiết lập và cài đặt mọi thứ, chẳng hạn như Instantrails :

Tuy nhiên, kinh nghiệm cá nhân của tôi khi cố gắng giúp đồng nghiệp thiết lập và chạy trên windows đó là một trải nghiệm khá đau đớn. Bạn sẽ có thể chạy hầu hết (nếu không phải là mọi thứ), nhưng hãy chuẩn bị dành một chút thời gian để chạy vòng quanh (và trở nên thất vọng).

YMMV

Tôi có thể sẽ giới thiệu Linux hoặc Mac để phát triển đường ray (nhưng tôi hơi thiên vị windows, vì vậy bạn có thể cần phải chấp nhận điều đó một cách khó khăn).


1

Một tùy chọn nếu bạn bị mắc kẹt trên Windows là có các máy chủ ảo chạy Linux / BSD / what-have-you.

Nó cũng giải quyết nhiều vấn đề khác (cho phép bạn dễ dàng thử nhiều cấu hình máy chủ, v.v.).


1

Nếu bạn không thể thoát khỏi cửa sổ, hãy sử dụng VMware và chạy một số dạng linux (ubuntu phổ biến). Hạn chế số 1 của bạn sẽ là những viên ngọc được biên dịch không chơi đẹp trên windows.

Phần lớn các hướng dẫn giả định rằng bạn đang ở một dạng * nix nào đó, đó là khi bạn bắt đầu phá vỡ giàn giáo cơ bản khi bạn cảm thấy đau. Thao tác hình ảnh, tìm kiếm toàn văn bản và thậm chí một số bộ điều hợp db sẽ chỉ chạy trên * nix hoặc rất khó thiết lập.

Phần lớn các máy chủ web cũng chạy linux, bạn nên phát triển trên cùng một nền tảng với máy chủ của mình để tránh đau đầu khi triển khai.


1

Nói chung, hiệu suất Rails là một vấn đề trên Windows.

Theo như thiết lập triển khai của bạn, bạn có thể chạy Rails trong FCGI hoặc sử dụng mongrel (và thiết lập Apache hoặc IIS làm proxy). mod_rails ( http://www.modrails.com ) là tùy chọn triển khai tốt nhất cho Rails hiện nay, nhưng không chạy trên Windows.

Bạn có thể gặp nhiều may mắn hơn khi sử dụng JRuby trên Windows để chạy Rails trong bất kỳ môi trường JVM nào bạn muốn (tomcat, máy chủ J2EE, v.v.).

IronRuby vẫn chưa có để chạy Rails trong môi trường sản xuất, nhưng cuối cùng nó sẽ nhằm mục đích chạy Rails bên trong bất kỳ môi trường ASP.NET (IIS) nào.


1

Bạn chỉ có thể sử dụng Cygwin và nó là phiên bản của Ruby. Điều đó loại bỏ các tranh luận về việc các gem đã biên dịch không hoạt động trên Windows - Tôi đã quản lý để biên dịch rất nhiều gem theo cách đó.


1

Hạn chế lớn nhất của việc chạy trên Windows là rất nhiều thứ quá chậm.

Xem chủ đề này . Để thảo luận.

Những thứ đơn giản như "script / console" và chạy các tác vụ rake sẽ mất thời gian lâu hơn 5 lần trên Windows so với trên Linux hoặc Mac.

Các hạn chế khác là:

  • Không có IE6 trên Vista.
  • BackgroundRB và nhiều viên ngọc dựa trên c khác không hoạt động trên Windows.
  • Không có hành khách

1

Bản thân tôi không phải là nhà phát triển đường ray nhưng tôi nghĩ điều này có thể được quan tâm. Microsoft đã phát hành IronRuby 1.0, đó là một phiên bản của Ruby chạy trên nền tảng .NET dường như chạy nhanh hơn gấp 4 lần so với việc triển khai Rails chính thức trên Windows.

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

Trang web chính thức http://ironruby.codeplex.com/


1
Ironruby dường như đã ngủ trong hơn một năm nay.
Reto


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.