Установить Gem из Github Branch?

95

В моем гемфайле есть это:

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

Как мне установить это как драгоценный камень, чтобы я мог его протестировать?

Лэнс Поллард
источник

Ответы:

203

Вам не нужно строить драгоценный камень на месте. В вашем гем-файле вы можете указать источник 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 работает нормально
Амиас
Возможно, это махинации с Windows, но с RubyInstaller 2.3 в Windows 10 у меня есть такая же установка для неизданного драгоценного камня, который у меня есть, и я запускаю bundle installкоманду, RubyGems говорит , что он получает репозиторий git и его устанавливает, но когда я gem list gemnameэто делаю не отображается в моих локально установленных драгоценных камнях.
FilBot3
nvm, потому что я собираюсь bundle installустановить его так, как если бы он был глобальным или для всех rubygems. однако он делает это для каждого проекта или иногда для каждого пользователя. 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.- по предоставленной вами ссылке
Дэнни Буллис
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 install pkg/gemname-1.23.gem
    
janic_
источник
14
Мне нужно было изменить 4. на "rake build", чтобы построить драгоценный камень.
raphael_turtle
6
Вместо 4. Мне пришлось использовать сборку gem name-of-file.gemspec для сборки gem rake build o rake gem не работал у меня
marimaf
5
Вместо 4 и 5 вы можете сделать "rake install"
drinor
2
Или прямо с github: gem 'rails', :github => 'rails', :branch => '5.0-stable'- ссылка: bundler.io/v1.3/git.html
Дэнни
1
У меня gem build <gem-name>.gemspecсработало. Я не указал rakeв Gemfile. Так что rake build gemнакиданные грабли не входят в комплект. добавить его в gemfile
RajaRaviVarma
6

Мне нужно изменить ответ @ 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 install pkg/gemname-1.23.gem
    
Хай Фэн Као
источник
-1

Предполагая, что вы являетесь пользователем Bundler,

$ bundle install

установит драгоценные камни, перечисленные в вашем Gemfile. (А если вы не являетесь пользователем Bundler, почему у вас есть Gemfile?

сампаблокупер
источник
Если вы думаете о том, чтобы проголосовать против этого ответа, сначала объясните, почему, по вашему мнению, его следует проголосовать против. Голосование против без конструктивной обратной связи не способствует пониманию. Спасибо.
sampablokuper 08