2011-10-19 37 views
11

Sử dụng bundler, bạn có thể làm một cái gì đó như thế này trong Gemfile:Có thể trực tiếp cài đặt một viên ngọc từ kho git không?

gem 'my_gem', :git => '[email protected]:me/my_gem.git' 

Đó là xây dựng những viên ngọc trong repo đó và cài đặt nó. Hoạt động tuyệt vời. Có thể làm một cái gì đó tương tự chỉ bằng cách sử dụng công cụ đá quý dòng lệnh? Một cái gì đó như thế này?

gem install my_gem --git="[email protected]:me/my_gem.git" 

Rõ ràng là lệnh đó không hoạt động, nhưng có điều gì giống như vậy không? Tôi biết tôi có thể sao chép các repo, chạy một gem build my_gem.gemspec và sau đó một gem install my_gem-1.2.3.gem. Nhưng tôi tự hỏi nếu có một lớp lót trực tiếp che giấu các bước trung gian này đằng sau hậu trường.

Trả lời

6

Bởi vì không giống như kho Git điển hình, GitHub xây dựng đá quý, nếu dự án được lưu trữ trên GitHub và đá quý được tìm thấy trong source list sau đó bạn có thể thêm GitHub vào danh sách nguồn của bạn như thế này:

$ gem sources -a http://gems.github.com 

và sau đó sau đó cài đặt đá quý như mong muốn trong một bước duy nhất, như thế này:

$ sudo gem install username-projectname 

Nếu không, không có giải pháp một bước, và bạn sẽ phải làm một cái gì đó như thế này:

  1. tải file zip đá quý/tar
  2. gem build <gemname>.gemspec
  3. sudo gem install <gemname>-x.x.x.gem
+0

đá quý của tôi không có trong danh sách nguồn. nó là một kho lưu trữ riêng. –

+1

và giải pháp thứ hai tôi đã biết, như tôi đã nêu trong bài đăng của mình. tôi đã tự hỏi nếu có một lớp lót cho lệnh gem. có lẽ không có. –

+0

Bạn có thể viết một hàm hệ vỏ mà bạn đã chuyển đối số tới. Nhưng, tôi không biết bất kỳ một lớp lót trơn nào. –

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