2012-07-19 39 views
7

Tôi mới dùng ruby ​​và cần gỡ lỗi một số ứng dụng ruby ​​được đóng gói làm đá quý.Ruby tương đương với python setup.py phát triển là gì?

Tôi đang sử dụng rvm, nơi tôi đã cài đặt gói làm đá quý và cũng có thanh toán github mới của gói đó. Làm thế nào tôi có thể nói với môi trường rvm của tôi để sử dụng mã trong repo github thay vì đá quý được cài đặt?

Điều này tương đương với python setup.py develop cho những người quen thuộc với python.

Trình cài đặt cho phép bạn triển khai các dự án để sử dụng trong một thư mục chung hoặc khu vực dàn dựng, nhưng không sao chép bất kỳ tệp nào. Vì vậy, bạn có thể chỉnh sửa mã của từng dự án trong thư mục thanh toán của nó

https://pythonhosted.org/setuptools/setuptools.html#development-mode

Trả lời

7

Yup, bạn có thể.

Khám phá Bundler. Đó là tiêu chuẩn thực tế để sử dụng nó.

+0

Tôi đã tìm một trình bao, và thực hiện như sau: đầu tiên, tạo một gemset mới bên trong rvm, sau đó cài đặt trình cài đặt gem và sau đó cài đặt bundler. Nó cài đặt tất cả các phụ thuộc như mong đợi, nhưng khi tôi cố gắng chạy ứng dụng thực sự tôi chạy bó cài đặt trong, tôi nhận được một traceback. Không chắc chắn nếu nó đến từ việc sử dụng của tôi về rvm/gemset/bất cứ điều gì. Traceback giống như "/Users/cournape/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in' to_specs ': Không thể tìm thấy vagrant (> = 0) trong số [...] (lang thang là ứng dụng tôi đang tìm kiếm) –

+0

Hm. Bạn đang chạy lang thang như thế nào? Nếu bạn đã kiểm tra, sau khi bạn cài đặt gói, bạn sẽ có thể làm 'bin/vagrant' và chạy mã bạn vừa kiểm tra, bạn cũng có thể thực hiện' bundle exec bin/vagrant', điều này thậm chí còn tốt hơn, mặc dù gemset sẽ làm cho nó không liên quan ('bundle exec' sandboxes gem có sẵn để những người trong 'Gemfile.lock', nhưng nếu bạn có một viên đá quý mới, nó sẽ hầu như giống nhau) –

+0

Tôi nghĩ rằng tôi đã làm điều gì sai, tôi không thấy vấn đề nữa. Trong mọi trường hợp, lời khuyên của bạn về việc sử dụng gói exec hoạt động hoàn hảo Cảm ơn –

0

Ngoài câu trả lời trước đó.

Đôi khi đá quý/gói cung cấp khả thi. Điều tốt với python setup.py develop là bạn sẽ luôn có phiên bản mới nhất của tập tin thực thi đó trong đường dẫn của bạn. Nó là loại tiện dụng để phát triển. Theo như tôi biết, Gem không cung cấp chức năng như vậy. Để thi đua mà bạn có thể sử dụng Bundler và nó là như thế nào:

  • Đầu tiên tạo một Gemfile mới: bundle init
  • Sau đó chỉnh sửa tập tin đó và thêm Gem địa phương mà bạn đang làm việc trên (đối với tôi nó là Nanoc): gem "nanoc", path: "path/to/local/nanoc"
  • Sau đó, để truy cập vào thực thi được cung cấp bởi Gem bạn có thể sử dụng bundler theo cách đó: bundle exec nanoc ...

đây bundle exec sẽ lấy phiên bản Gem từ Gemfile của bạn và sử dụng nó. Nếu Gem đó được chỉ định với tùy chọn :path thì nó sẽ sử dụng tùy chọn đó.

Nó chắc chắn ít thuận tiện hơn trong Python nhưng nó là giải pháp gần nhất tôi tìm thấy trong Ruby.

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