2010-10-31 22 views
27

Giả sử tôi có hai phiên bản của một gem được cài đặt (các phiên bản somegem 0.10.6 và 0.10.5) và tôi muốn chạy phiên bản cũ hơn từ dòng lệnh. Tôi có phải gỡ cài đặt phiên bản mới hơn không? Có cách nào tôi có thể sử dụng cờ để chỉ định phiên bản nào tôi muốn sử dụng không? Một cái gì đó giống như ...Làm thế nào tôi có thể gọi một phiên bản cũ của một viên ngọc từ dòng lệnh?

somegem /path/to/dir --version 0.10.5 

Tôi đã kiểm tra các tài liệu rubygems, và nó chỉ mô tả làm thế nào để sử dụng một phiên bản cụ thể khi bạn đòi hỏi một viên ngọc từ một tập tin, nhưng không về làm thế nào để làm điều đó từ dòng lệnh.

+0

Tại sao bạn "tải đá quý" từ dòng lệnh? Chắc chắn không có điểm trừ khi bạn đang sử dụng đá quý bên trong mã Ruby (và sau đó, bạn làm theo hướng dẫn để yêu cầu nó từ một tệp ...) – Gareth

+0

Tôi không cố tải, nhưng chỉ cần chạy các tệp nhị phân của một viên ngọc. Chắc chắn chúng không giống nhau. Tôi cần phải chạy các phiên bản cũ ở lần, hoặc tôi muốn chạy một viên ngọc tôi đã sửa đổi, nhưng cũng chạy đá quý ban đầu khi cần thiết. Vì cả hai đều được đặt tên là "somegem", Ruby không thể nói sự khác biệt và sử dụng nhị phân của phiên bản mới nhất. – picardo

Trả lời

48
somegem _0.10.5_ /path/to/dir 

Không có liên kết đến tài liệu, vì dường như không có bất kỳ liên kết nào.

+0

Bạn có nghĩ rằng đó là vì dân gian Rubygems không có tài liệu, hoặc chức năng này có phần không được hỗ trợ hoặc hỗn hợp của cả hai? –

+3

Điều này (thực sự, 'ruby -S somegem _1.4.3_', bởi vì 'somegem' mặc định chạy ruby1.9.1) đã làm việc cho tôi với rubygems 1.8.15. –

+0

Rõ ràng là nó được thực hiện trong kịch bản cài đặt, nơi lệnh được thực thi thực sự được bao bọc để thêm hành vi này https://github.com/rubygems/rubygems/blob/abf89e04954b8a2ddfb6948d0860111990a6efa2/lib/rubygems/installer.rb#L652 nhưng tôi cũng không thể tìm thấy tài liệu ở bất kỳ đâu –

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