我的捆绑文件似乎没有正确从私人存储库中提取 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。

当捆绑器运行完毕后, gem list 不显示 private 宝石。当我尝试要求它时它会产生错误。

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

相关版本号/软件:

  • 捆绑器版本 1.3.5
  • RVM 1.23.14
  • 红宝石 2.0.0p247
  • 阿特拉桑藏品
有帮助吗?

解决方案

Git gems 是 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 运行命令时,这种情况更常见,例如 rake 或者 rspec. 更多关于 bundle exec
  3. 创建 binstub 对于您经常运行的命令。

http://bundler.io/v1.5/git.html 有关 git gems 的更多信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top