Встановити 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.