如何从GitHub源安装gem?

时间:2010-04-05 07:26:52

标签: rubygems

我想从最新的GitHub源安装gem。

我该怎么做?

11 个答案:

答案 0 :(得分:391)

嗯,这取决于有问题的项目。某些项目的根目录中有* .gemspec文件。在那种情况下,它将是

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

其他项目有一个rake任务,称为“gem”或“build”或类似的东西,在这种情况下你必须调用“rake”,但这取决于项目。

在这两种情况下,您都必须下载源代码。

答案 1 :(得分:327)

如果您使用的是bundler,则需要在Gemfile中添加以下内容:

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

如果有.gemspec文件,它应该能够在运行bundle install时获取并安装gem。

答案 2 :(得分:241)

尝试使用specific_install gem,它允许您从其github存储库(如“edge”)或任意URL安装gem。非常适用于在多台机器上分配宝石和黑客攻击它们。

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

e.g。

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

答案 3 :(得分:31)

Bundler允许您直接从git存储库使用gem。 在您的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'

有关详细信息,请参阅https://bundler.io/v2.0/guides/git.html

答案 4 :(得分:16)

OBSOLETE(见评论)

如果项目来自github,并且包含在http://gems.github.com/list.html的列表中,那么您只需将github repo添加到gems源中即可安装它:

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

答案 5 :(得分:13)

如果您从公共GitHub存储库获取宝石,则可以使用简写

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

答案 6 :(得分:4)

您也可以gem install username-projectname -s http://gems.github.com

答案 7 :(得分:3)

如果您按照gryzzly的建议使用bundler进行安装,并且gem创建了一个二进制文件,那么请确保使用bundle exec mygembinary运行它,因为gem存储在一个在普通gem路径中看不到的bundler目录中。 / p>

答案 8 :(得分:3)

在Gemfile中,添加以下内容:

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

您还可以添加ref,branch和tag选项,

例如,如果您想从特定分支下载:

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

然后运行:

bundle install

答案 9 :(得分:1)

在新的Linux机器上,您还需要安装git命令。 bundle命令在幕后使用它。

答案 10 :(得分:1)

您还可以使用rdp/specific_install宝石:

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