【问题标题】:Bundler and gems on githubGitHub 上的 Bundler 和 gems
【发布时间】:2011-04-19 11:42:05
【问题描述】:

因此,当您让 bundler 从 github 安装 gem 时,它实际上并没有安装,是吗? gem list 不会列出这些宝石。

这让我遇到了难题:我正在编写一个脚本,该脚本想要使用其中一个实际上并没有安装的 gem。怎么办?我可以手动查看 github 存储库并构建/安装 gem,但现在我有一个版本由 bundler 管理,而另一个则不是。我可以将脚本指向 ~/.rvm 中的 gem 目录,但是当需要投入生产时,这不是一个好主意。

我正在尝试找到一个捆绑程序命令,该命令将使来自 github 的任何 gem “注册”到 ruby​​gems,但到目前为止还没有。有什么建议吗?

【问题讨论】:

  • 您是否尝试过输入“bundle showagemthatdoesntshowingemlist”(将agemthatdoesntshowingemlist 替换为未显示在gem 列表中的gem)
  • 当然,这列出了它在 ~/.rvm/gems 中的位置,但它显然没有在 ruby​​gems 中“注册”,因为 require 'hiddengem' 不起作用:LoadError: no such file to load — hiddengem。就像我说的那样,我可能需要 gem 的完整路径,而我的脚本在我的本地系统上可以正常工作,但如果我将代码放在其他任何地方,它就会到处乱跑。

标签: ruby gem bundler


【解决方案1】:

具有讽刺意味的是,这与我之前的问题的答案相同,我用相同的解决方案回答了自己(尽管在 bundler 0.9 中有点不同):

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

bundler/setup 使捆绑器“堆栈”可用,就像它们是定期安装的 gem 一样。迟早我会记住这一点的。 :)

【讨论】:

    【解决方案2】:

    rubygems-bundler 是解决此问题的 gem。如果它安装在您的系统上,则您的项目中不需要任何额外的代码。它可能需要安装为@global,所以,总结一下:

    $ rvm use @global
    $ gem install rubygems-bundler
    

    然后,回到您使用的 rvm 版本:

    $ rvm use @
    

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 2020-04-30
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多