2010-09-30 127 views
3

所以当你有捆绑者从github安装一个gem时,它并不是实际上是得到安装,是吗? gem list将不会列出这些宝石。Bundler和github上的宝石

这使我想到了我的难题:我正在研究一个脚本,希望使用其中一个实际上并未安装的宝石。怎么办?我可以手动检查github repo并构建/安装gem,但现在我已经有一个版本由bundler管理,另一个版本不是。我可以将脚本指向〜/ .rvm中的gem目录,但在开始生产时这不是一个好主意。

我试图找到一个捆绑器命令,将使任何宝石从github“注册”与rubygems,但没有到目前为止。有什么建议么?

+2

你尝试打字“ bundle show agemthatdoesntshowingemlist“(用gem列表中没有显示的gem替换agemthatdoesntshowingemlist) – hellvinz 2010-09-30 17:34:55

+0

当然,它列出它在'〜/ .rvm/gems'中的位置,但它显然没有被rubygems”注册“因为'require'hiddengem''不起作用:'LoadError:no file to load - hiddengem'。就像我说的那样,我可能需要完整的gem路径,而且我的脚本在我的本地系统上工作得很好,但是如果我把代码放在其他地方,它会在各处破坏。 – 2010-09-30 17:48:06

回答

2

讽刺的是,这是相同的答案前一个问题我有,我回答自己与此相同的解决方案(虽然它是捆绑0.9略有不同):

require 'rubygems' 
require 'bundler/setup' 
require 'hiddengem' 

bundler/setup使得打捆“堆栈“就像他们经常安装宝石一样。迟早我会记住这一点。 :)

0

rubygems-bundler是解决此问题的宝石。如果它安装在你的系统上,你的项目中不需要额外的代码。它可能需要安装为@global,因此,要总结这一切:

$ rvm use @global 
$ gem install rubygems-bundler 

,然后要回了RVM版本你使用:

$ rvm use @