Встановити Gem з гілки Github?


94

У своєму gemfile у мене є таке:

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

Як встановити це як самоцвіт, щоб я міг його перевірити?

Відповіді:


200

Вам не потрібно будувати самоцвіт локально. У своєму gemfile ви можете вказати джерело 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 хитрощі, але з RubyInstaller 2.3 на Windows 10 у мене така сама настройка для дорогоцінного каменя, який не bundle installвипускався , і я видаю команду, RubyGems каже, що він отримує репозиторій git і встановлюється, але коли я gem list gemnameце роблю не відображається в моїх локально встановлених каменях.
FilBot3

nvm, це тому, що я розраховую bundle installвстановити так, ніби він був глобальним, або для всіх рубімів. однак це робиться для кожного проекту, а іноді і для кожного користувача.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., щоб "побудувати граблі", щоб побудувати самоцвіт.
raphael_turtle

6
Замість 4. Мені довелося використовувати gem build name-of-file.gemspec для створення gem rake build o rake gem не працював для мене
marimaf

5
Замість 4 і 5 ви можете зробити "встановлення граблів"
дрінор

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.