Как установить gem из исходного кода GitHub?

Я хотел бы установить gem из последней версии GitHub.

Как мне это сделать?

10 ответов

Решение

Если вы используете bundler, вам нужно добавить что-то вроде этого в ваш Gemfile:

gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'

И в случае, если есть .gemspec файл, он должен быть в состоянии получить и установить гем при запуске bundle install,

Хорошо, это зависит от проекта. Некоторые проекты имеют файл *.gemspec в своей корневой директории. В этом случае это будет

gem build GEMNAME.gemspec
gem install gemname-version.gem

Другие проекты имеют задачу rake, называемую "gem" или "build" или что-то в этом роде, в этом случае вам нужно вызвать "rake", но это зависит от проекта.

В обоих случаях вам необходимо скачать исходный код.

Попробуйте gem specific_install, который позволяет вам установить gem из его репозитория github (например, 'edge') или из произвольного URL. Очень полезно для разветвления драгоценных камней и взлома их на нескольких машинах и тому подобное.

gem install specific_install
gem specific_install -l <url to a github gem>

например

gem specific_install https://github.com/githubsvnclone/rdoc.git 

Bundler позволяет использовать гемы непосредственно из репозиториев git. В вашем Gemfile:

# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'

# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'

# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'

Для получения дополнительной информации см. http://bundler.io/git.html

OBSOLETE (см. Комментарии)

Если проект от github и содержится в списке на http://gems.github.com/list.html, то вы можете просто добавить репозиторий github к источникам gems, чтобы установить его:

$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname

Если вы получаете свои драгоценные камни из общедоступного репозитория GitHub, вы можете использовать сокращение

gem 'nokogiri', github: 'tenderlove/nokogiri'

Также вы можете сделать gem install username-projectname -s http://gems.github.com

Вы также можете использовать https://github.com/rdp/specific_install:

gem install specific_install
gem specific_install https://github.com/capistrano/drupal-deploy.git

В вашем Gemfile добавьте следующее:

gem 'example', :git => 'git://github.com/example.git'

Вы также можете добавить ссылки, параметры ветки и теги,

Например, если вы хотите скачать из определенной ветки:

gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"

Затем запустите:

bundle install

Если вы устанавливаете с помощью bundler в соответствии с предложением gryzzly и гем создает двоичный файл, убедитесь, что вы запустили его с bundle exec mygembinary поскольку драгоценный камень хранится в каталоге комплектов, который не виден в обычном пути драгоценного камня.

На новой машине с Linux вам также необходимо установить команду git. Команда bundle использует это за кулисами.

Другие вопросы по тегам