Установить 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
    

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.