Github BranchからGemをインストールしますか?


93

私のgemfileにはこれがあります:

gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git", :branch => "rails3"

それをgemとしてインストールしてテストするにはどうすればよいですか?

回答:


200

ローカルでgemをビルドする必要はありません。gemfileでは、refhub、ブランチ、またはタグでgithubソースを指定できます。

gem 'rails', :git => "git://github.com/rails/rails.git", :ref => "4aded"
gem 'rails', :git => "git://github.com/rails/rails.git", :branch => "2-3-stable"
gem 'rails', :git => "git://github.com/rails/rails.git", :tag => "v2.3.5"

次に、実行するbundle installか、短い形式はちょうどbundleです。

詳しくは、http//bundler.io/man/gemfile.5.html#GITをご覧ください。

更新:githubソース識別子があります

gem 'country_select', github: 'stefanpenner/country_select'

ただし、それを使用しないよう警告します。 NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.

Bundler 2.0以降では、Gemfileの上部近くにある次のステートメントで上記の問題を回避できます。

git_source(:github) { |repo| "https://github.com/#{repo}.git" }

2017年からの更新、GitHubソース識別子を機能させることができませんでしたが、:git => refは正常に機能します
Amias

多分そのWindowsの悪意はありますが、Windows 10のRubyInstaller 2.3では、私が持っているgemに対してこれと同じセットアップがあり、リリースされていません、そして私はbundle installコマンドを発行します、RubyGemsはgitリポジトリをフェッチしてインストールされていますが、それを実行gem list gemnameするとローカルにインストールしたgemに表示されません。
FilBot3 2017

nvm、bundle installそれはまるでグローバルであるかのように、またはすべてのrubygemに対してインストールすることを期待しているためです。ただし、プロジェクトごとに、またはユーザーごとに行う場合もあります。github.com/bundler/bundler/issues/3070#issuecomment-46361014
FilBot3

少なくとも私たちの環境では、github:識別子はtransmits data without encryption回避しようとしている警告を示します。指定するブランチもあるので、をgit:使って識別子に変換するhttpsだけでは不十分な場合があります。
Pysis

githubのソース識別子を使用したインストールについて:NOTE: This shorthand should be avoided until Bundler 2.0, since it currently expands to an insecure git:// URL. This allows a man-in-the-middle attacker to compromise your system.-あたりあなたが与えたリンク
ダニーBullis

64
  1. Gitリポジトリのクローンを作成します。

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. 新しいディレクトリに移動します。

    cd authlogic
    
  3. チェックアウト支店

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. 宝石を作ります。

    $ rake build gem
    
  5. gemをインストールします。

    $ gem install pkg/gemname-1.23.gem
    

14
ジェムをビルドするには、4。を「レイクビルド」に変更する必要がありました。
raphael_turtle 2010年

6
4の代わりに、gem build name-of-file.gemspecを使用してgemをビルドする必要がありましたrake build o rake gemが機能しませんでした
marimaf

5
4と5の代わりに「レイクインストール」を実行できます
drinor

2
またはgithubから直接:gem 'rails', :github => 'rails', :branch => '5.0-stable'-リンク:bundler.io/v1.3/git.html
Danny

@Danny that willgithub: 'rails/rails'
キャメロンマーティン

5

私はそれを機能させるために@janic_の答えを修正する必要があります。それが私のような他のルビー初心者に役立つことを願っています。

  1. Gitリポジトリのクローンを作成します。

    $ git clone git://github.com/odorcicd/authlogic.git
    
  2. 新しいディレクトリに移動します。

    $ cd authlogic
    
  3. チェックアウト支店

    $ git checkout -b rails3 remotes/origin/rails3
    
  4. バンドルをインストールする

    $ bundle install
    
  5. 宝石を作ります。

    $ rake build
    
  6. gemをインストールします。

    $ gem install pkg/gemname-1.23.gem
    

-1

あなたがバンドラーのユーザーだとすると、

$ bundle install

Gemfileにリストされているgemをインストールします。(そしてあなたがバンドラーのユーザーでないなら、なぜあなたはGemfileを持っているのですか?


この回答に反対票を投じようと考えている場合は、まず反対票を投じる必要があると思う理由を説明してください。建設的なフィードバックのない反対投票は、理解を促進するのに役立ちません。ありがとう。
sampablokuper
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.