ruby - 使用 Chef 从 Github 存储库安装 Ruby gem?

标签 ruby git github gem chef-infra

有没有办法从其 Github 存储库(或者更具体地说,一个分支)而不是从 Rubygems 安装 Ruby gem?

我试过了

 gem_package 'some_gem' do
  source 'git://github.com:user/some_gem.git'
end

我明白了

Gem::Exception
--------------
Cannot load gem at [git://github.com:user/some_gem.git] in /


Resource Declaration:
---------------------
# In /tmp/vagrant-chef-1/chef-solo-1/cookbooks/some_recipe/recipes/default.rb

 15: gem_package 'some_gem' do
 16:   source 'git://github.com:user/some_gem.git'
 17: end
 18: 



Compiled Resource:
------------------
# Declared in /tmp/vagrant-chef-1/chef-solo-1/cookbooks/some_gem/recipes/default.rb:15:in `from_file'

gem_package("some_gem") do
  provider Chef::Provider::Package::Rubygems
  action :install
  retries 0
  retry_delay 2
  package_name "some_gem"
  source "git://github.com:user/some_gem.git"
  cookbook_name :some_cookbook
  recipe_name "default"
end

我还对源 https://github.com/user/some_gem 进行了相同的尝试,但出现错误 Illformed requirement [""]

最佳答案

我不确定这是完成任务的最佳方式,但我能够以这种方式完成它:

# temporarily install gem from fork
git '/usr/local/src/mosql' do
  repository 'https://github.com/roadtrippers/mosql.git'
end

execute 'gem build mosql.gemspec' do
  cwd '/usr/local/src/mosql'
end

gem_package 'mosql' do
  source '/usr/local/src/mosql/mosql-0.2.0.gem'
end

mosql 是我正在安装的 fork gem 的名称。

这里要注意的是版本被放入 .gem 文件的名称中,所以我必须提前知道。

关于ruby - 使用 Chef 从 Github 存储库安装 Ruby gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19367458/

相关文章:

ruby - 如何将 Ruby 升级到 2.0

git - 当且仅当另一个文件存在时,如何告诉 git 忽略某个文件?

github - 如何将带有链接的嵌入图像添加到 github 自述文件中?

git - 使用 git 同步所有分支

C "signed long long"的 Ruby 等价物

ruby - MongoDB 和 MongoRuby : Sorting on mapreduce

ruby - 当编码全部被破坏时,如何使用 Ruby 替换 VC++ 资源文件中的文本?

git difftool,立即打开所有差异文件,而不是串行

linux - 如何使用静态链接构建 git?

GIT 无法从远程存储库读取