0

我的捆绑文件似乎没有正确地从私有存储库中提取 gem。

在我的 Gemfile 中,我有:

group :internal do
  gem 'private', git: 'ssh://git@internalserver.org:<port>/gems/private.git'
end

这会运行,详细日志记录会产生:

Updating ssh://git@internalserver.org:<port>/gems/private.git
Cloning into '/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/private-ddec73caf50f'...
done.

当我导航到 时/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/,我看到正确克隆了正确的存储库,并且 gemspec 具有正确的名称。

当 bundler 完成运行时,gem list不显示privategem。当我尝试要求它时会产生错误。

我尝试删除存储库中的 Gemfile.lock 文件并重新运行,但没有奏效。Gemfile 中的所有公共 gem 都正确安装。

相关版本号/软件:

  • 捆绑器版本 1.3.5
  • 转速 1.23.14
  • 红宝石 2.0.0p247
  • 阿特拉桑藏匿处
4

1 回答 1

2

Git gem 是 Rubygems 的特定于 Bundler 的扩展。该gem命令不知道这些,因此它们没有被列出gem list。您可以运行bundle show以查看 Bundler 识别的 gem 列表,其中将包括 git gem。

要使用 gem,您需要确保 Bundler 正确设置了加载路径。有三种方法可以做到这一点:

  1. 在您的应用程序中调用require 'bundler/setup'。这是 Rails 应用程序的典型特征。更多关于Bundler.setup
  2. 调用bundle exec <command>以运行命令。这在从 gem 运行命令时更常见,例如rakeor rspec更多关于bundle exec
  3. 为您经常运行的命令创建 binstub

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

于 2014-01-11T02:31:43.267 回答