Bundler不会从存储私有仓库安装,但会报告它

时间:2014-01-09 17:25:43

标签: ruby git bundler bitbucket-server

我的捆绑文件似乎没有正确地从私有存储库中下载宝石。

在我的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具有正确的名称。

当捆绑程序运行完毕后,gem list不显示private gem。当我试图要求它时会产生错误。

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

相关版本号/软件:

  • Bundler版本1.3.5
  • rvm 1.23.14
  • ruby​​ 2.0.0p247
  • Atlassan Stash

1 个答案:

答案 0 :(得分:2)

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

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

  1. 在您的应用中调用require 'bundler/setup'。这是Rails应用程序的典型特征。 More on Bundler.setup
  2. 调用bundle exec <command>运行命令。从gem运行命令时更常见,例如rakerspecMore on bundle exec
  3. Create binstubs用于经常运行的命令。
  4. 有关git gems的更多信息,请参阅http://bundler.io/v1.5/git.html