2011-10-28 18 views
8

Tôi có một số kinh nghiệm với Ruby, nhưng nó ít hơn kinh nghiệm Python của tôi. Tôi đã đóng gói và xuất bản một số gói Python, nhưng chỉ có một gói Ruby mà tôi đã xuất bản. Tôi muốn tìm hiểu nhanh về hệ sinh thái bao bì của Ruby bằng cách so sánh với Python.Hệ sinh thái bao bì của Ruby Theo thuật ngữ Python

  • Tôi tin rằng có công cụ tương đương với virtualenv trong Ruby, nhưng tôi chưa biết điều đó là gì. Vai trò của RVM và Bundler là gì?
  • Khi tôi viết một gói Python, tôi thường sử dụng lệnh setup.py develop - nó giải quyết các phụ thuộc nhưng không được cài đặt vào các gói trang web. Điều tương đương trong Ruby là gì?
  • Cách ưa thích để tạo cấu trúc bố cục thư mục của gói Ruby là gì?
  • Quy tắc đặt tên gói Gem. Trường hợp tên Gem có nhạy cảm không? Nó có giống với tên của mô-đun Ruby không?
  • Bất kỳ điểm nào khác tôi đã bỏ lỡ.

Trả lời

10

RVM là tương tự như virtualenv cũng rbenv thanh toán (có lẽ giống như virtualenv)

Bundler là dành cho phụ thuộc bao bì để phát triển và triển khai, nó hoạt động như setup.py và pip (Tôi đã không được sử dụng pip, có vẻ như có một số tính năng của rubygems và Bundler)

Bundler của Gemfile cũng tương tự như của pip tập tin yêu cầu

Bundler sẽ cài đặt phụ thuộc trong thư mục phát triển của bạn, và đóng gói chúng để triển khai.

bố trí thư mục có xu hướng giống như thế này:

/ - 
    lib - classes/modules etc. 
    bin - executables things you want on $PATH 
    test - unit tests 

Jeweler là một công cụ tốt cho việc thiết lập, duy trì và giải phóng đá quý.

EDIT:

Dưới đây là một số tài nguyên khác:

Một số liên kết trên Ruby bố trí:

Một số cho Python:

Dưới đây là một thực hiện một so sánh giữa các công cụ:

+0

Vì vậy, nơi nào rubygems đến tôi để chơi?Liệu nó tải về mã từ một kho lưu trữ gói và giải nén nó giống như pip và easy_install được sử dụng cho? – user37078

+1

có, rubygems cung cấp lệnh 'gem' để cài đặt và quản lý các" đá quý "hoặc các gói ruby. – drnewman

Các vấn đề liên quan