如何从GitHub源安装gem?

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

我该怎么做呢?

如果你使用的是捆绑软件,你需要添加这样的东西到你的Gemfile中:

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

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

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

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

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

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

试试specific_install gem,它允许你从它的github仓库(比如'edge')或者任意的URL安装一个gem。 非常有用的分叉gem和黑客在他们在多台机器等。

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

例如

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

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' 

有关更多信息,请参阅http://bundler.io/git.html

OBSOLETE(见评论)

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

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

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

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

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

如果按照gryzzly的build议使用bundler进行安装,并且gem创build一个二进制文件,那么请确保使用bundle exec mygembinary运行它,因为gem存储在正常的gempath中不可见的bundler目录中。

在您的Gemfile中,添加以下内容:

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

你也可以添加ref,分支和标签选项,

例如,如果你想从一个特定的分支下载:

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

然后运行:

 bundle install 

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