【问题标题】:How could I install Gems from git repositories?如何从 git 存储库安装 Gems?
【发布时间】:2014-05-07 12:18:40
【问题描述】:

我需要安装 gem 形式的 git 存储库。存储库包含.gemspec 文件。在我的 gem 文件中,我有以下代码:

gem 'echo_server', :git => 'http://127.0.0.1/org/echo_server.git'

当我运行 bundle install 时,gems 是 .bundeler 中的安装程序,而不是在 gem list 中显示。

我的问题是: gem 将如何在系统中可用,以便我可以在require 中使用?

有一些类似的SOQ,但这对我没有帮助。

【问题讨论】:

  • 只有 'echo-server' gem 没有显示在 gem 列表或其他中?
  • 其他从 ruby​​ gems 安装的 gems 正在显示。

标签: ruby rubygems gem bundler


【解决方案1】:

当您键入 gem list 时它没有显示出来,因为它不像普通 gem 那样安装。你可以 require 它就像你对任何其他库一样,因为 Bundler 知道它并会为你设置它。您应该在$LOAD_PATH 中看到它:

$LOAD_PATH.grep(/nameofgem/)

有关更多信息,请参阅Bundler documentation

如果您想从 Git 存储库将其安装为常规 gem,您可以克隆存储库,然后构建并安装生成的 gem。例如:

gem build echo_server.gemspec
gem install echo_server-X.Y.Z.gem

还有specific_install

【讨论】:

  • 是的,如果我使用gem bild 然后bundle install 那么它工作正常。但是有些我需要通过仅使用bundle install 来自动化它。有没有办法实现它? ruby $LOAD_PATH 中没有添加任何内容
  • 据我所知,Bundler 不能像 gem install 那样用于将 gem 从 Git 存储库安装到 gem 路径。您可以使用bundle show echo_server 查看 Bundler 安装 gem 的位置。我还更新了我的答案以链接到specific_install
  • 如果我执行 'bundle install' gem 安装在 $BUNDLER_PATH 中。我如何在 irb 中使用它? irb> 要求 'echo_server' #=> LoadError: 无法加载此类文件。因为 irb 在 ruby​​ home 中寻找它,但是 bundler 将它安装在 bundler home 中。
  • Bundler 需要加载。在与您的 Gemfile 相同的目录中,尝试使用 bundle console 而不是 irb。您也可以按此顺序执行require 'bundler'Bundler.setuprequire 'echo_server'。请参阅the Bundler documentation 了解更多信息。
猜你喜欢
  • 1970-01-01
  • 2012-09-17
  • 2020-07-01
  • 2023-03-16
  • 1970-01-01
  • 2011-10-19
  • 2012-12-19
  • 2018-11-29
  • 2013-01-07
相关资源
最近更新 更多