2013-04-19 39 views
5

Tôi đã tạo một viên ngọc riêng tư mà tôi đã tự mình lưu trữ. Mọi thứ diễn ra tốt đẹp cho đến khi ai đó đã tạo ra một viên ngọc có cùng tên trên rubygems.org. Vì rubygems.org có ưu tiên cao nhất so với url máy chủ đá quý của tôi. Tôi không thể cài đặt gem của mình nữa. Tôi đã cố gắng xóa nguồn rubygems:Thay đổi thứ tự đọc của các nguồn Rubygem

$ sudo gem source -r http://rubygems.org 

và cài đặt lại nó để sau trong danh sách nguồn gem, nhưng nó không hoạt động.

Có cách nào thay đổi thứ tự tra cứu của nguồn đá quý không?

Lưu ý rằng tôi không muốn đổi tên gem của mình.

+0

Tôi không chắc liệu điều này có hiệu quả hay không nhưng bạn có thể thử chỉnh sửa tệp '.gemrc' theo cách thủ công và thay đổi thứ tự các nguồn trong đó. – matt

Trả lời

2

Bạn có thể thử các specific_install đá quý:

gem install specific_install gem specific_install -l <git-url>

Một cách khác là để nêu một cách rõ ràng server đá quý như vậy:

gem install mygem -s http://gems.example.com

Các lựa chọn tốt nhất, theo ý kiến ​​của tôi, là để sử dụng Bundler. Trong Gemfile của bạn thêm:

gem 'mygem', :git => 'git://git.example.com/myrepo.git'

+0

Cảm ơn, tôi đã thử: 'gem install mygem -s http: // gems.example.com' và nó không hoạt động. Tôi đã nhận được nó để làm việc sau đó, nhưng tôi không biết tại sao. Có thể là sự cố bộ nhớ cache. – Martinos

+0

Vậy nó có hoạt động hay không? –

+0

Tôi đặt hàng để cài đặt đá quý của mình, tôi đã có 'gem source -r http: // rubygems.org' rồi' gem install mygem -s http: // gems.example.com'. Và sau đó thêm lại http://rubygems.org. Tôi tự hỏi nếu có một cách tốt hơn để làm sạch bộ nhớ cache. – Martinos

3

Nó có vẻ như bạn không thể có một bộ nhớ cache ngọc trống. Nếu bạn xóa bộ nhớ cache http://rubygems.org theo cách thủ công với gem source -r http://rubygems.org và không có nguồn nào khác được xác định, nó sẽ tự động được khôi phục. Thật là một loại phiền toái gây phiền nhiễu.

Bí quyết gì đối với tôi là thêm nguồn của tôi (máy chủ nội bộ) và sau đó readding rubygems theo cách thủ công.

$ gem source add http://internal-server/ 
$ gem source 
*** CURRENT SOURCES *** 

http://rubygems.org/ 
http://internal-server/ 
$ gem source -r http://rubygems.org/ 
$ gem source 
*** CURRENT SOURCES *** 

http://internal-server/ 
$ gem source -a http://rubygems.org/ 
$ gem source 
*** CURRENT SOURCES *** 

http://internal-server/ 
http://rubygems.org/ 
+0

Cảm ơn câu trả lời, nhưng tôi không có vấn đề nữa vì tôi không làm việc trên dự án mà tôi đã tham gia. Nếu tôi gặp phải vấn đề này, tôi sẽ thử giải pháp của bạn và cung cấp cho bạn một số phản hồi. – Martinos

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