Câu trả lời:
Trong trường hợp bạn đang sử dụng gói, bạn cần thêm một cái gì đó như thế này vào Gemfile của bạn:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
Và trong trường hợp có .gemspec
tập tin, nó sẽ có thể tìm nạp và cài đặt gem khi chạy bundle install
.
CẬP NHẬT. Như đã nêu trong các nhận xét, để Bundler hoạt động chính xác, bạn cũng cần thêm các mục sau vào config.ru
:
require "bundler"
Bundler.setup(:default)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- :tag => ''
phần
tốt, điều đó phụ thuộc vào dự án trong câu hỏi. Một số dự án có tệp * .gemspec trong thư mục gốc của chúng. Trong trường hợp đó, nó sẽ là
gem build GEMNAME.gemspec
gem install gemname-version.gem
Các dự án khác có một nhiệm vụ cào, được gọi là "đá quý" hoặc "xây dựng" hoặc một cái gì đó tương tự, trong trường hợp này bạn phải gọi "cào", nhưng điều đó phụ thuộc vào dự án.
Trong cả hai trường hợp, bạn phải tải về nguồn.
gemname-version.gem
tập tin được tạo ra khi gọigem build
gem install gemname-version.gem
lệnh cài đặt đá quý git cục bộ? Tôi không thể tìm thấy bất cứ nơi nào trong máy cục bộ của mình một viên ngọc động cơ được cài đặt theo cách này. Trường hợp nào bundler giấu nó?
gem install gemname-version.gem
dòng nên làgem install --local gemname-version.gem
gem which gemname
nên cho bạn biết một viên ngọc cụ thể ở đâu, nó không phù hợp với bạn?
Hãy dùng thử gem_install cụ thể, nó cho phép bạn cài đặt một gem từ kho lưu trữ github của nó (như 'edge') hoặc từ một URL tùy ý. Rất hữu ích cho việc giả mạo đá quý và hack chúng trên nhiều máy và như vậy.
gem install specific_install
gem specific_install -l <url to a github gem>
ví dụ
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
đá quý?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Âm thanh rất tuyệt nhưng tôi sẽ không nhìn sâu hơn nữa. Chỉ muốn đăng rằng nó không hoạt động với tôi trong trường hợp người khác chuẩn bị cho nó một vòng xoáy dựa trên khuyến nghị của SO.
Bundler cho phép bạn sử dụng đá quý trực tiếp từ kho git. Trong Gemfile của bạn:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
Để biết thêm thông tin, hãy xem https://bundler.io/v2.0/guides/git.html
bundle
, các phụ thuộc git-gem- như vậy sẽ không được cài đặt trên toàn cầu mà thay vào đó trong thư mục chính của người dùng hiện tại. Hành khách sẽ chạy ruby với tư cách là người dùng máy chủ web của bạn (ví dụ www-data
) không có quyền truy cập vào thư mục này và do đó "git-gem" này sẽ không được tải. Bạn sẽ nhận được một lỗi ... is not yet checked out. Run bundle install first
.
OBSOLLEX (xem bình luận)
Nếu dự án là từ github và có trong danh sách trên http://gems.github.com/list.html , thì bạn chỉ cần thêm repo github vào các nguồn đá quý để cài đặt nó:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Nếu bạn nhận được đá quý của mình từ kho lưu trữ GitHub công khai, bạn có thể sử dụng tốc ký
gem 'nokogiri', github: 'tenderlove/nokogiri'
Ngoài ra bạn có thể làm gem install username-projectname -s http://gems.github.com
Trong Gemfile của bạn, hãy thêm vào như sau:
gem 'example', :git => 'git://github.com/example.git'
Bạn cũng có thể thêm các tùy chọn ref, nhánh và thẻ,
Ví dụ: nếu bạn muốn tải xuống từ một chi nhánh cụ thể:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
Sau đó chạy:
bundle install
Nếu bạn cài đặt bằng cách sử dụng trình đóng gói theo đề xuất của gryzzly và đá quý tạo ra nhị phân thì hãy đảm bảo bạn chạy nó bundle exec mygembinary
khi đá quý được lưu trữ trong thư mục gói không hiển thị trên đường dẫn đá quý thông thường.
Trên máy Linux mới, bạn cũng cần cài đặt git
. Bundle sử dụng nó đằng sau hậu trường.
require "bundler" Bundler.setup(:default)
Xem tài liệu của trình đóng gói để biết thêm chi tiết