Bundler 不会从存储的私人存储库安装,但报告称它会安装
-
21-12-2019 - |
题
我的捆绑文件似乎没有正确从私人存储库中提取 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 正确设置了加载路径。有三种方法可以做到这一点:
- 称呼
require 'bundler/setup'
在你的应用程序中。这是 Rails 应用程序的典型情况。 更多关于Bundler.setup
- 称呼
bundle exec <command>
运行命令。当从 gem 运行命令时,这种情况更常见,例如rake
或者rspec
. 更多关于bundle exec
- 创建 binstub 对于您经常运行的命令。
看 http://bundler.io/v1.5/git.html 有关 git gems 的更多信息。
不隶属于 StackOverflow