使用 chef-rbenv 在系统范围内安装私有 gem

install a private gem systemwide by using chef-rbenv

我正在使用 [chef-rbenv][1] 并像这样在系统范围内安装 gems:

node/my_server.json

  "rbenv": {
        "rubies": ["2.2.0"],
        "global": "2.2.0",
        "root_path": "/opt/rbenv",
        "gems": {
            "2.2.0": [
                { "name": "activesupport"},
                { "name": "awesome_print"}
            ]
        }
   }

我想像这样安装我的私人 gem my_foo。 通过像这样编写 Gemfile,gem 在本地环境中工作正常:

gem 'my_foo', :git => 'git@bitbucket.org:ironsand/my_foo.git'
gem 'pry-byebug'

服务器 root 帐户有权访问 git 存储库。

我发现如果我安装自己的 gem 服务器我可以安装 gem,但我不想安装 gem 服务器。

有没有办法使用 chef-rbenv 安装私有 gem?

Ruby 的 gem 无法从 git 位置安装 gem。这是捆绑器的一个功能。您正在使用的厨师食谱实现了 rubygems' gem 命令的包装器,而不是捆绑器。

您需要将私有存储库克隆到目录和 build/install gem yourslef 或预先构建一个 .gem 文件(请参阅 github's release hosting feature 以获得一个不错的文件坚持您的私人 github 访问 management 的托管功能)。

或者在您提到的 Gemfile 上调用 bundler。